0001558370-24-006577.txt : 20240503 0001558370-24-006577.hdr.sgml : 20240503 20240502183831 ACCESSION NUMBER: 0001558370-24-006577 CONFORMED SUBMISSION TYPE: 10-Q PUBLIC DOCUMENT COUNT: 87 CONFORMED PERIOD OF REPORT: 20240329 FILED AS OF DATE: 20240503 DATE AS OF CHANGE: 20240502 FILER: COMPANY DATA: COMPANY CONFORMED NAME: Willdan Group, Inc. CENTRAL INDEX KEY: 0001370450 STANDARD INDUSTRIAL CLASSIFICATION: SERVICES-ENGINEERING SERVICES [8711] ORGANIZATION NAME: 07 Trade & Services IRS NUMBER: 141951112 STATE OF INCORPORATION: DE FISCAL YEAR END: 1227 FILING VALUES: FORM TYPE: 10-Q SEC ACT: 1934 Act SEC FILE NUMBER: 001-33076 FILM NUMBER: 24910202 BUSINESS ADDRESS: STREET 1: 2401 EAST KATELLA AVENUE, SUITE 300 CITY: ANAHEIM STATE: CA ZIP: 92806 BUSINESS PHONE: 800-424-9144 MAIL ADDRESS: STREET 1: 2401 EAST KATELLA AVENUE, SUITE 300 CITY: ANAHEIM STATE: CA ZIP: 92806 10-Q 1 wldn-20240329x10q.htm 10-Q
0001370450Q1falsehttp://fasb.org/us-gaap/2023#PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortizationhttp://fasb.org/us-gaap/2023#PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortizationP1Yhttp://fasb.org/us-gaap/2023#QualifiedPlanMemberhttp://fasb.org/us-gaap/2023#RestrictedCashCurrenthttp://fasb.org/us-gaap/2023#RestrictedCashCurrenthttp://fasb.org/us-gaap/2023#PrepaidExpenseAndOtherAssetsCurrenthttp://fasb.org/us-gaap/2023#PrepaidExpenseAndOtherAssetsCurrenthttp://fasb.org/us-gaap/2023#OtherLiabilitiesNoncurrenthttp://fasb.org/us-gaap/2023#OtherLiabilitiesNoncurrent0001370450wldn:DefinedContributionPlanMember2024-03-290001370450wldn:CreditAgreement2023Memberus-gaap:NotesPayableToBanksMember2024-03-290001370450us-gaap:CostOfSalesMember2023-12-302024-03-290001370450us-gaap:RetainedEarningsMember2024-03-290001370450us-gaap:AdditionalPaidInCapitalMember2024-03-290001370450us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-03-290001370450us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember2024-03-290001370450us-gaap:RetainedEarningsMember2023-12-290001370450us-gaap:AdditionalPaidInCapitalMember2023-12-290001370450us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-12-290001370450us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember2023-12-290001370450us-gaap:RetainedEarningsMember2023-03-310001370450us-gaap:AdditionalPaidInCapitalMember2023-03-310001370450us-gaap:RetainedEarningsMember2022-12-300001370450us-gaap:AdditionalPaidInCapitalMember2022-12-300001370450us-gaap:CommonStockMember2022-12-312023-03-310001370450wldn:UnitBasedContractMemberwldn:EngineeringConsultingServicesMember2023-12-302024-03-290001370450wldn:UnitBasedContractMemberwldn:EnergyMember2023-12-302024-03-290001370450wldn:PublicUtilityMemberwldn:EngineeringConsultingServicesMember2023-12-302024-03-290001370450wldn:PublicUtilityMemberwldn:EnergyMember2023-12-302024-03-290001370450wldn:GovernmentsMemberwldn:EngineeringConsultingServicesMember2023-12-302024-03-290001370450wldn:GovernmentsMemberwldn:EnergyMember2023-12-302024-03-290001370450wldn:CommercialMemberwldn:EngineeringConsultingServicesMember2023-12-302024-03-290001370450wldn:CommercialMemberwldn:EnergyMember2023-12-302024-03-290001370450us-gaap:TimeAndMaterialsContractMemberwldn:EngineeringConsultingServicesMember2023-12-302024-03-290001370450us-gaap:TimeAndMaterialsContractMemberwldn:EnergyMember2023-12-302024-03-290001370450us-gaap:FixedPriceContractMemberwldn:EngineeringConsultingServicesMember2023-12-302024-03-290001370450us-gaap:FixedPriceContractMemberwldn:EnergyMember2023-12-302024-03-290001370450country:USwldn:EngineeringConsultingServicesMember2023-12-302024-03-290001370450country:USwldn:EnergyMember2023-12-302024-03-290001370450wldn:UnitBasedContractMember2023-12-302024-03-290001370450wldn:PublicUtilityMember2023-12-302024-03-290001370450wldn:GovernmentsMember2023-12-302024-03-290001370450wldn:EngineeringConsultingServicesMember2023-12-302024-03-290001370450wldn:EnergyMember2023-12-302024-03-290001370450wldn:CommercialMember2023-12-302024-03-290001370450us-gaap:TimeAndMaterialsContractMember2023-12-302024-03-290001370450us-gaap:FixedPriceContractMember2023-12-302024-03-290001370450country:US2023-12-302024-03-290001370450wldn:UnitBasedContractMemberwldn:EngineeringConsultingServicesMember2022-12-312023-03-310001370450wldn:UnitBasedContractMemberwldn:EnergyMember2022-12-312023-03-310001370450wldn:PublicUtilityMemberwldn:EngineeringConsultingServicesMember2022-12-312023-03-310001370450wldn:PublicUtilityMemberwldn:EnergyMember2022-12-312023-03-310001370450wldn:GovernmentsMemberwldn:EngineeringConsultingServicesMember2022-12-312023-03-310001370450wldn:GovernmentsMemberwldn:EnergyMember2022-12-312023-03-310001370450wldn:CommercialMemberwldn:EngineeringConsultingServicesMember2022-12-312023-03-310001370450wldn:CommercialMemberwldn:EnergyMember2022-12-312023-03-310001370450us-gaap:TimeAndMaterialsContractMemberwldn:EngineeringConsultingServicesMember2022-12-312023-03-310001370450us-gaap:TimeAndMaterialsContractMemberwldn:EnergyMember2022-12-312023-03-310001370450us-gaap:FixedPriceContractMemberwldn:EngineeringConsultingServicesMember2022-12-312023-03-310001370450us-gaap:FixedPriceContractMemberwldn:EnergyMember2022-12-312023-03-310001370450country:USwldn:EngineeringConsultingServicesMember2022-12-312023-03-310001370450country:USwldn:EnergyMember2022-12-312023-03-310001370450wldn:UnitBasedContractMember2022-12-312023-03-310001370450wldn:PublicUtilityMember2022-12-312023-03-310001370450wldn:GovernmentsMember2022-12-312023-03-310001370450wldn:EngineeringConsultingServicesMember2022-12-312023-03-310001370450wldn:EnergyMember2022-12-312023-03-310001370450wldn:CommercialMember2022-12-312023-03-310001370450us-gaap:TimeAndMaterialsContractMember2022-12-312023-03-310001370450us-gaap:FixedPriceContractMember2022-12-312023-03-310001370450country:US2022-12-312023-03-310001370450wldn:ComputerHardwareAndSoftwareMember2024-03-290001370450wldn:AutomobilesTrucksAndFieldEquipmentMember2024-03-290001370450us-gaap:LeaseholdImprovementsMember2024-03-290001370450us-gaap:FurnitureAndFixturesMember2024-03-290001370450wldn:ComputerHardwareAndSoftwareMember2023-12-290001370450wldn:AutomobilesTrucksAndFieldEquipmentMember2023-12-290001370450us-gaap:LeaseholdImprovementsMember2023-12-290001370450us-gaap:FurnitureAndFixturesMember2023-12-290001370450us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-12-302024-03-290001370450us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember2023-12-302024-03-290001370450us-gaap:RetainedEarningsMember2023-12-302024-03-290001370450us-gaap:RetainedEarningsMember2022-12-312023-03-310001370450srt:MinimumMember2024-03-290001370450srt:MaximumMember2024-03-290001370450us-gaap:CorporateNonSegmentMember2023-12-302024-03-290001370450us-gaap:CorporateNonSegmentMember2022-12-312023-03-310001370450wldn:EngineeringConsultingServicesMember2024-03-290001370450wldn:EnergyMember2024-03-290001370450wldn:EngineeringConsultingServicesMember2023-12-290001370450wldn:EnergyMember2023-12-2900013704502024-09-282024-12-2700013704502024-06-292024-09-2700013704502024-03-302024-06-280001370450srt:MinimumMember2023-12-302024-12-270001370450srt:MaximumMember2023-12-302024-12-2700013704502023-12-302024-12-270001370450srt:MinimumMember2023-12-302024-03-290001370450srt:MaximumMember2023-12-302024-03-2900013704502023-09-302023-12-2900013704502023-07-012023-09-2900013704502023-04-012023-06-300001370450srt:MinimumMember2022-12-312023-12-290001370450srt:MaximumMember2022-12-312023-12-290001370450srt:MinimumMember2022-12-312023-03-310001370450srt:MaximumMember2022-12-312023-03-310001370450srt:MinimumMemberus-gaap:TradeNamesMember2024-03-290001370450srt:MinimumMemberus-gaap:NoncompeteAgreementsMember2024-03-290001370450srt:MinimumMemberus-gaap:CustomerRelationshipsMember2024-03-290001370450srt:MaximumMemberus-gaap:TradeNamesMember2024-03-290001370450srt:MaximumMemberus-gaap:NoncompeteAgreementsMember2024-03-290001370450srt:MaximumMemberus-gaap:CustomerRelationshipsMember2024-03-290001370450us-gaap:TradeNamesMember2024-03-290001370450us-gaap:OrderOrProductionBacklogMember2024-03-290001370450us-gaap:NoncompeteAgreementsMember2024-03-290001370450us-gaap:DevelopedTechnologyRightsMember2024-03-290001370450us-gaap:CustomerRelationshipsMember2024-03-290001370450us-gaap:TradeNamesMember2023-12-290001370450us-gaap:OrderOrProductionBacklogMember2023-12-290001370450us-gaap:NoncompeteAgreementsMember2023-12-290001370450us-gaap:DevelopedTechnologyRightsMember2023-12-290001370450us-gaap:CustomerRelationshipsMember2023-12-2900013704502022-12-312023-12-290001370450us-gaap:InterestRateSwapMemberus-gaap:CashFlowHedgingMember2023-11-302023-11-300001370450us-gaap:InterestRateSwapMemberus-gaap:CashFlowHedgingMember2023-11-300001370450us-gaap:OperatingSegmentsMemberwldn:EngineeringConsultingServicesMember2023-12-302024-03-290001370450us-gaap:OperatingSegmentsMemberwldn:EnergyMember2023-12-302024-03-290001370450us-gaap:OperatingSegmentsMemberwldn:EngineeringConsultingServicesMember2022-12-312023-03-310001370450us-gaap:OperatingSegmentsMemberwldn:EnergyMember2022-12-312023-03-310001370450wldn:QualifiedCashOrDeferredArrangementMember2023-12-302024-03-290001370450wldn:DefinedContributionPlanMember2023-12-302024-03-290001370450wldn:DefinedContributionPlanMember2022-12-312023-03-310001370450wldn:TermLoanMemberus-gaap:NotesPayableToBanksMember2024-03-290001370450wldn:OtherDebtMemberus-gaap:NotesPayableOtherPayablesMember2024-03-290001370450wldn:TermLoanMemberus-gaap:NotesPayableToBanksMember2023-12-290001370450wldn:OtherDebtMemberus-gaap:NotesPayableOtherPayablesMember2023-12-290001370450wldn:LosAngelesDepartmentOfWaterAndPowerMemberus-gaap:RevenueFromContractWithCustomerSegmentBenchmarkMemberus-gaap:CustomerConcentrationRiskMemberwldn:EnergyMember2023-12-302024-03-290001370450wldn:TopTenCustomersMemberus-gaap:RevenueFromContractWithCustomerMemberus-gaap:CustomerConcentrationRiskMember2023-12-302024-03-290001370450stpr:NYus-gaap:RevenueFromContractWithCustomerMemberus-gaap:GeographicConcentrationRiskMember2023-12-302024-03-290001370450stpr:CAus-gaap:RevenueFromContractWithCustomerMemberus-gaap:GeographicConcentrationRiskMember2023-12-302024-03-290001370450wldn:LosAngelesDepartmentOfWaterAndPowerMemberus-gaap:RevenueFromContractWithCustomerSegmentBenchmarkMemberus-gaap:CustomerConcentrationRiskMemberwldn:EnergyMember2022-12-312023-03-310001370450wldn:TopTenCustomersMemberus-gaap:RevenueFromContractWithCustomerMemberus-gaap:CustomerConcentrationRiskMember2022-12-312023-03-310001370450wldn:LosAngelesDepartmentOfWaterAndPowerMemberus-gaap:RevenueFromContractWithCustomerMemberus-gaap:CustomerConcentrationRiskMember2022-12-312023-03-310001370450stpr:NYus-gaap:RevenueFromContractWithCustomerMemberus-gaap:GeographicConcentrationRiskMember2022-12-312023-03-310001370450stpr:CAus-gaap:RevenueFromContractWithCustomerMemberus-gaap:GeographicConcentrationRiskMember2022-12-312023-03-310001370450us-gaap:CommonStockMember2024-03-290001370450us-gaap:CommonStockMember2023-12-290001370450us-gaap:CommonStockMember2023-03-310001370450us-gaap:CommonStockMember2022-12-3000013704502022-12-300001370450us-gaap:OperatingSegmentsMemberwldn:EngineeringConsultingServicesMember2024-03-290001370450us-gaap:OperatingSegmentsMemberwldn:EnergyMember2024-03-290001370450us-gaap:IntersegmentEliminationMember2024-03-290001370450us-gaap:CorporateNonSegmentMember2024-03-290001370450us-gaap:OperatingSegmentsMemberwldn:EngineeringConsultingServicesMember2023-03-310001370450us-gaap:OperatingSegmentsMemberwldn:EnergyMember2023-03-310001370450us-gaap:IntersegmentEliminationMember2023-03-310001370450us-gaap:CorporateNonSegmentMember2023-03-3100013704502023-03-310001370450us-gaap:StockCompensationPlanMember2023-12-302024-03-290001370450us-gaap:StockCompensationPlanMember2022-12-312023-03-310001370450us-gaap:CommonStockMember2023-12-302024-03-290001370450us-gaap:AdditionalPaidInCapitalMember2023-12-302024-03-290001370450us-gaap:AdditionalPaidInCapitalMember2022-12-312023-03-3100013704502022-12-312023-03-3100013704502024-03-2900013704502023-12-2900013704502024-05-0100013704502023-12-302024-03-29xbrli:sharesiso4217:USDiso4217:USDxbrli:sharesxbrli:purewldn:segmentwldn:statewldn:Ywldn:entity

UNITED STATES
SECURITIES AND EXCHANGE COMMISSION

Washington, D.C.  20549

FORM 10-Q

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

For the quarterly period ended March 29, 2024

OR

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

For the transition period from            to          

Commission file number 001-33076

WILLDAN GROUP, INC.

(Exact Name of Registrant as Specified in Its Charter)

Delaware

14-1951112

(State or Other Jurisdiction of
Incorporation or Organization)

(IRS Employer Identification No.)

2401 East Katella Avenue, Suite 300
Anaheim, California

92806

(Address of Principal Executive Offices)

(Zip Code)

Registrant’s Telephone Number, Including Area Code: (800424-9144

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

Title of each class

Trading Symbol(s)

Name of each exchange on which registered

Common Stock, par value $0.01 per share

WLDN

The Nasdaq Stock Market LLC

(Nasdaq Global Market)

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

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

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

Large accelerated filer 

Accelerated filer

Non-accelerated filer 

Smaller reporting company

Emerging growth company

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

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

As of May 1, 2024, there were 13,817,074 shares of common stock, $0.01 par value per share, of Willdan Group, Inc. issued and outstanding.

i

CAUTIONARY STATEMENT REGARDING FORWARD-LOOKING INFORMATION

This Quarterly Report on Form 10-Q (this “10-Q”) contains statements that constitute forward-looking statements as that term is defined by the Private Securities Litigation Reform Act of 1995, as amended. These statements concern our business, operations and financial performance and condition as well as our plans, objectives and expectations for our business operations and financial performance and condition, which are subject to risks and uncertainties. All statements other than statements of historical fact included in this 10-Q are forward-looking statements. These statements may include words such as “aim,” “anticipate,” “assume,” “believe,” “can have,” “could,” “due,” “estimate,” “expect,” “goal,” “intend,” “likely,” “may,” “objective,” “plan,” “potential,” “positioned,” “predict,” “should,” “target,” “will,” “would” and other words and terms of similar meaning in connection with any discussion of the timing or nature of future operating or financial performance or other events or trends. For example, all statements we make relating to our plans and objectives for future operations, growth or initiatives and strategies are forward-looking statements.

These forward-looking statements are based on current expectations, estimates, forecasts and projections about our business and the industry in which we operate and our management’s beliefs and assumptions. We derive many of our forward-looking statements from our own operating budgets and forecasts, which are based upon many detailed assumptions. While we believe that our assumptions are reasonable, we caution that predicting the impact of known factors is very difficult, and we cannot anticipate all factors that could affect our actual results.

All of our forward-looking statements are subject to risks and uncertainties that may cause our actual results to differ materially from our expectations. Important factors that could cause actual results to differ materially from our expectations include, but are not limited to:

our ability to adequately complete projects in a timely manner;
our ability to compete successfully in the highly competitive energy services market, which represented 84% of our consolidated revenue in fiscal year 2023;
our reliance on work from our top ten clients, which accounted for 53% of our consolidated contract revenue for fiscal year 2023;
changes in state, local and regional economies and government budgets;
our ability to win new contracts, to renew existing contracts and to compete effectively for contracts awarded through bidding processes;
our ability to make principal and interest payments on our outstanding debt as they come due and to comply with the financial covenants contained in our debt agreements;
our ability to manage supply chain constraints, labor shortages, rising interest rates, and rising inflation;
our ability to obtain financing and to refinance our outstanding debt as it matures;
our ability to successfully integrate our acquisitions and execute on our growth strategy; and
our ability to attract and retain managerial, technical, and administrative talent.

The above is not a complete list of factors or events that could cause actual results to differ from our expectations, and we cannot predict all of them. All written and oral forward-looking statements attributable to us, or persons acting on our behalf, are expressly qualified in their entirety by the cautionary statements disclosed elsewhere in this Quarterly Report on Form 10-Q, and under Part I, Item 1A. “Risk Factors”, “Management’s Discussion and Analysis of Financial Condition and Results of Operations” and elsewhere in our Annual Report on Form 10-K for the fiscal year ended December 29, 2023, as such disclosures may be amended, supplemented or superseded from time to

1

time by other reports we file with the Securities and Exchange Commission, including subsequent Annual Reports on Form 10-K, Quarterly Reports on Form 10-Q, Current Reports on Form 8-K and public communications. You should evaluate all forward-looking statements made in this Quarterly Report on Form 10-Q and otherwise in the context of these risks and uncertainties.

Potential investors and other readers are urged to consider these factors carefully in evaluating the forward-looking statements and are cautioned not to place undue reliance on any forward-looking statements we make. These forward-looking statements speak only as of the date of this Quarterly Report on Form 10-Q and are not guarantees of future performance or developments and involve known and unknown risks, uncertainties and other factors that are in many cases beyond our control. Except as required by law, we undertake no obligation to update or revise any forward-looking statements publicly, whether as a result of new information, future developments or otherwise.

2

PART I. FINANCIAL INFORMATION

Item 1. Financial Statements

WILLDAN GROUP, INC. AND SUBSIDIARIES

CONDENSED CONSOLIDATED BALANCE SHEETS

(in thousands, except par value)

(Unaudited)

    

March 29,

    

December 29,

2024

2023

Assets

Current assets:

Cash and cash equivalents

$

46,925

$

23,397

Restricted cash

Accounts receivable, net of allowance for doubtful accounts of $690 and $866 at March 29, 2024 and December 29, 2023, respectively

 

50,792

 

69,677

Contract assets

 

82,409

 

93,885

Other receivables

 

552

 

1,169

Prepaid expenses and other current assets

 

5,863

 

3,888

Total current assets

 

186,541

 

192,016

Equipment and leasehold improvements, net

 

27,539

 

27,097

Goodwill

131,144

131,144

Right-of-use assets

12,803

12,465

Other intangible assets, net

30,085

31,956

Other assets

 

4,832

 

4,949

Deferred income taxes, net

14,956

15,961

Total assets

$

407,900

$

415,588

Liabilities and Stockholders’ Equity

Current liabilities:

Accounts payable

$

34,518

$

33,193

Accrued liabilities

 

38,411

 

54,129

Contract liabilities

 

16,427

 

13,183

Notes payable

 

8,924

 

8,452

Finance lease obligations

1,111

1,186

Lease liability

4,677

4,537

Total current liabilities

 

104,068

 

114,680

Notes payable, less current portion

86,571

88,979

Finance lease obligations, less current portion

 

1,112

 

1,184

Lease liability, less current portion

9,948

9,758

Other noncurrent liabilities

686

1,142

Total liabilities

 

202,385

 

215,743

Commitments and contingencies

Stockholders’ equity:

Preferred stock, $0.01 par value, 10,000 shares authorized, no shares issued and outstanding

 

 

Common stock, $0.01 par value, 40,000 shares authorized; 13,817 and 13,682 shares issued and outstanding at March 29, 2024 and December 29, 2023, respectively

 

138

 

137

Additional paid-in capital

 

188,088

 

185,795

Accumulated other comprehensive loss

(230)

(664)

Retained earnings

 

17,519

 

14,577

Total stockholders’ equity

 

205,515

 

199,845

Total liabilities and stockholders’ equity

$

407,900

$

415,588

See accompanying notes to Condensed Consolidated Financial Statements.

3

WILLDAN GROUP, INC. AND SUBSIDIARIES

CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME

(in thousands, except per share amounts)

(Unaudited)

Three Months Ended

March 29,

March 31,

    

2024

    

2023

Contract revenue

$

122,489

$

102,603

Direct costs of contract revenue (inclusive of directly related depreciation and amortization):

Salaries and wages

 

21,512

 

20,410

Subcontractor services and other direct costs

 

53,559

 

40,912

Total direct costs of contract revenue

 

75,071

 

61,322

Gross profit

 

47,418

 

41,281

General and administrative expenses:

Salaries and wages, payroll taxes and employee benefits

 

26,509

 

22,385

Facilities and facility related

 

2,445

 

2,278

Stock-based compensation

 

1,390

 

1,533

Depreciation and amortization

 

3,592

 

4,200

Other

 

8,121

 

6,871

Total general and administrative expenses

 

42,057

 

37,267

Income (Loss) from operations

 

5,361

 

4,014

Other income (expense):

Interest expense, net

 

(2,137)

 

(2,466)

Other, net

 

704

 

140

Total other expense, net

 

(1,433)

 

(2,326)

Income (Loss) before income taxes

 

3,928

 

1,688

Income tax (benefit) expense

 

986

 

756

Net income (loss)

2,942

932

Other comprehensive income (loss):

Unrealized gain (loss) on derivative contracts, net of tax

434

Comprehensive income (loss)

$

3,376

$

932

Earnings (Loss) per share:

Basic

$

0.22

$

0.07

Diluted

$

0.21

$

0.07

Weighted-average shares outstanding:

Basic

 

13,605

 

13,266

Diluted

 

13,910

 

13,470

See accompanying notes to Condensed Consolidated Financial Statements.

4

WILLDAN GROUP, INC. AND SUBSIDIARIES

CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS’ EQUITY

(in thousands)

(Unaudited)

Accumulated

Additional

Other

Common Stock

Paid-in

Comprehensive

Retained

    

Shares

    

Amount

    

Capital

    

Income (Loss)

    

Earnings

    

Total

Balance at December 29, 2023

 

13,682

$

137

$

185,795

$

(664)

$

14,577

$

199,845

Shares of common stock issued in connection with employee stock purchase plan

 

86

1

1,401

1,402

Shares of common stock issued in connection with incentive stock plan

19

281

281

Shares used to pay taxes on stock grants

 

(32)

(1)

(778)

(779)

Issuance of restricted stock award and units

62

1

(1)

Stock-based compensation expense

 

1,390

1,390

Net income (loss)

 

2,942

2,942

Net unrealized gain on derivative contracts

434

434

Balance at March 29, 2024

 

13,817

$

138

$

188,088

$

(230)

$

17,519

$

205,515

Accumulated

Additional

Other

Common Stock

Paid-in

Comprehensive

Retained

    

Shares

    

Amount

    

Capital

    

Income (Loss)

    

Earnings

    

Total

Balance at December 30, 2022

 

13,296

$

133

$

177,718

$

$

3,651

$

181,502

Shares of common stock issued in connection with employee stock purchase plan

 

92

1

1,391

1,392

Shares used to pay taxes on stock grants

 

(7)

(124)

(124)

Issuance of restricted stock award and units

108

1

(1)

Stock-based compensation expense

 

1,533

1,533

Net income (loss)

 

932

932

Balance at March 31, 2023

 

13,489

$

135

$

180,517

$

$

4,583

$

185,235

See accompanying notes to Condensed Consolidated Financial Statements.

5

WILLDAN GROUP, INC. AND SUBSIDIARIES

CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS

(in thousands)

(Unaudited)

Three Months Ended

March 29,

March 31,

    

2024

    

2023

Cash flows from operating activities:

Net income (loss)

$

2,942

$

932

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

Depreciation and amortization

 

3,592

 

4,200

Other non-cash items

92

85

Deferred income taxes, net

 

1,005

 

782

(Gain) loss on sale/disposal of equipment

 

(13)

 

(10)

Provision for doubtful accounts

 

(100)

 

81

Stock-based compensation

 

1,390

 

1,533

Changes in operating assets and liabilities, net of effects from business acquisitions:

Accounts receivable

 

18,985

 

8,204

Contract assets

 

11,476

 

7,819

Other receivables

 

617

 

(9)

Prepaid expenses and other current assets

 

(1,975)

 

1,023

Other assets

 

117

 

(3,532)

Accounts payable

 

1,325

 

479

Accrued liabilities

 

(15,740)

 

(7,883)

Contract liabilities

 

3,244

 

2,941

Right-of-use assets

 

(8)

 

647

Net cash (used in) provided by operating activities

 

26,949

 

17,292

Cash flows from investing activities:

Purchase of equipment, software, and leasehold improvements

 

(1,971)

 

(3,488)

Proceeds from sale of equipment

19

13

Net cash (used in) provided by investing activities

 

(1,952)

 

(3,475)

Cash flows from financing activities:

Payment on restricted cash

(10,679)

Payments on notes payable

(153)

(485)

Repayments under term loan facility and line of credit

(1,875)

(5,250)

Principal payments on finance leases

 

(345)

 

(303)

Proceeds from stock option exercise

 

281

 

Proceeds from sales of common stock under employee stock purchase plan

 

1,402

 

1,392

Cash used to pay taxes on stock grants

(779)

(124)

Net cash (used in) provided by financing activities

 

(1,469)

 

(15,449)

Net increase (decrease) in cash, cash equivalents and restricted cash

 

23,528

 

(1,632)

Cash, cash equivalents and restricted cash at beginning of period

 

23,397

 

19,485

Cash, cash equivalents and restricted cash at end of period

$

46,925

$

17,853

Supplemental disclosures of cash flow information:

Cash paid (received) during the period for:

Interest

$

2,081

$

2,424

Income taxes

 

2

 

(77)

Supplemental disclosures of noncash investing and financing activities:

Equipment acquired under finance leases

198

48

See accompanying notes to Condensed Consolidated Financial Statements.

6

Table of Contents

WILLDAN GROUP, INC. AND SUBSIDIARIES

NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS

(Unaudited)

1. ORGANIZATION AND OPERATIONS OF THE COMPANY

Willdan Group, Inc. (“Willdan” or the “Company”) is a provider of professional, technical and consulting services to utilities, private industry, and public agencies at all levels of government. As resource and infrastructure needs undergo continuous change, the Company helps organizations and their communities evolve and thrive by providing a wide range of technical services for energy solutions, and government infrastructure. Through engineering, program management, policy advisory, and software and data management, the Company designs and delivers trusted, comprehensive, innovative, and proven solutions to improve efficiency, resiliency, and sustainability in energy and infrastructure.

The Company’s broad portfolio of services operates within two financial reporting segments: (1) Energy and (2) Engineering and Consulting. The interfaces and synergies between these segments are important elements of the Company’s strategy to design and deliver trusted, comprehensive, innovative, and proven solutions for its customers.

The accounting policies followed by the Company are set forth in Part II, Item 8, Note 1, Organization and Operations of the Company, of the Notes to Consolidated Financial Statements included in the Company’s Annual Report on Form 10-K for the fiscal year ended December 29, 2023. In the opinion of management, all adjustments necessary to fairly state the Condensed Consolidated Financial Statements have been made. All such adjustments are of a normal, recurring nature. Certain information and footnote disclosures normally included in the Consolidated Financial Statements prepared in accordance with accounting principles generally accepted in the United States (“U.S. GAAP”) have been condensed or omitted pursuant to the rules and regulations of the Securities and Exchange Commission (“SEC”). These Condensed Consolidated Financial Statements and related notes thereto should be read in conjunction with the Consolidated Financial Statements and the notes thereto included in the Company’s Annual Report on Form 10-K for the fiscal year ended December 29, 2023. The results of operations for interim periods are not necessarily indicative of results to be expected for the full year.

Fiscal Years

The Company operates and reports its annual financial results based on 52 or 53-week periods ending on the Friday closest to December 31. The Company operates and reports its quarterly financial results based on the 13-week period ending on the Friday closest to June 30, September 30, and December 31 and the 13 or 14-week period ending on the Friday closest to March 31, as applicable. Fiscal year 2024, which ends on December 27, 2024, will be comprised of 52 weeks, with all quarters consisting of 13 weeks each. Fiscal year 2023, which ended on December 29, 2023, was comprised of 52 weeks, with all quarters consisting of 13 weeks each. All references to years in the notes to consolidated financial statements represent fiscal years.

Use of Estimates

The preparation of consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the consolidated financial statements. Estimates also affect the reported amounts of revenue and expenses during the reporting period. Actual results could differ from those estimates.

7

Table of Contents

WILLDAN GROUP, INC. AND SUBSIDIARIES
NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS – (Continued)
(Unaudited)

2. RECENT ACCOUNTING PRONOUNCEMENTS

Accounting Pronouncements Recently Issued

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” (“ASU 2023-09”). ASU 2023-09 amends the rules on income tax disclosures to require entities to disclose specific categories in the rate reconciliation, the income or loss from continuing operations before income tax expense or benefit (separated between domestic and foreign) and income tax expense or benefit from continuing operations (separated by federal, state, and foreign). In addition, ASU 2023-09 requires entities to disclose their income tax payments to international, federal, state, and local jurisdictions, among other changes. The amendments can be applied on a prospective basis although retrospective application is permitted. The amendments are effective for the fiscal years beginning after December 15, 2024, with early adoption permitted. The Company is currently evaluating the impact this update will have on its Consolidated Financial Statements.

In November 2023, the FASB issued ASU No. 2023-07, “Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures” (“ASU 2023-07”). ASU 2023-07 expands segment disclosure requirements through enhanced disclosures related to significant segment expenses that are regularly provided to the chief operating decision maker (“CODM”), a description of other segment items by reportable segment, and any additional measures of a segment's profit or loss used by the CODM when deciding how to allocate resources. All disclosure requirements under ASU 2023-07 are also required for public entities with a single reportable segment. The amendments are effective for the fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024. The Company is currently evaluating the impact this update will have on its Consolidated Financial Statements.

  

In October 2023, the FASB issued ASU No. 2023-06, “Disclosure Improvements: Codification Amendments in Response to the SEC’s Disclosure Update and Simplification Initiative” (“ASU 2023-06”). ASU 2023-06 amends U.S. GAAP to reflect updates and simplifications to certain disclosure and presentation requirements referred to FASB by the Securities and Exchange Commission (“SEC”). The targeted amendments incorporate 14 of the 27 disclosures referred by the SEC into codification. Each amendment in ASU 2023-06 is effective on either the date on which the SEC’s removal of the related disclosure requirement from Regulation S-X or Regulation S-K becomes effective, or on June 30, 2027, if the SEC has not removed the requirements by that date. The Company is currently evaluating the impact this update will have on its Consolidated Financial Statements.

 

 

8

Table of Contents

WILLDAN GROUP, INC. AND SUBSIDIARIES
NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS – (Continued)
(Unaudited)

3. REVENUES

The Company enters into contracts with its clients that contain various types of pricing provisions, including fixed price, time-and-materials, and unit-based provisions. The Company recognizes revenues in accordance with ASU 2014-09, Revenue from Contracts with Customer, codified as ASC Topic 606 and the related amendments (collectively “ASC 606”). As such, the Company identifies a contract with a customer, identifies the performance obligations in the contract, determines the transaction price, allocates the transaction price to each performance obligation in the contract and recognizes revenues when (or as) the Company satisfies a performance obligation.

The following table reflects the Company’s two reportable segments and the types of contracts that each most commonly enters into for revenue generating activities.

Segment

Contract Type

Revenue Recognition Method

Time-and-materials

Time-and-materials

Energy

Unit-based

Unit-based

Software license

Unit-based

Fixed price

Percentage-of-completion

Time-and-materials

Time-and-materials

Engineering and Consulting

Unit-based

Unit-based

Fixed price

Percentage-of-completion

 

Revenue on the vast majority of the Company’s contracts is recognized over time because of the continuous transfer of control to the customer. Revenue on fixed price contracts is recognized on the percentage-of-completion method based generally on the ratio of direct costs incurred-to-date to estimated total direct costs at completion. The Company uses the percentage-of-completion method to better match the level of work performed at a certain point in time in relation to the effort that will be required to complete a project. In addition, the percentage-of-completion method is a common method of revenue recognition in the Company’s industry.

Many of the Company’s fixed price contracts involve a high degree of subcontracted fixed price effort and, usually, are relatively short in duration, thereby lowering the risks of not properly estimating the percent complete. Revenue on time-and-materials and unit-based contracts is recognized as the work is performed in accordance with the specific rates and terms of the contract. The Company recognizes revenues for time-and-materials contracts based upon the actual hours incurred during a reporting period at contractually agreed upon rates per hour and also includes in revenue all reimbursable costs incurred during a reporting period. Certain of the Company’s time-and-materials contracts are subject to maximum contract values and, accordingly, when revenue is expected to exceed the maximum contract value, these contracts are generally recognized under the percentage-of-completion method, consistent with fixed price contracts. For unit-based contracts, the Company recognizes the contract price of units of a basic production product as revenue when the production product is delivered during a period. Revenue for amounts that have been billed but not earned is deferred, and such deferred revenue is referred to as contract liabilities in the accompanying condensed consolidated balance sheets. The Company also derives revenue from software licenses and professional services and maintenance fees. In accordance with ASC 606, the Company performs an assessment of each contract to identify the performance obligations, determine the overall transaction price for the contract, allocate the transaction price to the performance obligations, and recognize the revenue when the performance obligations are satisfied. The Company utilizes the residual approach by which it estimates the standalone selling price by reference to the total transaction price less the sum of the observable standalone selling prices of other goods or services promised in the contract. The software license revenue is typically recognized at a point in time when control is transferred to the client, which is defined as the point in time when the client can use and benefit from the license. The software license is delivered before related services are provided and is functional without services, updates, or technical support. Related professional services include training and support services in which the standalone selling price is determined based on an input measure of hours incurred to total estimated hours and is recognized over time, which usually is the life of the contract.

9

Table of Contents

WILLDAN GROUP, INC. AND SUBSIDIARIES
NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS – (Continued)
(Unaudited)

To determine the proper revenue recognition method for contracts, the Company evaluates whether two or more contracts should be combined and accounted for as one single contract and whether the combined contract should be accounted for as one performance obligation. With respect to the Company’s contracts, it is rare that multiple contracts should be combined into a single performance obligation. This evaluation requires significant judgment and the decision to combine a group of contracts or separate a single contract into multiple performance obligations could change the amount of revenue and profit recorded in a given period. Contracts are considered to have a single performance obligation if the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts, which is mainly because the Company provides a significant service of integrating a complex set of tasks and components into a single project or capability.

The Company may enter into contracts that include separate phases or elements. If each phase or element is negotiated separately based on the technical resources required and/or the supply and demand for the services being provided, the Company evaluates if the contracts should be segmented. If certain criteria are met, the contracts would be segmented which could result in revenues being assigned to the different elements or phases with different rates of profitability based on the relative value of each element or phase to the estimated total contract revenue. Segmented contracts may comprise up to approximately 2.0% to 3.0% of the Company’s consolidated contract revenue.

Contracts that cover multiple phases or elements of the project or service lifecycle (development, construction and maintenance and support) may be considered to have multiple performance obligations even when they are part of a single contract. For contracts with multiple performance obligations, the Company allocates the transaction price to each performance obligation using the best estimate of the standalone selling price of each distinct good or service in the contract. For the periods presented, the value of the separate performance obligations under contracts with multiple performance obligations (generally measurement and verification tasks under certain energy performance contracts) were not material. In cases where the Company does not provide the distinct good or service on a standalone basis, the primary method used to estimate standalone selling price is the expected cost plus a margin approach, under which the Company forecasts the Company’s expected costs of satisfying a performance obligation and then adds an appropriate margin for the distinct good or service.

The Company provides quality of workmanship warranties to customers that are included in the sale and are not priced or sold separately or do not provide customers with a service in addition to assurance of compliance with agreed-upon specifications and industry standards. The Company does not consider these types of warranties to be separate performance obligations.

In some cases, the Company has a master service or blanket agreement with a customer under which each task order releases the Company to perform specific portions of the overall scope in the service contract. Each task order is typically accounted for as a separate contract because the task order establishes the enforceable rights and obligations, and payment terms.

Under ASC 606, variable consideration should be considered when determining the transaction price and estimates should be made for the variable consideration component of the transaction price, as well as assessing whether an estimate of variable consideration is constrained. For certain of the Company’s contracts, variable consideration can arise from modifications to the scope of services resulting from unapproved change orders or customer claims. Variable consideration is included in the transaction price to the extent it is probable that a significant reversal of cumulative revenue recognized will not occur when the uncertainty associated with the variable consideration is resolved. The Company estimates of variable consideration and determination of whether to include estimated amounts in the transaction price are based largely on assessments of legal enforceability, the Company’s performance, and all information (historical, current and forecasted) that is reasonably available to the Company.

10

Table of Contents

WILLDAN GROUP, INC. AND SUBSIDIARIES
NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS – (Continued)
(Unaudited)

Due to the nature of the work required to be performed on many of the Company’s performance obligations, the estimation of total revenue and cost at completion is complex, subject to many variables and requires significant judgment. As a significant change in one or more of these estimates could affect the profitability of the Company’s contracts, the Company reviews and updates the Company’s contract-related estimates regularly through a company-wide disciplined project review process in which management reviews the progress and execution of the Company’s performance obligations and the estimate at completion (“EAC”). As part of this process, management reviews information including, but not limited to, any outstanding key contract matters, progress towards completion and the related program schedule and the related changes in estimates of revenues and costs. Management must make assumptions and estimates regarding labor productivity and availability, the complexity of the work to be performed, the cost and availability of materials, the performance of subcontractors, and the availability and timing of funding from the customer, among other variables.

The Company recognizes adjustments in estimated profit on contracts under the cumulative catch-up method. Under this method, the impact of the adjustment on profit recorded to date is recognized in the period the adjustment is identified. Revenue and profit in future periods of contract performance is recognized using the adjusted estimate. If at any time the estimate of contract profitability indicates an anticipated loss on the contract, the Company recognizes the full amount of estimated loss in the period it is identified.

Contracts are often modified to account for changes in contract specifications and requirements. The Company considers contract modifications to exist when the modification either creates new rights or obligations or changes the existing enforceable rights or obligations. Most of the Company’s contract modifications are for goods or services that are not distinct from existing contracts due to the significant integration provided in the context of the contract and are accounted for as if they were part of the original contract. The effect of a contract modification that is not distinct from the existing contract on the transaction price and the Company’s measure of progress for the performance obligation to which it relates is recognized as an adjustment to revenue (either as an increase in or a reduction of revenue) on a cumulative catch-up basis.

For contract modifications that result in the promise to deliver goods or services that are distinct from the existing contract and the increase in price of the contract is for the same amount as the standalone selling price of the additional goods or services included in the modification, the Company accounts for such contract modifications as a separate contract.

The Company includes claims to vendors, subcontractors and others as a receivable and a reduction in recognized costs when enforceability of the claim is established by the contract and the amounts are reasonably estimable and probable of being recovered. The amounts are recorded up to the extent of the lesser of the amounts management expects to recover or to costs incurred.

Billing practices are governed by the contract terms of each project based upon costs incurred, achievement of milestones or pre-agreed schedules. Billings do not necessarily correlate with revenue recognized using the percentage-of-completion method of revenue recognition.

Direct costs of contract revenue consist primarily of that portion of technical and nontechnical salaries and wages that has been incurred in connection with revenue producing projects. Direct costs of contract revenue also include production expenses, subcontractor services and other expenses that are incurred in connection with revenue producing projects.

11

Table of Contents

WILLDAN GROUP, INC. AND SUBSIDIARIES
NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS – (Continued)
(Unaudited)

Direct costs of contract revenue exclude that portion of technical and nontechnical salaries and wages related to marketing efforts, vacations, holidays and other time not spent directly generating revenue under existing contracts. Such costs are included in general and administrative expenses. Additionally, payroll taxes, bonuses and employee benefit costs for all Company personnel are included in general and administrative expenses in the accompanying condensed consolidated statements of comprehensive income since no allocation of these costs is made to direct costs of contract revenue. No allocation of facilities costs is made to direct costs of contract revenue. Other companies may classify as direct costs of contract revenue some of the costs that the Company classifies as general and administrative costs. The Company expenses direct costs of contract revenue when incurred.

Included in revenue and costs are all reimbursable costs for which the Company has the risk or on which the fee was based at the time of bid or negotiation. No revenue or cost is recorded for costs in which the Company acts solely in the capacity of an agent and has no risks associated with such costs.

Accounts receivable are carried at original invoice amount less an estimate made for doubtful accounts based upon a review of all outstanding amounts on a quarterly basis. Management determines allowances for doubtful accounts through specific identification of amounts considered to be uncollectible and potential write-offs, plus a non-specific allowance for other amounts for which some potential loss has been determined to be probable based on current and past experience. The Company’s historical credit losses have been minimal with governmental entities and large public utilities, but disputes may arise related to these receivable amounts. Accounts receivable are written off when deemed uncollectible. Recoveries of accounts receivable previously written off are recorded when received.

Retainage, included in contract assets, represents amounts withheld from billings to the Company’s clients pursuant to provisions in the contracts and may not be paid to the Company until specific tasks are completed or the project is completed and, in some instances, for even longer periods. As of March 29, 2024 and December 29, 2023, contract assets included retainage of approximately $16.1 million and $14.3 million, respectively.

 

 

12

Table of Contents

WILLDAN GROUP, INC. AND SUBSIDIARIES
NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS – (Continued)
(Unaudited)

4. SUPPLEMENTAL FINANCIAL STATEMENT DATA

Restricted Cash

The following table provides a reconciliation of cash and cash equivalents, and restricted cash reported within the condensed consolidated balance sheets to the total cash, cash equivalents, and restricted cash shown in the consolidated statements of cash flows:

March 29,

December 29,

    

2024

    

2023

(in thousands)

Cash and cash equivalents

$

46,925

$

23,397

Restricted cash

 

 

Total cash, cash equivalents, and restricted cash shown in the consolidated statement of cash flows

$

46,925

$

23,397

 

Under certain utility contracts, the Company periodically receives cash deposits to be held in trust for the payment of energy incentive rebates to be sent directly to the utility’s end-customer on behalf of the utility. The Company acts solely as the utility’s agent to distribute these funds to the end-customer and, accordingly, the Company classifies these contractually restricted funds as restricted cash. Because these funds are held in trust for pass through to the utility’s customers and have no impact on the Company’s working capital or operating cash flows, these cash receipts are presented in the consolidated statement of cash flows as financing cash inflows, “Receipt of restricted cash”, with the subsequent payments classified as financing cash outflows, “Payment of restricted cash.”

Equipment and Leasehold Improvements

March 29,

December 29,

    

2024

    

2023

(in thousands)

Furniture and fixtures

$

4,403

$

4,379

Computer hardware and software

 

46,384

 

44,594

Leasehold improvements

 

3,466

 

3,382

Equipment under finance leases

 

6,245

 

6,139

Automobiles, trucks, and field equipment

 

3,388

 

3,373

Subtotal

 

63,886

 

61,867

Accumulated depreciation and amortization

 

(36,347)

 

(34,770)

Equipment and leasehold improvements, net

$

27,539

$

27,097

 

Included in accumulated depreciation and amortization is $0.4 million and $1.3 million of amortization expense related to equipment held under finance leases for the three months ended March 29, 2024 and for fiscal year 2023, respectively.

13

Table of Contents

WILLDAN GROUP, INC. AND SUBSIDIARIES
NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS – (Continued)
(Unaudited)

Accrued Liabilities

March 29,

December 29,

    

2024

    

2023

(in thousands)

Accrued subcontractor costs

$

22,896

$

30,196

Accrued bonuses

4,542

14,423

Employee withholdings

 

4,779

 

3,123

Compensation and payroll taxes

 

4,163

 

3,125

Rebate and other

139

Accrued accounting costs and taxes

 

2,031

 

3,123

Total accrued liabilities

$

38,411

$

54,129

 

Goodwill

December 29,

Additional

Additions /

March 29,

    

2023

    

Purchase Cost

    

Adjustments

    

2024

(in thousands)

Reporting Unit:

Energy

$

129,375

$

$

$

129,375

Engineering and Consulting

1,769

1,769

$

131,144

$

$

$

131,144

 

The Company tests its goodwill at least annually for possible impairment. The Company completes its annual testing of goodwill as of the last day of the first month of its fourth fiscal quarter each year to determine whether there is a potential impairment. In addition to the Company’s annual test, it regularly evaluates whether events and circumstances have occurred that may indicate a potential impairment of goodwill. The Company evaluated the current economic environment and noted that it does not believe it is more likely than not that goodwill was impaired as of March 29, 2024.

Intangible Assets

March 29, 2024

December 29, 2023

Gross

Accumulated

Gross

Accumulated

Amortization

    

Amount

    

Amortization

    

Amount

    

Amortization

    

Period

(in thousands)

(in years)

Finite:

Backlog

$

8,306

$

8,148

$

8,306

$

8,095

1.0

Tradename

15,936

12,835

15,936

12,695

 

2.5

-

6.0

Non-compete agreements

1,613

1,452

1,613

1,440

4.0

-

5.0

Developed technology

15,810

14,791

15,810

14,521

8.0

Customer relationships

58,149

32,503

58,149

31,107

5.0

-

8.0

Total intangible assets

$

99,814

$

69,729

$

99,814

$

67,858

 

 

14

Table of Contents

WILLDAN GROUP, INC. AND SUBSIDIARIES
NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS – (Continued)
(Unaudited)

5. DERIVATIVE FINANCIAL INSTRUMENTS

The Company uses certain interest rate derivative contracts to hedge interest rate exposures on its variable rate debt. The Company’s hedging program is not designated for trading or speculative purposes.

The Company recognizes derivative instruments as either assets or liabilities on the accompanying condensed consolidated balance sheets at fair value. The Company records changes in the fair value (i.e., gains or losses) of the derivatives that have been designated as cash flow hedges in its consolidated balance sheets as accumulated other comprehensive income (loss) and in its consolidated statements of comprehensive income (loss) as a loss or gain on cash flow hedge valuation.

On November 30, 2023, the Company entered into an interest rate swap agreement that the Company designated as cash flow hedge to fix the variable interest rate on a portion of the Company’s term loan (see Note 6, “Debt Obligations” for information regarding our indebtedness). The interest rate swap agreement has a total notional amount of $50.0 million, has a fixed annual interest rate of 4.77%, and expires on September 29, 2026. As of March 29, 2024, the effective portion of the Company’s interest rate swap agreement designated as a cash flow hedge before tax effects was $0.5 million, of which no amounts were reclassified from accumulated other comprehensive income (loss) to interest expense in the three months ended March 29, 2024. The Company expects to reclassify $0.1 million from accumulated other comprehensive income (loss) to interest expense within the next twelve months.

The fair values of the Company’s outstanding derivatives designated as hedging instruments were as follows:

    

    

Fair Value of Derivative

    

    

Instruments as of

Balance Sheet Location

March 29, 2024

December 29, 2023

(in thousands)

Interest rate swap agreement

Current assets

$

140

$

46

Interest rate swap agreement

Other noncurrent liabilities

(431)

(887)

 

The impact of the effective portions of derivative instruments in cash flow hedging relationships and fair value relationships on other comprehensive income (loss) was $0.4 million for the three months ended March 29, 2024.

The accumulated balances and reporting period activities for the periods below related to reclassifications out of accumulated other comprehensive income (loss) are summarized as follows:

Gain (Loss) on

Accumulated Other

    

Derivative Instruments

    

Comprehensive Income (Loss)

(in thousands)

Balances at December 29, 2023

$

(664)

$

(664)

Other comprehensive income (loss) before reclassifications

549

549

Amounts reclassified from accumulated other comprehensive income (loss):

Income tax benefit (expense) related to derivative instruments

(115)

(115)

Net current-period other comprehensive income (loss)

434

434

Balances at March 29, 2024

$

(230)

$

(230)

 

15

Table of Contents

WILLDAN GROUP, INC. AND SUBSIDIARIES
NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS – (Continued)
(Unaudited)

6. DEBT OBLIGATIONS

Debt obligations, excluding obligations under finance leases (see Note 7, Leases, below), consisted of the following:

    

March 29,

    

December 29,

2024

2023

(in thousands)

Outstanding borrowings on Term Loan

$

96,250

$

98,125

Outstanding borrowings on Revolving Credit Facility

Other debt agreements

174

327

Total debt

96,424

98,452

Issuance costs and debt discounts

(929)

(1,021)

Subtotal

95,495

97,431

Less current portion of long-term debt

 

8,924

 

8,452

Long-term debt portion

$

86,571

$

88,979

 

The credit agreement governing the Company’s Term Loan and Revolving Credit Facility require the Company to comply with certain financial obligations, including a maximum Net Leverage Ratio and a minimum Fixed Charge Coverage Ratio (as defined in the credit agreement governing the Term Loan and Revolving Credit Facility). The credit agreement also contains customary restrictive covenants. As of March 29, 2024, the Company was in compliance with all these covenants.

In addition, as of March 29, 2024, the Company’s composite interest rate, exclusive of the effects of upfront fees, undrawn fees and issuance cost amortization, was 7.7%.

16

Table of Contents

WILLDAN GROUP, INC. AND SUBSIDIARIES
NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS – (Continued)
(Unaudited)

7. LEASES

The Company leases certain office facilities under long-term, non-cancellable operating leases that expire at various dates through 2029. In addition, the Company is obligated under finance leases for certain furniture and office equipment that expire at various dates through 2028.

From time to time, the Company enters into non-cancelable leases for some of its facility and equipment needs. These leases allow the Company to conserve cash by paying a monthly lease rental fee for the use of facilities and equipment rather than purchasing them. The Company’s leases typically have remaining terms ranging from one to eight years, some of which may include options to extend the leases for up to five years, and some of which may include options to terminate the leases within one year. Currently, all of the Company’s leases contain fixed payment terms. The Company may decide to cancel or terminate a lease before the end of its term, in which case the Company is typically liable to the lessor for the remaining lease payments under the term of the lease. Additionally, all of the Company’s month-to-month leases are cancelable by the Company or the lessor, at any time, and are not included in the Company’s right-of-use asset or lease liability. As of March 29, 2024, the Company had no leases with residual value guarantees. Typically, the Company has purchase options on the equipment underlying its long-term leases. The Company may exercise some of these purchase options when the need for equipment is on-going and the purchase option price is attractive. Nonperformance-related default covenants, cross-default provisions, subjective default provisions and material adverse change clauses contained in material lease agreements, if any, are also evaluated to determine whether those clauses affect lease classification in accordance with ASC Topic 842-10-25. Leases are accounted for as operating or financing leases, depending on the terms of the lease.

Financing Leases

The Company leases certain equipment under financing leases. The economic substance of the leases is a financing transaction for acquisition of equipment and leasehold improvements. Accordingly, the right-of-use assets for these leases are included in the balance sheets in equipment and leasehold improvements, net of accumulated depreciation, with a corresponding amount recorded in current portion of financing lease obligations or noncurrent portion of financing lease obligations, as appropriate. The financing lease assets are amortized over the life of the lease or, if shorter, the life of the leased asset, on a straight-line basis and included in depreciation expense. The interest associated with financing lease obligations is included in interest expense.

 

Right-of-use assets

Operating leases are included in right-of-use assets, and current portion of lease liability and noncurrent portion of lease liability, as appropriate. Right-of-use assets and lease liabilities are recognized based on the present value of the future minimum lease payments over the lease term at commencement date. As most of the Company’s leases do not provide an implicit rate to calculate present value, the Company determines this rate by estimating the Company’s incremental borrowing rate at the lease commencement date. The right-of-use asset also includes any lease payments made and initial direct costs incurred at lease commencement and excludes lease incentives. The Company’s lease terms may include options to extend or terminate the lease when it is reasonably certain that the Company will exercise that option. Lease expense for minimum lease payments is recognized on a straight-line basis over the lease term.

17

Table of Contents

WILLDAN GROUP, INC. AND SUBSIDIARIES
NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS – (Continued)
(Unaudited)

The following is a summary of the Company’s lease expense:

Three Months Ended

March 29,

March 31,

2024

    

2023

(in thousands)

Operating lease cost

$

1,527

$

1,493

Sublease Income

(14)

Finance lease cost:

Amortization of assets

355

311

Interest on lease liabilities

31

22

Total net lease cost

$

1,899

$

1,826

 

The following is a summary of lease information presented on the Company’s consolidated balance sheet:

March 29,

    

December 29,

2024

2023

(in thousands)

Operating leases:

Right-of-use assets

$

12,803

$

12,465

 

 

Lease liability

$

4,677

$

4,537

Lease liability, less current portion

 

9,948

 

9,758

Total lease liabilities

$

14,625

$

14,295

 

 

Finance leases (included in equipment and leasehold improvements, net):

Equipment and leasehold improvements, net

$

6,245

$

6,139

Accumulated depreciation

 

(4,099)

 

(3,837)

Total equipment and leasehold improvements, net

$

2,146

$

2,302

 

Finance lease obligations

$

1,111

$

1,186

Finance lease obligations, less current portion

1,112

1,184

Total finance lease obligations

$

2,223

$

2,370

Weighted average remaining lease term (in years):

Operating Leases

3.32

3.43

Finance Leases

2.25

2.31

Weighted average discount rate:

Operating Leases

6.67

%

6.09

%

Finance Leases

5.59

%

5.19

%

 

Rent expense was $1.7 million and $1.6 million for the three months ended March 29, 2024 and March 31, 2023, respectively.

18

Table of Contents

WILLDAN GROUP, INC. AND SUBSIDIARIES
NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS – (Continued)
(Unaudited)

The following is a summary of other information and supplemental cash flow information related to finance and operating leases:

Three Months Ended

March 29,

March 31,

2024

    

2023

(in thousands)

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

Operating cash flow from operating leases

$

1,569

$

1,570

Operating cash flow from finance leases

31

22

Financing cash flow from finance leases

345

303

Right-of-use assets obtained in exchange for lease liabilities:

Operating leases

$

1,627

$

2,120

 

The following is a summary of the maturities of lease liabilities as of March 29, 2024:

    

Operating

    

Finance

 

(in thousands)

Fiscal year:

Remainder of 2024

$

4,254

$

1,013

2025

 

5,069

 

782

2026

 

4,235

448

2027

1,935

112

2028

1,108

 

18

2029 and thereafter

 

94

 

Total lease payments

16,695

2,373

Less: Imputed interest

 

(2,070)

(150)

Total lease obligations

 

14,625

2,223

Less: Current obligations

 

4,677

1,111

Noncurrent lease obligations

$

9,948

$

1,112

 

The imputed interest for finance lease obligations represents the interest component of finance leases that will be recognized as interest expense in future periods. The financing component for operating lease obligations represents the effect of discounting the operating lease payments to their present value.

19

Table of Contents

WILLDAN GROUP, INC. AND SUBSIDIARIES
NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS – (Continued)
(Unaudited)

8. COMMITMENTS AND VARIABLE INTEREST ENTITIES

Employee Benefit Plans

The Company has a qualified profit sharing plan pursuant to Code Section 401(a) and qualified cash or deferred arrangement pursuant to Code Section 401(k) covering all employees. Employees may elect to contribute up to 50% of their compensation limited to the amount allowed by tax laws. Company contributions are made solely at the discretion of the Company’s board of directors.

The Company’s defined contribution plan (the “Plan”) covers employees who have completed three months of service and who have attained 21 years of age. The Company elects to make matching contributions equal to 50% of the participants’ contributions to the Plan, up to 6% of the individual participant’s compensation, and subject to a maximum of $3,000 per employee. Under the Plan, the Company may make discretionary contributions to employee accounts.

During the three months ended March 29, 2024 and March 31, 2023, the Company made matching contributions of $1.1 million and $1.0 million, respectively.

Variable Interest Entities

On March 4, 2016, the Company and the Company’s wholly-owned subsidiary, WES, acquired substantially all of the assets of Genesys and assumed certain specified liabilities of Genesys (collectively, the “Purchase”) pursuant to an Asset Purchase and Merger Agreement, dated as of February 26, 2016 (the “Agreement”), by and among Willdan Group, Inc., WES, WESGEN (as defined below), Genesys and Ronald W. Mineo (“Mineo”) and Robert J. Braun (“Braun” and, together with Mineo, the “Genesys Shareholders”). On March 5, 2016, pursuant to the terms of the Agreement, WESGEN, Inc., a non-affiliated corporation (“WESGEN”), merged (the “Merger” and, together with the Purchase, the “Acquisition”) with Genesys, with Genesys remaining as the surviving corporation. Genesys was acquired to strengthen the Company’s power engineering capability in the northeastern U.S., and also to increase client exposure and experience with universities.

Genesys continues to be a professional corporation organized under the laws of the State of New York, wholly-owned by one or more licensed engineers. Pursuant to New York law, the Company does not own capital stock of Genesys. The Company has entered into an agreement with the Shareholder of Genesys pursuant to which the Shareholder will be prohibited from selling, transferring or encumbering the Shareholder’s ownership interest in Genesys without the Company’s consent. Notwithstanding the Company’s rights regarding the transfer of Genesys’s stock, the Company does not have control over the professional decision making of Genesys’s engineering services. The Company has entered into an administrative services agreement with Genesys pursuant to which WES will provide Genesys with ongoing administrative, operational and other non-professional support services. Genesys pays WES a service fee, which consists of all of the costs incurred by WES to provide the administrative services to Genesys plus ten percent of such costs, as well as any other costs that relate to professional service supplies and personnel costs. As a result of the administrative services agreement, the Company absorbs the expected losses of Genesys through its deferral of Genesys’s service fees owed to WES.

The Company manages Genesys and has the power to direct the activities that most significantly impact Genesys’s performance, in addition to being obligated to absorb expected losses from Genesys. Accordingly, the Company is the primary beneficiary of Genesys and consolidates Genesys as a VIE. In addition, the Company concluded there is no noncontrolling interest related to the consolidation of Genesys because the Company determined that (i) the shareholder of Genesys does not have more than a nominal amount of equity investment at risk, (ii) WES absorbs the expected losses of Genesys through its deferral of Genesys’s service fees owed to WES and the Company has, since entering into the administrative services agreement, had to continuously defer service fees for Genesys, and (iii) the Company believes Genesys will continue to have a shortfall on payment of its service fees for the foreseeable future, leaving no expected residual returns for the shareholder. As of March 29, 2024, the Company had one VIE — Genesys.

20

Table of Contents

WILLDAN GROUP, INC. AND SUBSIDIARIES
NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS – (Continued)
(Unaudited)

9. SEGMENT AND GEOGRAPHICAL INFORMATION

Segment Information

The Company’s two segments are Energy, and Engineering and Consulting, and the Company’s chief operating decision maker, which continues to be its chief executive officer, receives and reviews financial information in this format.

There were no intersegment sales during the three months ended March 29, 2024 and March 31, 2023. The Company’s chief operating decision maker evaluates the performance of each segment based upon income or loss from operations before income taxes. Certain segment asset information including expenditures for long-lived assets has not been presented as it is not reported to or reviewed by the chief operating decision maker. In addition, enterprise-wide service line contract revenue is not included as it is impracticable to report this information for each group of similar services.

Financial information with respect to the reportable segments and reconciliation to the amounts reported in the Company’s Condensed Consolidated Financial Statements is as follows:

Engineering

Unallocated

Consolidated

    

Energy

    

& Consulting

    

Corporate

    

Intersegment

    

Total

(in thousands)

Fiscal Three Months Ended March 29, 2024

Contract revenue

$

100,746

$

21,743

$

-

$

-

$

122,489

Depreciation and amortization

3,236

356

-

-

3,592

Interest expense, net

1

-

2,136

-

2,137

Segment profit (loss) before income tax expense

4,311

2,344

(2,727)

-

3,928

Income tax expense (benefit)

1,083

588

(685)

-

986

Net income (loss)

3,229

1,756

(2,043)

-

2,942

Segment assets (1)

318,808

26,613

85,609

(23,130)

407,900

Fiscal Three Months Ended March 31, 2023

Contract revenue

$

83,285

$

19,318

$

-

$

-

$

102,603

Depreciation and amortization

3,924

276

-

-

4,200

Interest expense, net

2

-

2,464

-

2,466

Segment profit (loss) before income tax expense

2,771

2,587

(3,670)

-

1,688

Income tax expense (benefit)

1,241

1,158

(1,643)

-

756

Net income (loss)

1,530

1,428

(2,026)

-

932

Segment assets (1)

323,578

23,587

69,332

(23,130)

393,367

(1)Segment assets are presented net of intercompany receivables.

 

21

Table of Contents

WILLDAN GROUP, INC. AND SUBSIDIARIES
NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS – (Continued)
(Unaudited)

The following tables provide information about disaggregated revenue by contract type, client type and geographical region:

    

Three months ended March 29, 2024

    

Energy

    

Engineering and
Consulting

    

Total

    

(in thousands)

Contract Type

Time-and-materials

$

8,537

$

16,399

$

24,936

Unit-based

46,957

4,511

51,468

Fixed price

45,252

833

46,085

Total (1)

$

100,746

$

21,743

$

122,489

Client Type

Commercial

$

7,203

$

1,580

$

8,783

Government

35,820

20,098

55,918

Utilities (2)

57,723

65

57,788

Total (1)

$

100,746

$

21,743

$

122,489

Geography (3)

Domestic

$

100,746

$

21,743

$

122,489

    

Three months ended March 31, 2023

    

Energy

    

Engineering and
Consulting

    

Total

    

(in thousands)

Contract Type

Time-and-materials

$

7,709

$

14,554

$

22,263

Unit-based

44,927

3,616

48,543

Fixed price

30,649

1,148

31,797

Total (1)

$

83,285

$

19,318

$

102,603

Client Type

Commercial

$

6,719

$

1,164

$

7,883

Government

26,075

18,095

44,170

Utilities (2)

50,491

59

50,550

Total (1)

$

83,285

$

19,318

$

102,603

Geography (3)

Domestic

$

83,285

$

19,318

$

102,603

(1)Amounts may not add to the totals due to rounding.
(2)Includes the portion of revenue related to small business programs paid by the end user/customer.
(3)Revenue from the Company’s foreign operations were not material for the three months ended March 29, 2024 and March 31, 2023.

 

Geographical Information

Substantially all of the Company’s consolidated revenue was derived from its operations in the U.S. The Company operates through a network of offices spread across 22 U.S. states, the District of Columbia, the Commonwealth of Puerto Rico, and Canada. Revenues from the Company’s Puerto Rican and Canadian operations were not material for the three months ended March 29, 2024 nor the three months ended March 31, 2023.

22

Table of Contents

WILLDAN GROUP, INC. AND SUBSIDIARIES
NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS – (Continued)
(Unaudited)

Customer Concentration

For the three months ended March 29, 2024 and March 31, 2023, the Company’s top 10 customers accounted for 49.2%, and 52.2%, respectively, of the Company’s consolidated contract revenue.

For the three months ended March 29, 2024, the Company had no individual customers that accounted for more than 10% of its consolidated contract revenue. For the three months ended March 31, 2023, the Company had one customer, the Los Angeles Department of Water and Power (“LADWP”), that accounted for 11.1% of its consolidated contract revenues.

On a segment basis, the Company had individual customers that accounted for more than 10% of its segment contract revenues. For the three months ended March 29, 2024, the Company derived 10.7% of its Energy segment revenues from one customer, LADWP, and no single customer accounted for 10% or more of the Company’s Engineering and Consulting segment revenues. For the three months ended March 31, 2023, the Company derived 13.7% of its Energy segment revenues from one customer, LADWP, and no single customer accounted for 10% or more of its Engineering and Consulting segment revenues.

On a geographical basis, the Company’s largest clients are based in California and New York. For the three months ended March 29, 2024 and March 31, 2023, services provided to clients in California accounted for 43.5% and 42.4%, respectively, of the Company’s consolidated contract revenue, and services provided to clients in New York accounted for 27.1% and 24.5%, respectively, of the Company’s consolidated contract revenue. 

23

Table of Contents

WILLDAN GROUP, INC. AND SUBSIDIARIES
NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS – (Continued)
(Unaudited)

10. INCOME TAXES

Income taxes are accounted for under the asset and liability method. Deferred tax assets and liabilities are recognized for the future tax consequences of temporary differences between the financial reporting basis and tax basis of the Company’s assets and liabilities, subject to a judgmental assessment of the recoverability of deferred tax assets. Deferred tax assets and liabilities are measured using enacted tax rates expected to apply to taxable income in the years in which those temporary differences are expected to be recovered or settled. The effect on deferred tax assets and liabilities of a change in tax rates is recognized in income in the period that includes the enactment date. A valuation allowance is recorded when it is more likely than not that some of the deferred tax assets may not be realized. Significant judgment is applied when assessing the need for valuation allowances and includes the evaluation of historical income (loss) adjusted for the effects of non-recurring items and the impact of recent business combinations. Areas of estimation include the Company’s consideration of future taxable income which is driven by verifiable signed contracts and ongoing prudent and feasible tax planning strategies. Should a change in circumstances lead to a change in judgment about the utilization of deferred tax assets in future years, the Company would adjust the related valuation allowances in the period that the change in circumstances occurs, along with a corresponding increase or charge to income.

At the end of fiscal year 2023, the Company’s total valuation allowance was $1.2 million, remaining unchanged from the end of fiscal year 2022. As of March 29, 2024, the Company assessed all available positive and negative evidence available to determine whether, based on the weight of that evidence, there was a change in judgment related to the utilization of deferred tax assets in future years. The Company concluded that as of March 29, 2024, the valuation allowance for the Company’s deferred tax assets was appropriate in accordance with ASC 740. Consequently, there was no change to the valuation allowance during the three months ended March 29, 2024.

For acquired business entities, if the Company identifies changes to acquired deferred tax asset valuation allowances or liabilities related to uncertain tax positions during the measurement period and they relate to new information obtained about facts and circumstances that existed as of the acquisition date, those changes are considered a measurement period adjustment, and the Company records the offset to goodwill. The Company records all other changes to deferred tax asset valuation allowances and liabilities related to uncertain tax positions in current period income tax expense.

The Company recognizes the tax benefit from uncertain tax positions if it is more likely than not that the tax positions will be sustained on examination by the tax authorities, based on the technical merits of the position. The tax benefit is measured based on the largest benefit that has a greater than 50% likelihood of being realized upon ultimate settlement. The Company recognizes interest and penalties related to unrecognized tax benefits in income tax expense. During the three months ended March 29, 2024, and the three months ended March 31, 2023, the Company did not record a liability for uncertain tax positions.

Based on the Company’s estimates and determination of an effective tax rate for the year, the Company recorded an income tax expense of $1.0 million for the three months ended March 29, 2024, compared to an income tax expense of $0.8 million for the three months ended March 31, 2023. During the three months ended March 29, 2024, the difference between the effective tax rate and the federal statutory rate was primarily attributable to state taxes, non-deductible stock compensation, nondeductible executive compensation, research and development tax credits, and the commercial building energy efficiency deduction. During the three months ended March 31, 2023, the difference between the effective tax rate and the federal statutory rate was primarily attributable to state taxes, non-deductible stock compensation, nondeductible executive compensation, research and development tax credits, and the commercial building energy efficiency deduction.

24

Table of Contents

WILLDAN GROUP, INC. AND SUBSIDIARIES
NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS – (Continued)
(Unaudited)

11. EARNINGS PER SHARE (“EPS”)

Basic EPS is computed by dividing net income available to common stockholders by the weighted-average number of common shares outstanding. Diluted EPS is computed by dividing net income by the weighted-average number of common shares outstanding and dilutive potential common shares for the period. Potential common shares include the weighted-average dilutive effects of outstanding stock options and restricted stock awards using the treasury stock method.

The following table sets forth the number of weighted-average common shares outstanding used to compute basic and diluted EPS:

Three months ended

March 29,

March 31,

    

2024

    

2023

(in thousands, except per share amounts)

Net income (loss)

$

2,942

$

932

Weighted-average common shares outstanding

 

13,605

 

13,266

Effect of dilutive stock options and restricted stock awards

 

305

 

204

Weighted-average common shares outstanding-diluted

 

13,910

 

13,470

Earnings (Loss) per share:

Basic

$

0.22

$

0.07

Diluted

$

0.21

$

0.07

 

For the three months ended March 29, 2024 and March 31, 2023, the Company excluded 335,000 and 397,000 common shares subject to outstanding equity awards, respectively, from the calculation of diluted shares because their impact would have been anti-dilutive.

25

Table of Contents

WILLDAN GROUP, INC. AND SUBSIDIARIES
NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS – (Continued)
(Unaudited)

12. CONTINGENCIES

Claims and Lawsuits

The Company is subject to claims and lawsuits from time to time, including those alleging professional errors or omissions that arise in the ordinary course of business against firms that operate in the engineering and consulting professions. The Company carries professional liability insurance, subject to certain deductibles and policy limits, for such claims as they arise and may from time to time establish reserves for litigation that is considered probable of a loss.

In accordance with accounting standards regarding loss contingencies, the Company accrues an undiscounted liability for those contingencies where the incurrence of a loss is probable and the amount can be reasonably estimated, and discloses the amount accrued and an estimate of any reasonably possible loss in excess of the amount accrued, if such disclosure is necessary for the Company’s financial statements not to be misleading. The Company does not accrue liabilities when the likelihood that the liability has been incurred is probable but the amount cannot be reasonably estimated, or when the liability is believed to be only reasonably possible or remote.

Because litigation outcomes are inherently unpredictable, the Company’s evaluation of legal proceedings often involves a series of complex assessments by management about future events and can rely heavily on estimates and assumptions. If the assessments indicate that loss contingencies that could be material to any one of the Company’s financial statements are not probable, but are reasonably possible, or are probable, but cannot be estimated, then the Company will disclose the nature of the loss contingencies, together with an estimate of the possible loss or a statement that such loss is not reasonably estimable. While the consequences of certain unresolved proceedings are not presently determinable, and a reasonable estimate of the probable and reasonably possible loss or range of loss in excess of amounts accrued for such proceedings cannot be made, an adverse outcome from such proceedings could have a material adverse effect on the Company’s earnings in any given reporting period. However, in the opinion of the Company’s management, after consulting with legal counsel, and taking into account insurance coverage, the ultimate liability related to current outstanding claims and lawsuits is not expected to have a material adverse effect on the Company’s financial statements.

26

Table of Contents

WILLDAN GROUP, INC. AND SUBSIDIARIES
NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS – (Continued)
(Unaudited)

13. SUBSEQUENT EVENTS

In accordance with ASC Topic 855, Subsequent Events, the Company evaluates subsequent events up until the date the Condensed Consolidated Financial Statements are issued. As of May 2, 2024, there were no subsequent events required to be reported.

 

27

ITEM 2. MANAGEMENT’S DISCUSSION AND ANALYSIS OF FINANCIAL CONDITION AND RESULTS OF OPERATIONS

Our Company

We are a provider of professional, technical and consulting services to utilities, private industry, and public agencies at all levels of government. As resource and infrastructure needs undergo continuous change, we help organizations and their communities evolve and thrive by providing a wide range of technical services for energy solutions, greenhouse gas reduction, and government infrastructure. Through engineering, program management, policy advisory, and software and data management, we plan, design and deliver trusted, comprehensive, innovative, and proven solutions to improve efficiency, resiliency, and sustainability in energy and infrastructure to our clients.

Our broad portfolio of services operates within two financial reporting segments: (1) Energy and (2) Engineering and Consulting. The interfaces and synergies between these segments are important elements of our strategy to design and deliver trusted, comprehensive, innovative, and proven solutions and services for our customers.

Our Energy segment provides specialized, innovative, comprehensive energy solutions to businesses, utilities, state agencies, municipalities, and non-profit organizations in the U.S. Our experienced engineers, consultants, and staff help our clients realize cost and energy savings by tailoring efficient and cost-effective solutions to assist in optimizing energy spend. Our energy efficiency services include comprehensive audit and surveys, program design, master planning, demand reduction, grid optimization, benchmarking analyses, design engineering, construction management, performance contracting, installation, alternative financing, measurement and verification services, and advances in software and data analytics for long-term planning.

Our Engineering and Consulting segment provides civil engineering-related construction management, building and safety, city engineering office management, city planning, civil design, geotechnical, material testing and other engineering consulting services to our clients. Our engineering services include traffic, bridges, rail, port, water, mining and other civil engineering projects. We also provide economic and financial consulting to public agencies. Lastly, we supplement the engineering services that we offer our clients by offering expertise and support for the various financing techniques public agencies utilize to finance their operations and infrastructure. We also support the mandated reporting and other requirements associated with these financings. We provide financial advisory services for municipal securities but do not provide underwriting services.

28

Results of Operations

First Quarter Overview

The following table sets forth, for the periods indicated, certain information derived from our consolidated statements of comprehensive income(1):

Three Months Ended

March 29,

March 31,

     

2024

2023

$ Change

% Change

(in thousands, except percentages)

Contract revenue

$

122,489

     

100.0

%

     

$

102,603

     

100.0

%

     

$

19,886

     

19.4

%

Direct costs of contract revenue:

Salaries and wages

21,512

17.6

20,410

19.9

1,102

5.4

Subcontractor services and other direct costs

53,559

43.7

40,912

39.9

12,647

30.9

Total direct costs of contract revenue

75,071

61.3

61,322

59.8

13,749

22.4

Gross profit

47,418

38.7

41,281

40.2

6,137

14.9

General and administrative expenses:

Salaries and wages, payroll taxes and employee benefits

26,509

21.6

22,385

21.8

4,124

18.4

Facilities and facilities related

2,445

2.0

2,278

2.2

167

7.3

Stock-based compensation

1,390

1.1

1,533

1.5

(143)

(9.3)

Depreciation and amortization

3,592

2.9

4,200

4.1

(608)

(14.5)

Other

8,121

6.6

6,871

6.7

1,250

18.2

Total general and administrative expenses

42,057

34.3

37,267

36.3

4,790

12.9

Income (loss) from operations

5,361

4.4

4,014

3.9

1,347

33.6

Other income (expense):

Interest expense

(2,137)

(1.7)

(2,466)

(2.4)

329

(13.3)

Other, net

704

0.6

140

0.1

564

402.9

Total other income (expense)

(1,433)

(1.2)

(2,326)

(2.3)

893

(38.4)

Income (Loss) before income tax expense

3,928

3.2

1,688

1.6

2,240

132.7

Income tax expense (benefit)

986

0.8

756

0.7

230

30.4

Net income (loss)

$

2,942

2.4

$

932

0.9

$

2,010

215.7

(1)Percentages are expressed as a percentage of contract revenue and may not total due to rounding.

29

The following tables provides information about disaggregated revenue of our two segments, Energy and Engineering and Consulting, by contract type, client type and geographical region:

    

Three months ended March 29, 2024

    

Energy

    

Engineering and
Consulting

    

Total

    

(in thousands)

Contract Type

Time-and-materials

$

8,537

$

16,399

$

24,936

Unit-based

46,957

4,511

51,468

Fixed price

45,252

833

46,085

Total (1)

$

100,746

$

21,743

$

122,489

Client Type

Commercial

$

7,203

$

1,580

$

8,783

Government

35,820

20,098

55,918

Utilities (2)

57,723

65

57,788

Total (1)

$

100,746

$

21,743

$

122,489

Geography (3)

Domestic

$

100,746

$

21,743

$

122,489

    

Three months ended March 31, 2023

    

Energy

    

Engineering and
Consulting

    

Total

    

(in thousands)

Contract Type

Time-and-materials

$

7,709

$

14,554

$

22,263

Unit-based

44,927

3,616

48,543

Fixed price

30,649

1,148

31,797

Total (1)

$

83,285

$

19,318

$

102,603

Client Type

Commercial

$

6,719

$

1,164

$

7,883

Government

26,075

18,095

44,170

Utilities (2)

50,491

59

50,550

Total (1)

$

83,285

$

19,318

$

102,603

Geography (3)

Domestic

$

83,285

$

19,318

$

102,603

(1)Amounts may not add to the totals due to rounding.
(2)Includes the portion of revenue related to small business programs paid by the end user/customer.
(3)Revenue from our foreign operations were immaterial for the three months ended March 29, 2024 and March 31, 2023.

Three Months Ended March 29, 2024 Compared to Three Months Ended March 31, 2023

Contract revenue. Consolidated contract revenue increased $19.9 million, or 19.4%, in the three months ended March 29, 2024, compared to the three months ended March 31, 2023, due to incremental revenues in both our Energy segment and our Engineering and Consulting segment.

Contract revenue in our Energy segment increased $17.5 million, or 21.0%, in the three months ended March 29, 2024, compared to the three months ended March 31, 2023, primarily as a result of increases in construction management revenues and utility program revenues.

Contract revenue in our Engineering and Consulting segment increased $2.4 million, or 12.6%, in the three months ended March 29, 2024, compared to the three months ended March 31, 2023, primarily due to increased demand for services provided to our clients.

30

Direct costs of contract revenue. Direct costs of consolidated contract revenue increased $13.7 million, or 22.4%, for the three months ended March 29, 2024, compared to the three months ended March 31, 2023, primarily as a result of the increase, and change of mix, in contract revenues as described above. As a percentage of contract revenue, direct salaries and wages decreased to 17.6% in the three months ended March 29, 2024 from 19.9% in the three months ended March 31, 2023, while subcontractor services and other direct costs increased to 43.7% in the three months ended March 29, 2024 from 39.9% in the three months ended March 31, 2023.

Direct costs of contract revenue in our Energy segment increased $12.9 million, or 24.7%, for the three months ended March 29, 2024, compared to the three months ended March 31, 2023. Direct costs of contract revenue for the Engineering and Consulting segment increased $0.8 million, or 9.7%, in the three months ended March 29, 2024, compared to the three months ended March 31, 2023.

Subcontractor services and other direct costs increased by $12.6 million, or 30.9%, in the three months ended March 29, 2024, compared to the three months ended March 31, 2023, primarily due to the increase in construction management revenues, which utilize a higher percentage of material cost and installation subcontracting. Salaries and wages increased by $1.1 million, or 5.4%, in the three months ended March 29, 2024, compared to the three months ended March 31, 2023, primarily as a result of the increases in contract revenue as described above.

Gross Profit. Gross profit increased 14.9% to $47.4 million, or 38.7% gross margin, for the three months ended March 29, 2024, compared to gross profit of $41.3 million, or 40.2% gross margin, for the three months ended March 31, 2023. The decrease in our gross margin was primarily driven by changes in the mix of revenues as described above.

General and administrative expenses. General and administrative (“G&A”) expenses increased $4.8 million, or 12.9%, in the three months ended March 29, 2024, compared to the three months ended March 31, 2023. G&A expenses consisted of an increase of $3.2 million in the Energy segment combined with an increase of $1.8 million in the Engineering and Consulting segment, partially offset by a decrease of $0.2 million in unallocated corporate expenses.

Within G&A expenses, the increase of $4.1 million in salaries and wages, payroll taxes and employee benefits, combined with the increase of $1.3 million in other general and administrative expenses was partially offset by a decrease of $0.6 million in depreciation and amortization. The increase in salaries and wages, payroll taxes and employee benefits was primarily due to an increase in incentive compensation, consistent with the improvement in operating profit, and higher fringe benefit costs. The increase in other general and administrative expenses was primarily due to increased professional service fees and computer-related expenses. The decrease in depreciation and amortization was primarily related to lower amortization of intangible assets from prior acquisitions.

Income (loss) from operations. Operating income increased 33.6% to $5.4 million for the three months ended March 29, 2024, compared to an operating income of $4.0 million for the three months ended March 31, 2023, as a result of the factors noted above.

Total other expense, net. Total other expense, net, decreased $0.9 million, or 38.4%, for the three months ended March 29, 2024, compared to the three months ended March 31, 2023, primarily due to increased interest income related to our higher cash balances, combined with lower interest expense resulting from the reduced interest rate margin under our credit facilities.

Income tax expense (benefit). We recorded an income tax expense of $1.0 million for the three months ended March 29, 2024, an effective tax rate of 25.1% on income before income tax expense, compared to an income tax expense of $0.8 million for the three months ended March 31, 2023, an effective tax rate of 44.8% on income before tax expense. The reduction in the effective tax rate resulted from increases in discrete items related to stock compensation deductions.

31

Net income (loss). Our net income was $2.9 million for the three months ended March 29, 2024, as compared to a net income of $0.9 million for the three months ended March 31, 2023. The increase in net income was primarily attributable to the increase in income from operations combined with the decrease in total other expense, net and the lower effective tax rate.

Liquidity and Capital Resources

Three Months Ended

March 29,

March 31,

2024

2023

(in thousands)

Net cash provided by (used in):

    

Operating activities

    

$

26,949

    

$

17,292

Investing activities

(1,952)

(3,475)

Financing activities

(1,469)

(15,449)

Net increase (decrease) in cash and cash equivalents

$

23,528

$

(1,632)

Sources of Cash

Our primary sources of liquidity for the next 12 months and beyond are cash generated from operations, cash and cash equivalents, and available borrowings under our revolving credit facility under the Credit Agreement (the “Revolving Credit Facility”). We believe that our cash and cash equivalents, cash generated by operating activities, and available borrowings under our Revolving Credit Facility will be sufficient to finance our operating activities for at least the next 12 months.

As of March 29, 2024, we had a fully drawn $100 million term loan with $96.3 million outstanding (the “Term Loan”), and a $50.0 million Revolving Credit Facility with no borrowed amounts and $1.6 million in letters of credit issued, each scheduled to mature on September 29, 2026. In addition, as of March 29, 2024, we had $46.9 million of unrestricted cash and cash equivalents.

As of March 29, 2024, unhedged borrowings under our Credit Facilities, exclusive of the effects of upfront fees, undrawn fees and issuance cost amortization, bore interest at an annual rate of 7.7%. See Part I, Item 1, Note 6, “Debt Obligations”, of the Notes to Condensed Consolidated Financial Statements included in this Quarterly Report on Form 10-Q, and Part II, Item 8, Note 6, “Debt Obligations”, of the Notes to Consolidated Financial Statements included in our Annual Report on Form 10-K for the fiscal year ended December 29, 2023, for information regarding our indebtedness, including information about borrowings and repayments, principal repayment terms, interest rates, covenants, and other key terms of our outstanding indebtedness.

Cash Flows from Operating Activities

Cash flows provided by operating activities were $26.9 million for the three months ended March 29, 2024, as compared to cash flows provided by operating activities of $17.3 million for the three months ended March 31, 2023. Cash flows from operating activities primarily consists of net income, adjusted for non-cash charges, such as depreciation and amortization and stock-based compensation, plus or minus changes in current operating assets and liabilities. Cash flows provided by operating activities for the three months ended March 29, 2024, resulted primarily from the increase in earnings and lower working capital requirements due to a reduction in revenues from the three months ended December 29, 2023 to the three months ended March 29, 2024. Cash flows provided by operating activities for the three months ended March 31, 2023, resulted primarily from the changing mix of revenues, combined with lower working capital requirements due to a reduction in revenues from the three months ended December 30, 2022 to the three months ended March 31, 2023.

32

Cash Flows from Investing Activities

Cash flows used in investing activities were $2.0 million for the three months ended March 29, 2024 as compared to cash flows used in investing activities of $3.5 million for the three months ended March 31, 2023. Cash flows used in investing activities for the three months ended March 29, 2024 and for the three months ended March 31, 2023, were primarily due to cash paid for the development of software and the purchase of computers and equipment.

Cash Flows from Financing Activities

Cash flows used in financing activities were $1.5 million for the three months ended March 29, 2024, as compared to cash flows used in financing activities of $15.5 million for the three months ended March 31, 2023. Cash flows used in financing activities for the three months ended March 29, 2024 were primarily attributable to the repayments of $1.9 million under our Term Loan, and $0.8 million cash used to pay withholding taxes on stock grants, partially offset by $1.4 million of proceeds from sales of common stock under employee stock purchase plan. Cash flows used in financing activities for the three months ended March 31, 2023 were primarily attributable to the disbursement of the $10.7 million in restricted cash for utility rebate incentives and repayments of $5.3 million under our term loan facility and revolving line of credit.

Under certain utility contracts, we periodically receive cash deposits to be held in trust for the payment of energy incentive rebates to be sent directly to the utility’s end-customer on behalf of the utility. We act solely as the utility’s agent to distribute these funds to the end-customer and, accordingly, we classify these contractually restricted funds as restricted cash. Because these funds are held in trust for pass through to the utility’s customers and have no impact on our working capital or operating cash flows, these cash receipts are presented in the consolidated statement of cash flows as financing cash inflows, “Receipt of restricted cash”, with the subsequent payments classified as financing cash outflows, “Payment of restricted cash.”

Off-Balance Sheet Arrangements

We do not have any off-balance sheet financing arrangements or liabilities. In addition, our policy is not to enter into futures or forward contracts. Finally, we do not have any majority-owned subsidiaries or any interests in, or relationships with, any special-purpose entities that are not included in the consolidated financial statements. We have, however, an administrative services agreement with Genesys in which we provide Genesys with ongoing administrative, operational and other non-professional support services. We manage Genesys and have the power to direct the activities that most significantly impact Genesys’ performance, in addition to being obligated to absorb expected losses from Genesys. Accordingly, we are the primary beneficiary of Genesys and consolidate Genesys as a variable interest entity.

33

Short and Long-term Uses of Cash

General

Our principal uses of cash are to fund operating expenses, support working capital requirements, finance capital expenditures, and pay down outstanding debt. From time to time, we also use cash to help fund business acquisitions. Our cash and cash equivalents are impacted by the timing of when we invoice and are paid by our customers for services rendered and when we pay expenses as reflected in the change in our outstanding accounts payable and accrued expenses.

Contractual Obligations

The following table sets forth our known contractual obligations as of March 29, 2024:

    

    

Less than

    

    

    

More than

 

Contractual Obligations

Total

1 Year

1 - 3 Years

3 - 5 Years

5 Years

 

(in thousands)

Debt (1)

$

95,495

$

8,924

$

86,571

$

$

Interest payments on debt outstanding (2)

16,238

6,998

9,240

Operating leases

 

14,625

 

4,677

 

7,585

 

2,279

 

84

Finance leases

 

2,223

 

1,111

 

1,015

 

97

 

Total contractual cash obligations

$

128,581

$

21,710

$

104,411

$

2,376

$

84

(1)Debt includes $96.3 million outstanding on our Term Loan, net of issuance costs, and no borrowed amounts outstanding on our Revolving Credit Facility as of March 29, 2024. We have assumed no future borrowings or repayments (other than at maturity) for purposes of this table. Our Term Loan is scheduled to mature on September 29, 2026.
(2)Borrowings under our Term Loan and Revolving Credit Facility bear interest at a variable rate. Future interest payments on our Credit Facility are estimated using floating rates in effect as of March 29, 2024.

Outstanding Indebtedness

See Part I, Item 1, Note 6, “Debt Obligations”, of the Notes to Condensed Consolidated Financial Statements included in this Quarterly Report on Form 10-Q, and Part II, Item 8, Note 6, “Debt Obligations”, of the Notes to Consolidated Financial Statements included in our Annual Report on Form 10-K for the fiscal year ended December 29, 2023, for information regarding our indebtedness, including information about new borrowings and repayments, principal repayment terms, interest rates, covenants, and other key terms of our outstanding indebtedness.

Interest Rate Swap

From time to time, we enter into interest rate swap agreements to moderate our exposure to fluctuations in interest rates underlying our variable rate debt. For more information, see Part I, Item 3, “Quantitative and Qualitative Disclosures About Market Risk”, and Note 5, “Derivative Financial Instruments”, to the Notes to Condensed Consolidated Financial Statements included in this Quarterly Report on Form 10-Q.

Impact of Inflation

Due to the average duration of our projects and our ability to negotiate prices as contracts end and new contracts begin, historically, our operations have not been materially impacted by inflation.

While immaterial to our results of operations and financial condition, we have experienced higher cost of materials and delays in our supply chain for equipment. The prices of finished products from manufacturers are subject to fluctuation and increases. It is difficult to accurately measure the impact of inflation, tariffs, price escalation, raw material costs, and other factors that impact the cost of finished goods due to the imprecise nature of the estimates required.

34

We are often able to mitigate the impact of future price increases by entering into fixed price purchase orders for materials and equipment, and subcontracts on our projects, as well as, when appropriate, including cost escalation factors into our proposals. Despite our best mitigation efforts, significant price increases in equipment and disruptions to our supply chain could materially impact our results of operations and financial condition. In addition, inflationary pressures, including expectations of future inflation, may impact the customers of our utility clients, which may lead to delayed or deferred decisions regarding expenditures to improve energy efficiency, and therefore potentially impact our future revenues.

Components of Revenue and Expense

Contract Revenue

We generally provide our services under contracts, purchase orders or retainer letters. The agreements we enter into with our clients typically incorporate one of three principal types of pricing provisions: time-and-materials, unit-based, and fixed price. Revenue on our time-and-materials and unit-based contracts are recognized as the work is performed in accordance with specific terms of the contract. As of March 29, 2024, 20% of our contracts are time-and-materials contracts, 42% are unit-based contracts, and 38% are fixed price contracts, compared to 22% are time-and-materials contracts, 47% are unit-based contracts, and 31% are fixed price contracts, as of March 31, 2023.

Some of these contracts include maximum contract prices, but contract maximums are often adjusted to reflect the level of effort to achieve client objectives and thus the majority of these contracts are not expected to exceed the maximum. Contract revenue on our fixed price contracts is determined on the percentage of completion method based generally on the ratio of direct costs incurred to date to estimated total direct costs at completion. Many of our fixed price contracts involve a high degree of subcontracted fixed price effort and are relatively short in duration, thereby lowering the risks of not properly estimating the percent complete.

Adjustments to contract cost estimates are made in the periods in which the facts requiring such revisions become known. When the revised estimate indicates a loss, such loss is recognized in the current period in its entirety. Claims and change orders that have not been finalized are evaluated to determine whether or not a change has occurred in the enforceable rights and obligations of the original contract. If these non-finalized changes qualify as a contract modification, a determination is made whether to account for the change in contract value as a modification to the existing contract, or a separate contract and revenue under the claims or change orders is recognized accordingly. Costs related to un-priced change orders are expensed when incurred, and recognition of the related revenue is based on the assessment above of whether or not a contract modification has occurred. Estimated profit for un-priced change orders is recognized only if collection is probable.

Our contracts come up for renewal periodically and at the time of renewal may be subject to renegotiation, which could impact the profitability on that contract. In addition, during the term of a contract, public agencies may request additional or revised services which may impact the economics of the transaction. Most of our contracts permit our clients, with prior notice, to terminate the contracts at any time without cause. While we have a large volume of contracts, the renewal, termination or modification of a contract, in particular contracts with Consolidated Edison, the Dormitory Authority-State of New York, the New York City Housing Authority, and utility programs associated with Los Angeles Department of Water and Power and Duke Energy Corp., may have a material effect on our consolidated operations.

Some of our contracts include certain performance guarantees, such as a guaranteed energy saving quantity. Such guarantees are generally measured upon completion of a project. In the event that the measured performance level is less than the guaranteed level, any resulting financial penalty, including any additional work that may be required to fulfill the guarantee, is estimated and charged to direct expenses in the current period. We have not experienced any significant costs under such guarantees.

35

Direct Costs of Contract Revenue

Direct costs of contract revenue consist primarily of that portion of salaries and wages that have been incurred in connection with revenue producing projects. Direct costs of contract revenue also include material costs, subcontractor services, equipment and other expenses that are incurred in connection with revenue producing projects. Direct costs of contract revenue exclude that portion of salaries and wages related to marketing efforts, vacations, holidays and other time not spent directly generating revenue under existing contracts. Such costs are included in general and administrative expenses. Additionally, payroll taxes, bonuses and employee benefit costs for all of our personnel are included in general and administrative expenses since no allocation of these costs is made to direct costs of contract revenue.

Other companies may classify as direct costs of contract revenue some of the costs that we classify as general and administrative costs. We expense direct costs of contract revenue when incurred.

General and Administrative Expenses

G&A expenses include the costs of the marketing and support staff, other marketing expenses, management and administrative personnel costs, payroll taxes, bonuses and employee benefits for all of our employees and the portion of salaries and wages not allocated to direct costs of contract revenue for those employees who provide our services. G&A expenses also include facility costs, depreciation and amortization, professional services, legal and accounting fees and administrative operating costs. Within G&A expenses, “Other” includes expenses such as professional services, legal and accounting, computer costs, travel and entertainment, marketing costs and acquisition costs. We expense general and administrative costs when incurred.

Critical Accounting Policies

We have prepared the accompanying unaudited Condensed Consolidated Financial Statements in accordance with generally accepted accounting principles in the U.S. (“GAAP”). To prepare these financial statements in conformity with GAAP, we must make estimates and assumptions that affect the reported amounts of assets and liabilities at the date of the financial statements and the reported amount of revenue and expenses in the reporting period. Our actual results may differ from these estimates. We have adopted accounting policies and practices that are generally accepted in the industry in which we operate.

There have been no material changes in our critical accounting policies and estimates from those disclosed in our Annual Report on Form 10-K for our fiscal year ended December 29, 2023. Please refer to Part II, Item 7 of our Annual Report on Form 10-K for the fiscal year ended December 29, 2023 for a discussion of our critical accounting policies and estimates.

Recent Accounting Standards

For a description of recently issued and adopted accounting pronouncements, including adoption dates and expected effects on our results of operations and financial condition, see Part I, Item 1, Note 2, “Recent Accounting Pronouncements”, of the Notes to Condensed Consolidated Financial Statements included in this Quarterly Report on Form 10-Q.

36

ITEM 3. Quantitative and Qualitative Disclosures About Market Risk

Interest Rate Risk

Market risk is the risk of loss to future earnings, to fair values or to future cash flows that may result from changes in the price of a financial instrument. The value of a financial instrument may change as a result of changes in interest rates, exchange rates, commodity prices, equity prices and other market changes. Market risk is attributed to all market risk sensitive financial instruments, including long-term debt.

As of March 29, 2024, we had cash and cash equivalents of $46.9 million. This amount represents cash on hand in business checking accounts with BMO Bank, N.A. We do not engage in trading activities and do not participate in foreign currency transactions.

We are subject to interest rate risk in connection with our Term Loan and borrowings, if any, under our Revolving Credit Facility, each of which bears interest at variable rates. As of March 29, 2024, $96.3 million was outstanding under our Term Loan, and we had no borrowed amounts outstanding and $1.6 million in letters of credit were issued under our Revolving Credit Facility. Each of our Term Loan and Revolving Credit Facility mature on September 29, 2026 and are governed by our Credit Agreement.

Pursuant to the Credit Agreement, (as described in Part II, Item 8, Note 6, “Debt Obligations”, of the Notes to Consolidated Financial Statements included in our Annual Report on Form 10-K for the fiscal year ended December 29, 2023), borrowings under the Credit Agreement bear interest at either a Base Rate (as defined in the Credit Agreement) or the adjusted Secured Overnight Financing Rate (“SOFR”), at the Company’s option, and in each case, plus an applicable margin, which applicable margin ranges from 0.75% to 2.00% with respect to Base Rate borrowings and 1.75% to 3.00% with respect to SOFR borrowings, depending on the Company’s Total Net Leverage Ratio (as defined in the Credit Agreement); provided, that SOFR and the Base Rate cannot be less than 0.00%, with the specific pricing reset on each date on which the Administrative Agent receives the required financial statements under the Credit Agreement for the fiscal quarter then ended. The Company must also pay a commitment fee for the unused portion of the Revolving Credit Facility, which ranges from 0.20% to 0.40% per annum depending on the Company’s Total Net Leverage Ratio, and fees on the face amount of any letters of credit outstanding under the Revolving Credit Facility, which range from 1.3125% to 2.25% per annum, in each case, depending on the Company’s Total Net Leverage Ratio, as well as customary fronting fees payable to BMO as letter of credit issuer.

The Term Loan will amortize quarterly in an amount equal to (i) 7.5% per annum for the first year ending after the Closing Date and (ii) 10.0% per annum for the second and third years ending after the Closing Date, with a final payment of all then remaining principal and interest due on the maturity date of September 29, 2026. The amounts outstanding under the Credit Facilities may be prepaid in whole or in part at any time without penalty (other than customary breakage costs).

On November 30, 2023, we entered into an interest rate swap agreement for $50.0 million notional amount. The interest swap agreement was designated as a cash flow hedge to fix the variable interest rate on a portion of the outstanding principal amount under our Term Loan. The interest rate swap fixed rate is 4.77% and expires on September 29, 2026.

Based upon the amount of our outstanding indebtedness as of March 29, 2024, a one percentage point increase in the effective interest rate, inclusive of our interest rate swap agreement, would change our annual interest expense by approximately $0.5 million in fiscal year 2024.

37

ITEM 4.  Controls and Procedures

We maintain disclosure controls and procedures, as defined in Rule 13a-15(e) and Rule 15-d-15(e) under the Securities Exchange Act of 1934, as amended (the “Exchange Act”), as controls and other procedures that are designed to ensure that information required to be disclosed by the issuer in the reports that it files or submits under the Exchange Act is recorded, processed, summarized and reported, within the time periods specified in the SEC’s rules and forms. Disclosure controls and procedures include, without limitation, controls and procedures designed to ensure that information required to be disclosed in the reports that we file or submit under the Securities Exchange Act is accumulated and communicated to our management, including our including our President and Chief Executive Officer, Michael A. Bieber, and our Chief Financial Officer and Executive Vice President, Creighton K. Early, as appropriate to allow timely decisions regarding required disclosure.

In connection with the preparation of this Quarterly Report, an evaluation was performed under the supervision and with the participation of our management, including our Chief Executive Officer and Chief Financial Officer, of the effectiveness of our disclosure controls and procedures as of March 29, 2024. Based on that evaluation, our Chief Executive Officer and Chief Financial Officer concluded that our disclosure controls and procedures were effective, at a reasonable assurance level, as of March 29, 2024.

No change in our internal control over financial reporting occurred during the period covered by this report that has materially affected, or is reasonably likely to materially affect, our internal control over financial reporting.

38

PART II.  OTHER INFORMATION

ITEM 1. Legal Proceedings

We are subject to claims and lawsuits from time to time, including those alleging professional errors or omissions that arise in the ordinary course of business against firms that operate in the engineering and consulting professions. We carry professional liability insurance, subject to certain deductibles and policy limits, for such claims as they arise and may from time to time establish reserves for litigation that is considered probable of a loss.

In accordance with accounting standards regarding loss contingencies, we accrue an undiscounted liability for those contingencies where the incurrence of a loss is probable and the amount can be reasonably estimated, and we disclose the amount accrued and an estimate of any reasonably possible loss in excess of the amount accrued, if such disclosure is necessary for our financial statements not to be misleading. We do not accrue liabilities when the likelihood that the liability has been incurred is probable but the amount cannot be reasonably estimated, or when the liability is believed to be only reasonably possible or remote.

Because litigation outcomes are inherently unpredictable, our evaluation of legal proceedings often involves a series of complex assessments by management about future events and can rely heavily on estimates and assumptions. If the assessments indicate that loss contingencies that could be material to any one of our financial statements are not probable, but are reasonably possible, or are probable, but cannot be estimated, then we disclose the nature of the loss contingencies, together with an estimate of the possible loss or a statement that such loss is not reasonably estimable. While the consequences of certain unresolved proceedings are not presently determinable, and a reasonable estimate of the probable and reasonably possible loss or range of loss in excess of amounts accrued for such proceedings cannot be made, an adverse outcome from such proceedings could have a material adverse effect on our earnings in any given reporting period. However, in the opinion of our management, after consulting with legal counsel, and taking into account insurance coverage, the ultimate liability related to current outstanding claims and lawsuits is not expected to have a material adverse effect on our financial statements.

ITEM 1A. Risk Factors

There are no material changes to the risk factors set forth in Part I, Item 1A, Risk Factors in our Annual Report on Form 10-K for the year ended December 29, 2023.

ITEM 2. Unregistered Sales of Equity Securities and Use of Proceeds

During the fiscal quarter ended March 29, 2024, we made the following repurchases of shares of our common stock from employees to satisfy tax withholding obligations incurred in connection with the vesting of restricted stock:

Total Number of
Shares Purchased

Average Price
Paid Per Share

Total Number of Shares Purchased as Part of Publicly Announced Plans or Programs

Maximum Number
(or Approximate Dollar
Value) of Shares That
May Yet be Purchased
Under the Plans or
Programs

December 30, 2023 – January 26, 2024

January 27, 2024 – February 23, 2024

February 24, 2024 – March 29, 2024

31,872

$24.55

TOTAL

31,872

$24.45

39

ITEM 3. Defaults upon Senior Securities

None.

ITEM 4. Mine Safety Disclosures

Not applicable.

ITEM 5. Other Information

Rule 10b5-1

None.

 

40

ITEM 6. Exhibits

Exhibit
Number

Exhibit Description

3.1

First Amended and Restated Certificate of Incorporation of Willdan Group, Inc. (incorporated by reference to Willdan Group, Inc.’s Registration Statement on Form S-1, filed with the SEC on August 9, 2006, as amended (File No. 333-136444)).

3.2

Second Amended and Restated Bylaws of Willdan Group, Inc. (incorporated by reference to Exhibit 3.1 to Willdan Group, Inc.’s Current Report on Form 8-K, filed with the SEC on July 12, 2023).

4.1

Specimen Stock Certificate for shares of the Registrant’s Common Stock (incorporated by reference to Willdan Group, Inc.’s Registration Statement on Form S-1, filed with the SEC on August 9, 2006, as amended (File No. 333-136444)).

4.2

The Company agrees to furnish to the Securities and Exchange Commission upon request a copy of each instrument with respect to issues of long-term debt of Willdan Group, Inc. and its subsidiaries, the authorized principal amount of which does not exceed 10% of the consolidated assets of Willdan Group, Inc. and its subsidiaries.

10.1

Consulting Agreement by and between the Company and Thomas D. Brisbin, dated February 28, 2024 (incorporated by reference to Exhibit 10.1 to Willdan Group, Inc.’s Current Report on Form 8-K, filed with the SEC on February 29, 2024).

31.1*

Certification of Chief Executive Officer pursuant to Rule 13a-14(a) and 15d-14(a) under the Securities Exchange Act of 1934, as adopted pursuant to § 302 of the Sarbanes-Oxley Act of 2002.

31.2*

Certification of Chief Financial Officer pursuant to Rule 13a-14(a) or 15d-14(a) under the Securities Exchange Act of 1934, as adopted pursuant to § 302 of the Sarbanes-Oxley Act of 2002.

32.1**

Certifications of Chief Executive Officer and Chief Financial Officer pursuant to 18 U.S.C. 1350, as adopted pursuant to § 906 of the Sarbanes-Oxley Act of 2002.

101.INS*

Inline 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.SCH*

Inline XBRL Taxonomy Extension Schema Document

101.CAL*

Inline XBRL Taxonomy Extension Calculation Linkbase Document

101.DEF*

Inline XBRL Taxonomy Extension Definition Linkbase Document

101.LAB*

Inline XBRL Taxonomy Extension Label Linkbase Document

101.PRE*

Inline XBRL Taxonomy Extension Presentation Linkbase Document

104*

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

*

Filed herewith.

**

Furnished herewith.

Portions of the referenced exhibit have been omitted pursuant to Item 601(b) of Regulation S-K because it (i) is not material and (ii) would be competitively harmful if publicly disclosed.

¥

All schedules and exhibits were omitted pursuant to Item 601(a)(5) of Regulation S-K.

Indicates a management contract or compensating plan or arrangement

41

SIGNATURES

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

WILLDAN GROUP, INC.

/s/ Creighton K. Early

Creighton K. Early

Chief Financial Officer and Executive Vice President

(Principal Financial Officer, Principal Accounting Officer and duly authorized officer)

May 2, 2024

42

EX-31.1 2 wldn-20240329xex31d1.htm EX-31.1

Exhibit 31.1

SECTION 302 CERTIFICATION OF CHIEF EXECUTIVE OFFICER

I, Michael A. Bieber, certify that:

1.            I have reviewed this quarterly report on Form 10-Q of Willdan Group, Inc.;

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

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

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

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

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

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

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

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

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

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

Date: May 2, 2024

(Prin

By:

/s/ MICHAEL A. BIEBER

Michael A. Bieber

President and Chief Executive Officer

(Principal Executive Officer)


EX-31.2 3 wldn-20240329xex31d2.htm EX-31.2

Exhibit 31.2

SECTION 302 CERTIFICATION OF CHIEF FINANCIAL OFFICER

I, Creighton K. Early, certify that:

1.

I have reviewed this quarterly report on Form 10-Q of Willdan Group, Inc.;

2.

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

3.

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

4.

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

a)

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

b)

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

c)

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

d)

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

5.

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

a)

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

b)

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

Date: May 2, 2024

By:

/s/ CREIGHTON K. EARLY

Creighton K. Early

Chief Financial Officer and Executive Vice President

(Principal Financial Officer)


EX-32.1 4 wldn-20240329xex32d1.htm EX-32.1

Exhibit 32.1

Certification of Chief Executive Officer and Chief Financial Officer Pursuant to 18 U.S.C. 1350,

as Adopted Pursuant to § 906 of the Sarbanes-Oxley Act of 2002

In connection with the Quarterly Report on Form 10-Q of Willdan Group, Inc. (the “Company”) for the quarterly period ended March 29, 2024, as filed with the Securities and Exchange Commission on the date hereof (the “Report”), Michael A. Bieber, as President and Chief Executive Officer of the Company, and Creighton K. Early, as Chief Financial Officer and Executive Vice President of the Company, each hereby certifies, pursuant to 18 U.S.C. § 1350, as adopted pursuant to § 906 of the Sarbanes-Oxley Act of 2002, that, to the best of his or her knowledge:

(1)

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

(2)

The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.

By:

/s/ MICHAEL A. BIEBER

Michael A. Bieber

President and Chief Executive Officer

(Principal Executive Officer)

May 2, 2024

By:

/s/ CREIGHTON K. EARLY

Creighton K. Early

Chief Financial Officer and Executive Vice President

(Principal Financial Officer)

May 2, 2024

This certification accompanies the Report pursuant to § 906 of the Sarbanes-Oxley Act of 2002 and shall not, except to the extent required by the Sarbanes-Oxley Act of 2002, be deemed filed by the Company for purposes of § 18 of the Securities Exchange Act of 1934, as amended. A signed original of this written statement required by § 906 has been provided to the Company and will be retained by the Company and furnished to the Securities and Exchange Commission or its staff upon request.


EX-101.SCH 5 wldn-20240329.xsd EX-101.SCH 00100 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS link:presentationLink link:calculationLink link:definitionLink 00200 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME link:presentationLink link:calculationLink link:definitionLink 00400 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS link:presentationLink link:calculationLink link:definitionLink 40401 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA - Restricted Cash (Details) link:presentationLink link:calculationLink link:definitionLink 40402 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA - Equipment and Leasehold Improvements, Net - Tabular Disclosure (Details) link:presentationLink link:calculationLink link:definitionLink 40404 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA - Accrued Liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 40502 - Disclosure - DERIVATIVE FINANCIAL INSTRUMENTS - Cash Flow Hedge Effectiveness (Details) link:presentationLink link:calculationLink link:definitionLink 40504 - Disclosure - DERIVATIVE FINANCIAL INSTRUMENTS - Accumulated Other Comprehensive Income (Loss) (Details) link:presentationLink link:calculationLink link:definitionLink 40601 - Disclosure - DEBT OBLIGATIONS - Composition (Details) link:presentationLink link:calculationLink link:definitionLink 40602 - Disclosure - DEBT OBLIGATIONS - Classification (Details) link:presentationLink link:calculationLink link:definitionLink 40702 - Disclosure - LEASES - Lease Expense (Details) link:presentationLink link:calculationLink link:definitionLink 40703 - Disclosure - LEASES - Consolidated Balance Sheet (Details) link:presentationLink link:calculationLink link:definitionLink 40707 - Disclosure - LEASES - Operating Leases - Maturities of Lease Liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 40708 - Disclosure - LEASES - Operating Leases - Gross Difference (Details) link:presentationLink link:calculationLink link:definitionLink 40709 - Disclosure - LEASES - Finance Leases - Maturities of Lease Liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 40710 - Disclosure - LEASES - Finance Leases - Gross Difference (Details) link:presentationLink link:calculationLink link:definitionLink 41101 - Disclosure - EARNINGS PER SHARE (EPS) - Computation (Details) link:presentationLink link:calculationLink link:definitionLink 00090 - Document - Document and Entity Information link:presentationLink link:calculationLink link:definitionLink 00105 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical) link:presentationLink link:calculationLink link:definitionLink 00300 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY link:presentationLink link:calculationLink link:definitionLink 10101 - Disclosure - ORGANIZATION AND OPERATIONS OF THE COMPANY link:presentationLink link:calculationLink link:definitionLink 10201 - Disclosure - RECENT ACCOUNTING PRONOUNCEMENTS link:presentationLink link:calculationLink link:definitionLink 10301 - Disclosure - REVENUES link:presentationLink link:calculationLink link:definitionLink 10401 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA link:presentationLink link:calculationLink link:definitionLink 10501 - Disclosure - DERIVATIVE FINANCIAL INSTRUMENTS link:presentationLink link:calculationLink link:definitionLink 10601 - Disclosure - DEBT OBLIGATIONS link:presentationLink link:calculationLink link:definitionLink 10701 - Disclosure - LEASES link:presentationLink link:calculationLink link:definitionLink 10801 - Disclosure - COMMITMENTS AND VARIABLE INTEREST ENTITIES link:presentationLink link:calculationLink link:definitionLink 10901 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION link:presentationLink link:calculationLink link:definitionLink 11001 - Disclosure - INCOME TAXES link:presentationLink link:calculationLink link:definitionLink 11101 - Disclosure - EARNINGS PER SHARE (EPS) link:presentationLink link:calculationLink link:definitionLink 11201 - Disclosure - CONTINGENCIES link:presentationLink link:calculationLink link:definitionLink 11301 - Disclosure - SUBSEQUENT EVENTS link:presentationLink link:calculationLink link:definitionLink 20102 - Disclosure - ORGANIZATION AND OPERATIONS OF THE COMPANY (Policies) link:presentationLink link:calculationLink link:definitionLink 30303 - Disclosure - REVENUES (Tables) link:presentationLink link:calculationLink link:definitionLink 30403 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA (Tables) link:presentationLink link:calculationLink link:definitionLink 30603 - Disclosure - DEBT OBLIGATIONS (Tables) link:presentationLink link:calculationLink link:definitionLink 30703 - Disclosure - LEASES (Tables) link:presentationLink link:calculationLink link:definitionLink 30903 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION (Tables) link:presentationLink link:calculationLink link:definitionLink 31103 - Disclosure - EARNINGS PER SHARE (EPS) (Tables) link:presentationLink link:calculationLink link:definitionLink 40102 - Disclosure - ORGANIZATION AND OPERATIONS OF THE COMPANY - Fiscal Years (Details) link:presentationLink link:calculationLink link:definitionLink 40302 - Disclosure - REVENUES - General Information (Details) link:presentationLink link:calculationLink link:definitionLink 40405 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA - Goodwill (Details) link:presentationLink link:calculationLink link:definitionLink 40406 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA - Finite-lived Intangible Assets - Gross Amounts and Accumulated Amortization (Details) link:presentationLink link:calculationLink link:definitionLink 40407 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA - Finite-lived Intangible Assets - Amortization Period (Details) link:presentationLink link:calculationLink link:definitionLink 40501 - Disclosure - DERIVATIVE FINANCIAL INSTRUMENTS - General Information (Details) link:presentationLink link:calculationLink link:definitionLink 40603 - Disclosure - DEBT OBLIGATIONS - New Credit Facilities (Details) link:presentationLink link:calculationLink link:definitionLink 40701 - Disclosure - LEASES - General Information (Details) link:presentationLink link:calculationLink link:definitionLink 40706 - Disclosure - LEASES - Supplemental Cash Flow Information (Details) link:presentationLink link:calculationLink link:definitionLink 40801 - Disclosure - COMMITMENTS AND VARIABLE INTEREST ENTITIES - Employee Benefit Plans (Details) link:presentationLink link:calculationLink link:definitionLink 40902 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION - Statement of Operations (Details) link:presentationLink link:calculationLink link:definitionLink 40903 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION - Segment Assets (Details) link:presentationLink link:calculationLink link:definitionLink 40904 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION - Disaggregation of Revenue (Details) link:presentationLink link:calculationLink link:definitionLink 40906 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION - Concentration Risk (Details) link:presentationLink link:calculationLink link:definitionLink 41001 - Disclosure - INCOME TAXES - Valuation Allowance (Details) link:presentationLink link:calculationLink link:definitionLink 41102 - Disclosure - EARNINGS PER SHARE (EPS) - Antidilutive Securities (Details) link:presentationLink link:calculationLink link:definitionLink 30503 - Disclosure - DERIVATIVE FINANCIAL INSTRUMENTS (Tables) link:presentationLink link:calculationLink link:definitionLink 40101 - Disclosure - ORGANIZATION AND OPERATIONS OF THE COMPANY - Segment Information (Details) link:presentationLink link:calculationLink link:definitionLink 40301 - Disclosure - REVENUES - Segment Information (Details) link:presentationLink link:calculationLink link:definitionLink 40403 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA - Equipment and Leasehold Improvements, Net - Depreciation and Amortization Expense (Details) link:presentationLink link:calculationLink link:definitionLink 40503 - Disclosure - DERIVATIVE FINANCIAL INSTRUMENTS - Fair Value (Details) link:presentationLink link:calculationLink link:definitionLink 40704 - Disclosure - LEASES - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 40705 - Disclosure - LEASES - Rent Expense (Details) link:presentationLink link:calculationLink link:definitionLink 40802 - Disclosure - COMMITMENTS AND VARIABLE INTEREST ENTITIES - Variable Interest Entities (Details) link:presentationLink link:calculationLink link:definitionLink 40901 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION - Segment Information (Details) link:presentationLink link:calculationLink link:definitionLink 40905 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION - Geographical Information (Details) link:presentationLink link:calculationLink link:definitionLink 41002 - Disclosure - INCOME TAXES - Uncertain Tax Positions (Details) link:presentationLink link:calculationLink link:definitionLink 41003 - Disclosure - INCOME TAXES - Income Tax Expense (Benefit) (Details) link:presentationLink link:calculationLink link:definitionLink 99900 - Disclosure - Standard And Custom Axis Domain Defaults link:presentationLink link:calculationLink link:definitionLink EX-101.CAL 6 wldn-20240329_cal.xml EX-101.CAL EX-101.DEF 7 wldn-20240329_def.xml EX-101.DEF EX-101.LAB 8 wldn-20240329_lab.xml EX-101.LAB EX-101.PRE 9 wldn-20240329_pre.xml EX-101.PRE XML 11 R1.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Document and Entity Information - shares
3 Months Ended
Mar. 29, 2024
May 01, 2024
Cover [Abstract]    
Entity Central Index Key 0001370450  
Document Type 10-Q  
Document Quarterly Report true  
Document Transition Report false  
Document Period End Date Mar. 29, 2024  
Entity File Number 001-33076  
Entity Registrant Name WILLDAN GROUP, INC.  
Entity Incorporation, State or Country Code DE  
Entity Tax Identification Number 14-1951112  
Entity Address, Address Line One 2401 East Katella Avenue  
Entity Address, Address Line Two Suite 300  
Entity Address, City or Town Anaheim  
Entity Address, Postal Zip Code 92806  
Entity Address, State or Province CA  
City Area Code 800  
Local Phone Number 424-9144  
Title of 12(b) Security Common Stock, par value $0.01 per share  
Trading Symbol WLDN  
Security Exchange Name NASDAQ  
Entity Current Reporting Status Yes  
Entity Interactive Data Current Yes  
Entity Filer Category Accelerated Filer  
Entity Small Business false  
Entity Emerging Growth Company false  
Entity Shell Company false  
Entity Common Stock, Shares Outstanding   13,817,074
Current Fiscal Year End Date --12-27  
Document Fiscal Period Focus Q1  
Document Fiscal Year Focus 2024  
Amendment Flag false  
XML 12 R2.htm IDEA: XBRL DOCUMENT v3.24.1.u1
CONDENSED CONSOLIDATED BALANCE SHEETS - USD ($)
$ in Thousands
Mar. 29, 2024
Dec. 29, 2023
Current assets:    
Cash and cash equivalents $ 46,925 $ 23,397
Restricted cash 0 0
Accounts receivable, net of allowance for doubtful accounts of $690 and $866 at March 29, 2024 and December 29, 2023, respectively 50,792 69,677
Contract assets 82,409 93,885
Other receivables 552 1,169
Prepaid expenses and other current assets 5,863 3,888
Total current assets 186,541 192,016
Equipment and leasehold improvements, net 27,539 27,097
Goodwill 131,144 131,144
Right-of-use assets 12,803 12,465
Other intangible assets, net 30,085 31,956
Other assets 4,832 4,949
Deferred income taxes, net 14,956 15,961
Total assets 407,900 415,588
Current liabilities:    
Accounts payable 34,518 33,193
Accrued liabilities 38,411 54,129
Contract liabilities 16,427 13,183
Notes payable 8,924 8,452
Finance lease obligations 1,111 1,186
Lease liability 4,677 4,537
Total current liabilities 104,068 114,680
Notes payable, less current portion 86,571 88,979
Finance lease obligations, less current portion 1,112 1,184
Lease liability, less current portion 9,948 9,758
Other noncurrent liabilities 686 1,142
Total liabilities 202,385 215,743
Commitments and contingencies
Stockholders' equity:    
Preferred stock, $0.01 par value, 10,000 shares authorized, no shares issued and outstanding
Common stock, $0.01 par value, 40,000 shares authorized; 13,817 and 13,682 shares issued and outstanding at March 29, 2024 and December 29, 2023, respectively 138 137
Additional paid-in capital 188,088 185,795
Accumulated other comprehensive loss (230) (664)
Retained earnings 17,519 14,577
Total stockholders' equity 205,515 199,845
Total liabilities and stockholders' equity $ 407,900 $ 415,588
XML 13 R3.htm IDEA: XBRL DOCUMENT v3.24.1.u1
CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical) - USD ($)
$ in Thousands
Mar. 29, 2024
Dec. 29, 2023
Accounts Receivable, after Allowance for Credit Loss, Current    
Accounts receivable, allowance for doubtful accounts $ 690 $ 866
Preferred stock    
Preferred stock, par value (in dollars per share) $ 0.01 $ 0.01
Preferred stock, shares authorized (in shares) 10,000,000 10,000,000
Preferred stock, shares issued (in shares) 0 0
Preferred stock, shares outstanding (in shares) 0 0
Common stock    
Common stock, par value (in dollars per share) $ 0.01 $ 0.01
Common stock, shares authorized (in shares) 40,000,000 40,000,000
Common stock, shares issued (in shares) 13,817,000 13,682,000
Common stock, shares outstanding (in shares) 13,817,000 13,682,000
XML 14 R4.htm IDEA: XBRL DOCUMENT v3.24.1.u1
CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME - USD ($)
shares in Thousands, $ in Thousands
3 Months Ended
Mar. 29, 2024
Mar. 31, 2023
CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (LOSS)    
Contract revenue $ 122,489 $ 102,603
Direct costs of contract revenue (inclusive of directly related depreciation and amortization):    
Salaries and wages 21,512 20,410
Subcontractor services and other direct costs 53,559 40,912
Total direct costs of contract revenue 75,071 61,322
Gross profit 47,418 41,281
General and administrative expenses:    
Salaries and wages, payroll taxes and employee benefits 26,509 22,385
Facilities and facility related 2,445 2,278
Stock-based compensation 1,390 1,533
Depreciation and amortization 3,592 4,200
Other 8,121 6,871
Total general and administrative expenses 42,057 37,267
Income (Loss) from operations 5,361 4,014
Other income (expense):    
Interest expense, net (2,137) (2,466)
Other, net 704 140
Total other expense, net (1,433) (2,326)
Income (Loss) before income taxes 3,928 1,688
Income tax (benefit) expense 986 756
Net income (loss) 2,942 932
Other comprehensive income (loss):    
Unrealized gain (loss) on derivative contracts, net of tax 434  
Comprehensive income (loss) $ 3,376 $ 932
Earnings (Loss) per share:    
Basic (in dollars per share) $ 0.22 $ 0.07
Diluted (in dollars per share) $ 0.21 $ 0.07
Weighted-average shares outstanding:    
Basic (in shares) 13,605 13,266
Diluted (in shares) 13,910 13,470
XML 15 R5.htm IDEA: XBRL DOCUMENT v3.24.1.u1
CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY - USD ($)
shares in Thousands, $ in Thousands
Common Stock
Additional Paid-in Capital
Accumulated Other Comprehensive Income (Loss)
Retained Earnings
Total
Balance at Dec. 30, 2022 $ 133 $ 177,718   $ 3,651 $ 181,502
Balance (in shares) at Dec. 30, 2022 13,296        
Increase (Decrease) in Stockholders' Equity          
Shares of common stock issued in connection with employee stock purchase plan $ 1 1,391     1,392
Shares of common stock issued in connection with employee stock purchase plan (in shares) 92        
Shares used to pay taxes on stock grants   (124)     (124)
Shares used to pay taxes on stock grants (in shares) (7)        
Issuance of restricted stock award and units $ 1 (1)      
Issuance of restricted stock award and units (in shares) 108        
Stock-based compensation expense   1,533     1,533
Net Income (Loss)       932 932
Balance at Mar. 31, 2023 $ 135 180,517   4,583 185,235
Balance (in shares) at Mar. 31, 2023 13,489        
Balance at Dec. 29, 2023 $ 137 185,795 $ (664) 14,577 $ 199,845
Balance (in shares) at Dec. 29, 2023 13,682       13,682
Increase (Decrease) in Stockholders' Equity          
Shares of common stock issued in connection with employee stock purchase plan $ 1 1,401     $ 1,402
Shares of common stock issued in connection with employee stock purchase plan (in shares) 86        
Shares of common stock issued in connection with incentive stock plan   281     281
Shares of common stock issued in connection with incentive stock plan (in shares) 19        
Shares used to pay taxes on stock grants $ (1) (778)     (779)
Shares used to pay taxes on stock grants (in shares) (32)        
Issuance of restricted stock award and units $ 1 (1)      
Issuance of restricted stock award and units (in shares) 62        
Stock-based compensation expense   1,390     1,390
Net Income (Loss)       2,942 2,942
Net unrealized gain on derivative contracts     434   434
Balance at Mar. 29, 2024 $ 138 $ 188,088 $ (230) $ 17,519 $ 205,515
Balance (in shares) at Mar. 29, 2024 13,817       13,817
XML 16 R6.htm IDEA: XBRL DOCUMENT v3.24.1.u1
CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS - USD ($)
$ in Thousands
3 Months Ended
Mar. 29, 2024
Mar. 31, 2023
Cash flows from operating activities:    
Net income (loss) $ 2,942 $ 932
Adjustments to reconcile net income (loss) to net cash provided by (used in) operating activities:    
Depreciation and amortization 3,592 4,200
Other non-cash items 92 85
Deferred income taxes, net 1,005 782
(Gain) loss on sale/disposal of equipment (13) (10)
Provision for doubtful accounts (100) 81
Stock-based compensation 1,390 1,533
Changes in operating assets and liabilities, net of effects from business acquisitions:    
Accounts receivable 18,985 8,204
Contract assets 11,476 7,819
Other receivables 617 (9)
Prepaid expenses and other current assets (1,975) 1,023
Other assets 117 (3,532)
Accounts payable 1,325 479
Accrued liabilities (15,740) (7,883)
Contract liabilities 3,244 2,941
Right-of-use assets (8) 647
Net cash (used in) provided by operating activities 26,949 17,292
Cash flows from investing activities:    
Purchase of equipment, software, and leasehold improvements (1,971) (3,488)
Proceeds from sale of equipment 19 13
Net cash used in investing activities (1,952) (3,475)
Cash flows from financing activities:    
Payment on restricted cash   (10,679)
Payments on notes payable (153) (485)
Repayments under term loan facility and line of credit (1,875) (5,250)
Principal payments on finance leases (345) (303)
Proceeds from stock option exercise 281  
Proceeds from sales of common stock under employee stock purchase plan 1,402 1,392
Cash used to pay taxes on stock grants (779) (124)
Net cash (used in) provided by financing activities (1,469) (15,449)
Net increase (decrease) in cash, cash equivalents and restricted cash 23,528 (1,632)
Cash, cash equivalents and restricted cash at beginning of period 23,397 19,485
Cash, cash equivalents and restricted cash at end of period 46,925 17,853
Cash paid (received) during the period for:    
Interest 2,081 2,424
Income taxes 2 (77)
Supplemental disclosures of noncash investing and financing activities:    
Equipment acquired under finance leases $ 198 $ 48
XML 17 R7.htm IDEA: XBRL DOCUMENT v3.24.1.u1
ORGANIZATION AND OPERATIONS OF THE COMPANY
3 Months Ended
Mar. 29, 2024
ORGANIZATION AND OPERATIONS OF THE COMPANY  
ORGANIZATION AND OPERATIONS OF THE COMPANY

1. ORGANIZATION AND OPERATIONS OF THE COMPANY

Willdan Group, Inc. (“Willdan” or the “Company”) is a provider of professional, technical and consulting services to utilities, private industry, and public agencies at all levels of government. As resource and infrastructure needs undergo continuous change, the Company helps organizations and their communities evolve and thrive by providing a wide range of technical services for energy solutions, and government infrastructure. Through engineering, program management, policy advisory, and software and data management, the Company designs and delivers trusted, comprehensive, innovative, and proven solutions to improve efficiency, resiliency, and sustainability in energy and infrastructure.

The Company’s broad portfolio of services operates within two financial reporting segments: (1) Energy and (2) Engineering and Consulting. The interfaces and synergies between these segments are important elements of the Company’s strategy to design and deliver trusted, comprehensive, innovative, and proven solutions for its customers.

The accounting policies followed by the Company are set forth in Part II, Item 8, Note 1, Organization and Operations of the Company, of the Notes to Consolidated Financial Statements included in the Company’s Annual Report on Form 10-K for the fiscal year ended December 29, 2023. In the opinion of management, all adjustments necessary to fairly state the Condensed Consolidated Financial Statements have been made. All such adjustments are of a normal, recurring nature. Certain information and footnote disclosures normally included in the Consolidated Financial Statements prepared in accordance with accounting principles generally accepted in the United States (“U.S. GAAP”) have been condensed or omitted pursuant to the rules and regulations of the Securities and Exchange Commission (“SEC”). These Condensed Consolidated Financial Statements and related notes thereto should be read in conjunction with the Consolidated Financial Statements and the notes thereto included in the Company’s Annual Report on Form 10-K for the fiscal year ended December 29, 2023. The results of operations for interim periods are not necessarily indicative of results to be expected for the full year.

Fiscal Years

The Company operates and reports its annual financial results based on 52 or 53-week periods ending on the Friday closest to December 31. The Company operates and reports its quarterly financial results based on the 13-week period ending on the Friday closest to June 30, September 30, and December 31 and the 13 or 14-week period ending on the Friday closest to March 31, as applicable. Fiscal year 2024, which ends on December 27, 2024, will be comprised of 52 weeks, with all quarters consisting of 13 weeks each. Fiscal year 2023, which ended on December 29, 2023, was comprised of 52 weeks, with all quarters consisting of 13 weeks each. All references to years in the notes to consolidated financial statements represent fiscal years.

Use of Estimates

The preparation of consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the consolidated financial statements. Estimates also affect the reported amounts of revenue and expenses during the reporting period. Actual results could differ from those estimates.

XML 18 R8.htm IDEA: XBRL DOCUMENT v3.24.1.u1
RECENT ACCOUNTING PRONOUNCEMENTS
3 Months Ended
Mar. 29, 2024
RECENT ACCOUNTING PRONOUNCEMENTS  
RECENT ACCOUNTING PRONOUNCEMENTS

2. RECENT ACCOUNTING PRONOUNCEMENTS

Accounting Pronouncements Recently Issued

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” (“ASU 2023-09”). ASU 2023-09 amends the rules on income tax disclosures to require entities to disclose specific categories in the rate reconciliation, the income or loss from continuing operations before income tax expense or benefit (separated between domestic and foreign) and income tax expense or benefit from continuing operations (separated by federal, state, and foreign). In addition, ASU 2023-09 requires entities to disclose their income tax payments to international, federal, state, and local jurisdictions, among other changes. The amendments can be applied on a prospective basis although retrospective application is permitted. The amendments are effective for the fiscal years beginning after December 15, 2024, with early adoption permitted. The Company is currently evaluating the impact this update will have on its Consolidated Financial Statements.

In November 2023, the FASB issued ASU No. 2023-07, “Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures” (“ASU 2023-07”). ASU 2023-07 expands segment disclosure requirements through enhanced disclosures related to significant segment expenses that are regularly provided to the chief operating decision maker (“CODM”), a description of other segment items by reportable segment, and any additional measures of a segment's profit or loss used by the CODM when deciding how to allocate resources. All disclosure requirements under ASU 2023-07 are also required for public entities with a single reportable segment. The amendments are effective for the fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024. The Company is currently evaluating the impact this update will have on its Consolidated Financial Statements.

  

In October 2023, the FASB issued ASU No. 2023-06, “Disclosure Improvements: Codification Amendments in Response to the SEC’s Disclosure Update and Simplification Initiative” (“ASU 2023-06”). ASU 2023-06 amends U.S. GAAP to reflect updates and simplifications to certain disclosure and presentation requirements referred to FASB by the Securities and Exchange Commission (“SEC”). The targeted amendments incorporate 14 of the 27 disclosures referred by the SEC into codification. Each amendment in ASU 2023-06 is effective on either the date on which the SEC’s removal of the related disclosure requirement from Regulation S-X or Regulation S-K becomes effective, or on June 30, 2027, if the SEC has not removed the requirements by that date. The Company is currently evaluating the impact this update will have on its Consolidated Financial Statements.

 

 

XML 19 R9.htm IDEA: XBRL DOCUMENT v3.24.1.u1
REVENUES
3 Months Ended
Mar. 29, 2024
REVENUES  
REVENUES

3. REVENUES

The Company enters into contracts with its clients that contain various types of pricing provisions, including fixed price, time-and-materials, and unit-based provisions. The Company recognizes revenues in accordance with ASU 2014-09, Revenue from Contracts with Customer, codified as ASC Topic 606 and the related amendments (collectively “ASC 606”). As such, the Company identifies a contract with a customer, identifies the performance obligations in the contract, determines the transaction price, allocates the transaction price to each performance obligation in the contract and recognizes revenues when (or as) the Company satisfies a performance obligation.

The following table reflects the Company’s two reportable segments and the types of contracts that each most commonly enters into for revenue generating activities.

Segment

Contract Type

Revenue Recognition Method

Time-and-materials

Time-and-materials

Energy

Unit-based

Unit-based

Software license

Unit-based

Fixed price

Percentage-of-completion

Time-and-materials

Time-and-materials

Engineering and Consulting

Unit-based

Unit-based

Fixed price

Percentage-of-completion

 

Revenue on the vast majority of the Company’s contracts is recognized over time because of the continuous transfer of control to the customer. Revenue on fixed price contracts is recognized on the percentage-of-completion method based generally on the ratio of direct costs incurred-to-date to estimated total direct costs at completion. The Company uses the percentage-of-completion method to better match the level of work performed at a certain point in time in relation to the effort that will be required to complete a project. In addition, the percentage-of-completion method is a common method of revenue recognition in the Company’s industry.

Many of the Company’s fixed price contracts involve a high degree of subcontracted fixed price effort and, usually, are relatively short in duration, thereby lowering the risks of not properly estimating the percent complete. Revenue on time-and-materials and unit-based contracts is recognized as the work is performed in accordance with the specific rates and terms of the contract. The Company recognizes revenues for time-and-materials contracts based upon the actual hours incurred during a reporting period at contractually agreed upon rates per hour and also includes in revenue all reimbursable costs incurred during a reporting period. Certain of the Company’s time-and-materials contracts are subject to maximum contract values and, accordingly, when revenue is expected to exceed the maximum contract value, these contracts are generally recognized under the percentage-of-completion method, consistent with fixed price contracts. For unit-based contracts, the Company recognizes the contract price of units of a basic production product as revenue when the production product is delivered during a period. Revenue for amounts that have been billed but not earned is deferred, and such deferred revenue is referred to as contract liabilities in the accompanying condensed consolidated balance sheets. The Company also derives revenue from software licenses and professional services and maintenance fees. In accordance with ASC 606, the Company performs an assessment of each contract to identify the performance obligations, determine the overall transaction price for the contract, allocate the transaction price to the performance obligations, and recognize the revenue when the performance obligations are satisfied. The Company utilizes the residual approach by which it estimates the standalone selling price by reference to the total transaction price less the sum of the observable standalone selling prices of other goods or services promised in the contract. The software license revenue is typically recognized at a point in time when control is transferred to the client, which is defined as the point in time when the client can use and benefit from the license. The software license is delivered before related services are provided and is functional without services, updates, or technical support. Related professional services include training and support services in which the standalone selling price is determined based on an input measure of hours incurred to total estimated hours and is recognized over time, which usually is the life of the contract.

To determine the proper revenue recognition method for contracts, the Company evaluates whether two or more contracts should be combined and accounted for as one single contract and whether the combined contract should be accounted for as one performance obligation. With respect to the Company’s contracts, it is rare that multiple contracts should be combined into a single performance obligation. This evaluation requires significant judgment and the decision to combine a group of contracts or separate a single contract into multiple performance obligations could change the amount of revenue and profit recorded in a given period. Contracts are considered to have a single performance obligation if the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts, which is mainly because the Company provides a significant service of integrating a complex set of tasks and components into a single project or capability.

The Company may enter into contracts that include separate phases or elements. If each phase or element is negotiated separately based on the technical resources required and/or the supply and demand for the services being provided, the Company evaluates if the contracts should be segmented. If certain criteria are met, the contracts would be segmented which could result in revenues being assigned to the different elements or phases with different rates of profitability based on the relative value of each element or phase to the estimated total contract revenue. Segmented contracts may comprise up to approximately 2.0% to 3.0% of the Company’s consolidated contract revenue.

Contracts that cover multiple phases or elements of the project or service lifecycle (development, construction and maintenance and support) may be considered to have multiple performance obligations even when they are part of a single contract. For contracts with multiple performance obligations, the Company allocates the transaction price to each performance obligation using the best estimate of the standalone selling price of each distinct good or service in the contract. For the periods presented, the value of the separate performance obligations under contracts with multiple performance obligations (generally measurement and verification tasks under certain energy performance contracts) were not material. In cases where the Company does not provide the distinct good or service on a standalone basis, the primary method used to estimate standalone selling price is the expected cost plus a margin approach, under which the Company forecasts the Company’s expected costs of satisfying a performance obligation and then adds an appropriate margin for the distinct good or service.

The Company provides quality of workmanship warranties to customers that are included in the sale and are not priced or sold separately or do not provide customers with a service in addition to assurance of compliance with agreed-upon specifications and industry standards. The Company does not consider these types of warranties to be separate performance obligations.

In some cases, the Company has a master service or blanket agreement with a customer under which each task order releases the Company to perform specific portions of the overall scope in the service contract. Each task order is typically accounted for as a separate contract because the task order establishes the enforceable rights and obligations, and payment terms.

Under ASC 606, variable consideration should be considered when determining the transaction price and estimates should be made for the variable consideration component of the transaction price, as well as assessing whether an estimate of variable consideration is constrained. For certain of the Company’s contracts, variable consideration can arise from modifications to the scope of services resulting from unapproved change orders or customer claims. Variable consideration is included in the transaction price to the extent it is probable that a significant reversal of cumulative revenue recognized will not occur when the uncertainty associated with the variable consideration is resolved. The Company estimates of variable consideration and determination of whether to include estimated amounts in the transaction price are based largely on assessments of legal enforceability, the Company’s performance, and all information (historical, current and forecasted) that is reasonably available to the Company.

Due to the nature of the work required to be performed on many of the Company’s performance obligations, the estimation of total revenue and cost at completion is complex, subject to many variables and requires significant judgment. As a significant change in one or more of these estimates could affect the profitability of the Company’s contracts, the Company reviews and updates the Company’s contract-related estimates regularly through a company-wide disciplined project review process in which management reviews the progress and execution of the Company’s performance obligations and the estimate at completion (“EAC”). As part of this process, management reviews information including, but not limited to, any outstanding key contract matters, progress towards completion and the related program schedule and the related changes in estimates of revenues and costs. Management must make assumptions and estimates regarding labor productivity and availability, the complexity of the work to be performed, the cost and availability of materials, the performance of subcontractors, and the availability and timing of funding from the customer, among other variables.

The Company recognizes adjustments in estimated profit on contracts under the cumulative catch-up method. Under this method, the impact of the adjustment on profit recorded to date is recognized in the period the adjustment is identified. Revenue and profit in future periods of contract performance is recognized using the adjusted estimate. If at any time the estimate of contract profitability indicates an anticipated loss on the contract, the Company recognizes the full amount of estimated loss in the period it is identified.

Contracts are often modified to account for changes in contract specifications and requirements. The Company considers contract modifications to exist when the modification either creates new rights or obligations or changes the existing enforceable rights or obligations. Most of the Company’s contract modifications are for goods or services that are not distinct from existing contracts due to the significant integration provided in the context of the contract and are accounted for as if they were part of the original contract. The effect of a contract modification that is not distinct from the existing contract on the transaction price and the Company’s measure of progress for the performance obligation to which it relates is recognized as an adjustment to revenue (either as an increase in or a reduction of revenue) on a cumulative catch-up basis.

For contract modifications that result in the promise to deliver goods or services that are distinct from the existing contract and the increase in price of the contract is for the same amount as the standalone selling price of the additional goods or services included in the modification, the Company accounts for such contract modifications as a separate contract.

The Company includes claims to vendors, subcontractors and others as a receivable and a reduction in recognized costs when enforceability of the claim is established by the contract and the amounts are reasonably estimable and probable of being recovered. The amounts are recorded up to the extent of the lesser of the amounts management expects to recover or to costs incurred.

Billing practices are governed by the contract terms of each project based upon costs incurred, achievement of milestones or pre-agreed schedules. Billings do not necessarily correlate with revenue recognized using the percentage-of-completion method of revenue recognition.

Direct costs of contract revenue consist primarily of that portion of technical and nontechnical salaries and wages that has been incurred in connection with revenue producing projects. Direct costs of contract revenue also include production expenses, subcontractor services and other expenses that are incurred in connection with revenue producing projects.

Direct costs of contract revenue exclude that portion of technical and nontechnical salaries and wages related to marketing efforts, vacations, holidays and other time not spent directly generating revenue under existing contracts. Such costs are included in general and administrative expenses. Additionally, payroll taxes, bonuses and employee benefit costs for all Company personnel are included in general and administrative expenses in the accompanying condensed consolidated statements of comprehensive income since no allocation of these costs is made to direct costs of contract revenue. No allocation of facilities costs is made to direct costs of contract revenue. Other companies may classify as direct costs of contract revenue some of the costs that the Company classifies as general and administrative costs. The Company expenses direct costs of contract revenue when incurred.

Included in revenue and costs are all reimbursable costs for which the Company has the risk or on which the fee was based at the time of bid or negotiation. No revenue or cost is recorded for costs in which the Company acts solely in the capacity of an agent and has no risks associated with such costs.

Accounts receivable are carried at original invoice amount less an estimate made for doubtful accounts based upon a review of all outstanding amounts on a quarterly basis. Management determines allowances for doubtful accounts through specific identification of amounts considered to be uncollectible and potential write-offs, plus a non-specific allowance for other amounts for which some potential loss has been determined to be probable based on current and past experience. The Company’s historical credit losses have been minimal with governmental entities and large public utilities, but disputes may arise related to these receivable amounts. Accounts receivable are written off when deemed uncollectible. Recoveries of accounts receivable previously written off are recorded when received.

Retainage, included in contract assets, represents amounts withheld from billings to the Company’s clients pursuant to provisions in the contracts and may not be paid to the Company until specific tasks are completed or the project is completed and, in some instances, for even longer periods. As of March 29, 2024 and December 29, 2023, contract assets included retainage of approximately $16.1 million and $14.3 million, respectively.

 

 

XML 20 R10.htm IDEA: XBRL DOCUMENT v3.24.1.u1
SUPPLEMENTAL FINANCIAL STATEMENT DATA
3 Months Ended
Mar. 29, 2024
SUPPLEMENTAL FINANCIAL STATEMENT DATA  
SUPPLEMENTAL FINANCIAL STATEMENT DATA

4. SUPPLEMENTAL FINANCIAL STATEMENT DATA

Restricted Cash

The following table provides a reconciliation of cash and cash equivalents, and restricted cash reported within the condensed consolidated balance sheets to the total cash, cash equivalents, and restricted cash shown in the consolidated statements of cash flows:

March 29,

December 29,

    

2024

    

2023

(in thousands)

Cash and cash equivalents

$

46,925

$

23,397

Restricted cash

 

 

Total cash, cash equivalents, and restricted cash shown in the consolidated statement of cash flows

$

46,925

$

23,397

 

Under certain utility contracts, the Company periodically receives cash deposits to be held in trust for the payment of energy incentive rebates to be sent directly to the utility’s end-customer on behalf of the utility. The Company acts solely as the utility’s agent to distribute these funds to the end-customer and, accordingly, the Company classifies these contractually restricted funds as restricted cash. Because these funds are held in trust for pass through to the utility’s customers and have no impact on the Company’s working capital or operating cash flows, these cash receipts are presented in the consolidated statement of cash flows as financing cash inflows, “Receipt of restricted cash”, with the subsequent payments classified as financing cash outflows, “Payment of restricted cash.”

Equipment and Leasehold Improvements

March 29,

December 29,

    

2024

    

2023

(in thousands)

Furniture and fixtures

$

4,403

$

4,379

Computer hardware and software

 

46,384

 

44,594

Leasehold improvements

 

3,466

 

3,382

Equipment under finance leases

 

6,245

 

6,139

Automobiles, trucks, and field equipment

 

3,388

 

3,373

Subtotal

 

63,886

 

61,867

Accumulated depreciation and amortization

 

(36,347)

 

(34,770)

Equipment and leasehold improvements, net

$

27,539

$

27,097

 

Included in accumulated depreciation and amortization is $0.4 million and $1.3 million of amortization expense related to equipment held under finance leases for the three months ended March 29, 2024 and for fiscal year 2023, respectively.

Accrued Liabilities

March 29,

December 29,

    

2024

    

2023

(in thousands)

Accrued subcontractor costs

$

22,896

$

30,196

Accrued bonuses

4,542

14,423

Employee withholdings

 

4,779

 

3,123

Compensation and payroll taxes

 

4,163

 

3,125

Rebate and other

139

Accrued accounting costs and taxes

 

2,031

 

3,123

Total accrued liabilities

$

38,411

$

54,129

 

Goodwill

December 29,

Additional

Additions /

March 29,

    

2023

    

Purchase Cost

    

Adjustments

    

2024

(in thousands)

Reporting Unit:

Energy

$

129,375

$

$

$

129,375

Engineering and Consulting

1,769

1,769

$

131,144

$

$

$

131,144

 

The Company tests its goodwill at least annually for possible impairment. The Company completes its annual testing of goodwill as of the last day of the first month of its fourth fiscal quarter each year to determine whether there is a potential impairment. In addition to the Company’s annual test, it regularly evaluates whether events and circumstances have occurred that may indicate a potential impairment of goodwill. The Company evaluated the current economic environment and noted that it does not believe it is more likely than not that goodwill was impaired as of March 29, 2024.

Intangible Assets

March 29, 2024

December 29, 2023

Gross

Accumulated

Gross

Accumulated

Amortization

    

Amount

    

Amortization

    

Amount

    

Amortization

    

Period

(in thousands)

(in years)

Finite:

Backlog

$

8,306

$

8,148

$

8,306

$

8,095

1.0

Tradename

15,936

12,835

15,936

12,695

 

2.5

-

6.0

Non-compete agreements

1,613

1,452

1,613

1,440

4.0

-

5.0

Developed technology

15,810

14,791

15,810

14,521

8.0

Customer relationships

58,149

32,503

58,149

31,107

5.0

-

8.0

Total intangible assets

$

99,814

$

69,729

$

99,814

$

67,858

 

 

XML 21 R11.htm IDEA: XBRL DOCUMENT v3.24.1.u1
DERIVATIVE FINANCIAL INSTRUMENTS
3 Months Ended
Mar. 29, 2024
DERIVATIVE FINANCIAL INSTRUMENTS  
DERIVATIVE FINANCIAL INSTRUMENTS

5. DERIVATIVE FINANCIAL INSTRUMENTS

The Company uses certain interest rate derivative contracts to hedge interest rate exposures on its variable rate debt. The Company’s hedging program is not designated for trading or speculative purposes.

The Company recognizes derivative instruments as either assets or liabilities on the accompanying condensed consolidated balance sheets at fair value. The Company records changes in the fair value (i.e., gains or losses) of the derivatives that have been designated as cash flow hedges in its consolidated balance sheets as accumulated other comprehensive income (loss) and in its consolidated statements of comprehensive income (loss) as a loss or gain on cash flow hedge valuation.

On November 30, 2023, the Company entered into an interest rate swap agreement that the Company designated as cash flow hedge to fix the variable interest rate on a portion of the Company’s term loan (see Note 6, “Debt Obligations” for information regarding our indebtedness). The interest rate swap agreement has a total notional amount of $50.0 million, has a fixed annual interest rate of 4.77%, and expires on September 29, 2026. As of March 29, 2024, the effective portion of the Company’s interest rate swap agreement designated as a cash flow hedge before tax effects was $0.5 million, of which no amounts were reclassified from accumulated other comprehensive income (loss) to interest expense in the three months ended March 29, 2024. The Company expects to reclassify $0.1 million from accumulated other comprehensive income (loss) to interest expense within the next twelve months.

The fair values of the Company’s outstanding derivatives designated as hedging instruments were as follows:

    

    

Fair Value of Derivative

    

    

Instruments as of

Balance Sheet Location

March 29, 2024

December 29, 2023

(in thousands)

Interest rate swap agreement

Current assets

$

140

$

46

Interest rate swap agreement

Other noncurrent liabilities

(431)

(887)

 

The impact of the effective portions of derivative instruments in cash flow hedging relationships and fair value relationships on other comprehensive income (loss) was $0.4 million for the three months ended March 29, 2024.

The accumulated balances and reporting period activities for the periods below related to reclassifications out of accumulated other comprehensive income (loss) are summarized as follows:

Gain (Loss) on

Accumulated Other

    

Derivative Instruments

    

Comprehensive Income (Loss)

(in thousands)

Balances at December 29, 2023

$

(664)

$

(664)

Other comprehensive income (loss) before reclassifications

549

549

Amounts reclassified from accumulated other comprehensive income (loss):

Income tax benefit (expense) related to derivative instruments

(115)

(115)

Net current-period other comprehensive income (loss)

434

434

Balances at March 29, 2024

$

(230)

$

(230)

 

XML 22 R12.htm IDEA: XBRL DOCUMENT v3.24.1.u1
DEBT OBLIGATIONS
3 Months Ended
Mar. 29, 2024
DEBT OBLIGATIONS  
DEBT OBLIGATIONS

6. DEBT OBLIGATIONS

Debt obligations, excluding obligations under finance leases (see Note 7, Leases, below), consisted of the following:

    

March 29,

    

December 29,

2024

2023

(in thousands)

Outstanding borrowings on Term Loan

$

96,250

$

98,125

Outstanding borrowings on Revolving Credit Facility

Other debt agreements

174

327

Total debt

96,424

98,452

Issuance costs and debt discounts

(929)

(1,021)

Subtotal

95,495

97,431

Less current portion of long-term debt

 

8,924

 

8,452

Long-term debt portion

$

86,571

$

88,979

 

The credit agreement governing the Company’s Term Loan and Revolving Credit Facility require the Company to comply with certain financial obligations, including a maximum Net Leverage Ratio and a minimum Fixed Charge Coverage Ratio (as defined in the credit agreement governing the Term Loan and Revolving Credit Facility). The credit agreement also contains customary restrictive covenants. As of March 29, 2024, the Company was in compliance with all these covenants.

In addition, as of March 29, 2024, the Company’s composite interest rate, exclusive of the effects of upfront fees, undrawn fees and issuance cost amortization, was 7.7%.

XML 23 R13.htm IDEA: XBRL DOCUMENT v3.24.1.u1
LEASES
3 Months Ended
Mar. 29, 2024
LEASES  
LEASES

7. LEASES

The Company leases certain office facilities under long-term, non-cancellable operating leases that expire at various dates through 2029. In addition, the Company is obligated under finance leases for certain furniture and office equipment that expire at various dates through 2028.

From time to time, the Company enters into non-cancelable leases for some of its facility and equipment needs. These leases allow the Company to conserve cash by paying a monthly lease rental fee for the use of facilities and equipment rather than purchasing them. The Company’s leases typically have remaining terms ranging from one to eight years, some of which may include options to extend the leases for up to five years, and some of which may include options to terminate the leases within one year. Currently, all of the Company’s leases contain fixed payment terms. The Company may decide to cancel or terminate a lease before the end of its term, in which case the Company is typically liable to the lessor for the remaining lease payments under the term of the lease. Additionally, all of the Company’s month-to-month leases are cancelable by the Company or the lessor, at any time, and are not included in the Company’s right-of-use asset or lease liability. As of March 29, 2024, the Company had no leases with residual value guarantees. Typically, the Company has purchase options on the equipment underlying its long-term leases. The Company may exercise some of these purchase options when the need for equipment is on-going and the purchase option price is attractive. Nonperformance-related default covenants, cross-default provisions, subjective default provisions and material adverse change clauses contained in material lease agreements, if any, are also evaluated to determine whether those clauses affect lease classification in accordance with ASC Topic 842-10-25. Leases are accounted for as operating or financing leases, depending on the terms of the lease.

Financing Leases

The Company leases certain equipment under financing leases. The economic substance of the leases is a financing transaction for acquisition of equipment and leasehold improvements. Accordingly, the right-of-use assets for these leases are included in the balance sheets in equipment and leasehold improvements, net of accumulated depreciation, with a corresponding amount recorded in current portion of financing lease obligations or noncurrent portion of financing lease obligations, as appropriate. The financing lease assets are amortized over the life of the lease or, if shorter, the life of the leased asset, on a straight-line basis and included in depreciation expense. The interest associated with financing lease obligations is included in interest expense.

 

Right-of-use assets

Operating leases are included in right-of-use assets, and current portion of lease liability and noncurrent portion of lease liability, as appropriate. Right-of-use assets and lease liabilities are recognized based on the present value of the future minimum lease payments over the lease term at commencement date. As most of the Company’s leases do not provide an implicit rate to calculate present value, the Company determines this rate by estimating the Company’s incremental borrowing rate at the lease commencement date. The right-of-use asset also includes any lease payments made and initial direct costs incurred at lease commencement and excludes lease incentives. The Company’s lease terms may include options to extend or terminate the lease when it is reasonably certain that the Company will exercise that option. Lease expense for minimum lease payments is recognized on a straight-line basis over the lease term.

The following is a summary of the Company’s lease expense:

Three Months Ended

March 29,

March 31,

2024

    

2023

(in thousands)

Operating lease cost

$

1,527

$

1,493

Sublease Income

(14)

Finance lease cost:

Amortization of assets

355

311

Interest on lease liabilities

31

22

Total net lease cost

$

1,899

$

1,826

 

The following is a summary of lease information presented on the Company’s consolidated balance sheet:

March 29,

    

December 29,

2024

2023

(in thousands)

Operating leases:

Right-of-use assets

$

12,803

$

12,465

 

 

Lease liability

$

4,677

$

4,537

Lease liability, less current portion

 

9,948

 

9,758

Total lease liabilities

$

14,625

$

14,295

 

 

Finance leases (included in equipment and leasehold improvements, net):

Equipment and leasehold improvements, net

$

6,245

$

6,139

Accumulated depreciation

 

(4,099)

 

(3,837)

Total equipment and leasehold improvements, net

$

2,146

$

2,302

 

Finance lease obligations

$

1,111

$

1,186

Finance lease obligations, less current portion

1,112

1,184

Total finance lease obligations

$

2,223

$

2,370

Weighted average remaining lease term (in years):

Operating Leases

3.32

3.43

Finance Leases

2.25

2.31

Weighted average discount rate:

Operating Leases

6.67

%

6.09

%

Finance Leases

5.59

%

5.19

%

 

Rent expense was $1.7 million and $1.6 million for the three months ended March 29, 2024 and March 31, 2023, respectively.

The following is a summary of other information and supplemental cash flow information related to finance and operating leases:

Three Months Ended

March 29,

March 31,

2024

    

2023

(in thousands)

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

Operating cash flow from operating leases

$

1,569

$

1,570

Operating cash flow from finance leases

31

22

Financing cash flow from finance leases

345

303

Right-of-use assets obtained in exchange for lease liabilities:

Operating leases

$

1,627

$

2,120

 

The following is a summary of the maturities of lease liabilities as of March 29, 2024:

    

Operating

    

Finance

 

(in thousands)

Fiscal year:

Remainder of 2024

$

4,254

$

1,013

2025

 

5,069

 

782

2026

 

4,235

448

2027

1,935

112

2028

1,108

 

18

2029 and thereafter

 

94

 

Total lease payments

16,695

2,373

Less: Imputed interest

 

(2,070)

(150)

Total lease obligations

 

14,625

2,223

Less: Current obligations

 

4,677

1,111

Noncurrent lease obligations

$

9,948

$

1,112

 

The imputed interest for finance lease obligations represents the interest component of finance leases that will be recognized as interest expense in future periods. The financing component for operating lease obligations represents the effect of discounting the operating lease payments to their present value.

XML 24 R14.htm IDEA: XBRL DOCUMENT v3.24.1.u1
COMMITMENTS AND VARIABLE INTEREST ENTITIES
3 Months Ended
Mar. 29, 2024
COMMITMENTS AND VARIABLE INTEREST ENTITIES  
COMMITMENTS AND VARIABLE INTEREST ENTITIES

8. COMMITMENTS AND VARIABLE INTEREST ENTITIES

Employee Benefit Plans

The Company has a qualified profit sharing plan pursuant to Code Section 401(a) and qualified cash or deferred arrangement pursuant to Code Section 401(k) covering all employees. Employees may elect to contribute up to 50% of their compensation limited to the amount allowed by tax laws. Company contributions are made solely at the discretion of the Company’s board of directors.

The Company’s defined contribution plan (the “Plan”) covers employees who have completed three months of service and who have attained 21 years of age. The Company elects to make matching contributions equal to 50% of the participants’ contributions to the Plan, up to 6% of the individual participant’s compensation, and subject to a maximum of $3,000 per employee. Under the Plan, the Company may make discretionary contributions to employee accounts.

During the three months ended March 29, 2024 and March 31, 2023, the Company made matching contributions of $1.1 million and $1.0 million, respectively.

Variable Interest Entities

On March 4, 2016, the Company and the Company’s wholly-owned subsidiary, WES, acquired substantially all of the assets of Genesys and assumed certain specified liabilities of Genesys (collectively, the “Purchase”) pursuant to an Asset Purchase and Merger Agreement, dated as of February 26, 2016 (the “Agreement”), by and among Willdan Group, Inc., WES, WESGEN (as defined below), Genesys and Ronald W. Mineo (“Mineo”) and Robert J. Braun (“Braun” and, together with Mineo, the “Genesys Shareholders”). On March 5, 2016, pursuant to the terms of the Agreement, WESGEN, Inc., a non-affiliated corporation (“WESGEN”), merged (the “Merger” and, together with the Purchase, the “Acquisition”) with Genesys, with Genesys remaining as the surviving corporation. Genesys was acquired to strengthen the Company’s power engineering capability in the northeastern U.S., and also to increase client exposure and experience with universities.

Genesys continues to be a professional corporation organized under the laws of the State of New York, wholly-owned by one or more licensed engineers. Pursuant to New York law, the Company does not own capital stock of Genesys. The Company has entered into an agreement with the Shareholder of Genesys pursuant to which the Shareholder will be prohibited from selling, transferring or encumbering the Shareholder’s ownership interest in Genesys without the Company’s consent. Notwithstanding the Company’s rights regarding the transfer of Genesys’s stock, the Company does not have control over the professional decision making of Genesys’s engineering services. The Company has entered into an administrative services agreement with Genesys pursuant to which WES will provide Genesys with ongoing administrative, operational and other non-professional support services. Genesys pays WES a service fee, which consists of all of the costs incurred by WES to provide the administrative services to Genesys plus ten percent of such costs, as well as any other costs that relate to professional service supplies and personnel costs. As a result of the administrative services agreement, the Company absorbs the expected losses of Genesys through its deferral of Genesys’s service fees owed to WES.

The Company manages Genesys and has the power to direct the activities that most significantly impact Genesys’s performance, in addition to being obligated to absorb expected losses from Genesys. Accordingly, the Company is the primary beneficiary of Genesys and consolidates Genesys as a VIE. In addition, the Company concluded there is no noncontrolling interest related to the consolidation of Genesys because the Company determined that (i) the shareholder of Genesys does not have more than a nominal amount of equity investment at risk, (ii) WES absorbs the expected losses of Genesys through its deferral of Genesys’s service fees owed to WES and the Company has, since entering into the administrative services agreement, had to continuously defer service fees for Genesys, and (iii) the Company believes Genesys will continue to have a shortfall on payment of its service fees for the foreseeable future, leaving no expected residual returns for the shareholder. As of March 29, 2024, the Company had one VIE — Genesys.

XML 25 R15.htm IDEA: XBRL DOCUMENT v3.24.1.u1
SEGMENT AND GEOGRAPHICAL INFORMATION
3 Months Ended
Mar. 29, 2024
SEGMENT AND GEOGRAPHICAL INFORMATION  
SEGMENT AND GEOGRAPHICAL INFORMATION

9. SEGMENT AND GEOGRAPHICAL INFORMATION

Segment Information

The Company’s two segments are Energy, and Engineering and Consulting, and the Company’s chief operating decision maker, which continues to be its chief executive officer, receives and reviews financial information in this format.

There were no intersegment sales during the three months ended March 29, 2024 and March 31, 2023. The Company’s chief operating decision maker evaluates the performance of each segment based upon income or loss from operations before income taxes. Certain segment asset information including expenditures for long-lived assets has not been presented as it is not reported to or reviewed by the chief operating decision maker. In addition, enterprise-wide service line contract revenue is not included as it is impracticable to report this information for each group of similar services.

Financial information with respect to the reportable segments and reconciliation to the amounts reported in the Company’s Condensed Consolidated Financial Statements is as follows:

Engineering

Unallocated

Consolidated

    

Energy

    

& Consulting

    

Corporate

    

Intersegment

    

Total

(in thousands)

Fiscal Three Months Ended March 29, 2024

Contract revenue

$

100,746

$

21,743

$

-

$

-

$

122,489

Depreciation and amortization

3,236

356

-

-

3,592

Interest expense, net

1

-

2,136

-

2,137

Segment profit (loss) before income tax expense

4,311

2,344

(2,727)

-

3,928

Income tax expense (benefit)

1,083

588

(685)

-

986

Net income (loss)

3,229

1,756

(2,043)

-

2,942

Segment assets (1)

318,808

26,613

85,609

(23,130)

407,900

Fiscal Three Months Ended March 31, 2023

Contract revenue

$

83,285

$

19,318

$

-

$

-

$

102,603

Depreciation and amortization

3,924

276

-

-

4,200

Interest expense, net

2

-

2,464

-

2,466

Segment profit (loss) before income tax expense

2,771

2,587

(3,670)

-

1,688

Income tax expense (benefit)

1,241

1,158

(1,643)

-

756

Net income (loss)

1,530

1,428

(2,026)

-

932

Segment assets (1)

323,578

23,587

69,332

(23,130)

393,367

(1)Segment assets are presented net of intercompany receivables.

 

The following tables provide information about disaggregated revenue by contract type, client type and geographical region:

    

Three months ended March 29, 2024

    

Energy

    

Engineering and
Consulting

    

Total

    

(in thousands)

Contract Type

Time-and-materials

$

8,537

$

16,399

$

24,936

Unit-based

46,957

4,511

51,468

Fixed price

45,252

833

46,085

Total (1)

$

100,746

$

21,743

$

122,489

Client Type

Commercial

$

7,203

$

1,580

$

8,783

Government

35,820

20,098

55,918

Utilities (2)

57,723

65

57,788

Total (1)

$

100,746

$

21,743

$

122,489

Geography (3)

Domestic

$

100,746

$

21,743

$

122,489

    

Three months ended March 31, 2023

    

Energy

    

Engineering and
Consulting

    

Total

    

(in thousands)

Contract Type

Time-and-materials

$

7,709

$

14,554

$

22,263

Unit-based

44,927

3,616

48,543

Fixed price

30,649

1,148

31,797

Total (1)

$

83,285

$

19,318

$

102,603

Client Type

Commercial

$

6,719

$

1,164

$

7,883

Government

26,075

18,095

44,170

Utilities (2)

50,491

59

50,550

Total (1)

$

83,285

$

19,318

$

102,603

Geography (3)

Domestic

$

83,285

$

19,318

$

102,603

(1)Amounts may not add to the totals due to rounding.
(2)Includes the portion of revenue related to small business programs paid by the end user/customer.
(3)Revenue from the Company’s foreign operations were not material for the three months ended March 29, 2024 and March 31, 2023.

 

Geographical Information

Substantially all of the Company’s consolidated revenue was derived from its operations in the U.S. The Company operates through a network of offices spread across 22 U.S. states, the District of Columbia, the Commonwealth of Puerto Rico, and Canada. Revenues from the Company’s Puerto Rican and Canadian operations were not material for the three months ended March 29, 2024 nor the three months ended March 31, 2023.

Customer Concentration

For the three months ended March 29, 2024 and March 31, 2023, the Company’s top 10 customers accounted for 49.2%, and 52.2%, respectively, of the Company’s consolidated contract revenue.

For the three months ended March 29, 2024, the Company had no individual customers that accounted for more than 10% of its consolidated contract revenue. For the three months ended March 31, 2023, the Company had one customer, the Los Angeles Department of Water and Power (“LADWP”), that accounted for 11.1% of its consolidated contract revenues.

On a segment basis, the Company had individual customers that accounted for more than 10% of its segment contract revenues. For the three months ended March 29, 2024, the Company derived 10.7% of its Energy segment revenues from one customer, LADWP, and no single customer accounted for 10% or more of the Company’s Engineering and Consulting segment revenues. For the three months ended March 31, 2023, the Company derived 13.7% of its Energy segment revenues from one customer, LADWP, and no single customer accounted for 10% or more of its Engineering and Consulting segment revenues.

On a geographical basis, the Company’s largest clients are based in California and New York. For the three months ended March 29, 2024 and March 31, 2023, services provided to clients in California accounted for 43.5% and 42.4%, respectively, of the Company’s consolidated contract revenue, and services provided to clients in New York accounted for 27.1% and 24.5%, respectively, of the Company’s consolidated contract revenue. 

XML 26 R16.htm IDEA: XBRL DOCUMENT v3.24.1.u1
INCOME TAXES
3 Months Ended
Mar. 29, 2024
INCOME TAXES  
INCOME TAXES

10. INCOME TAXES

Income taxes are accounted for under the asset and liability method. Deferred tax assets and liabilities are recognized for the future tax consequences of temporary differences between the financial reporting basis and tax basis of the Company’s assets and liabilities, subject to a judgmental assessment of the recoverability of deferred tax assets. Deferred tax assets and liabilities are measured using enacted tax rates expected to apply to taxable income in the years in which those temporary differences are expected to be recovered or settled. The effect on deferred tax assets and liabilities of a change in tax rates is recognized in income in the period that includes the enactment date. A valuation allowance is recorded when it is more likely than not that some of the deferred tax assets may not be realized. Significant judgment is applied when assessing the need for valuation allowances and includes the evaluation of historical income (loss) adjusted for the effects of non-recurring items and the impact of recent business combinations. Areas of estimation include the Company’s consideration of future taxable income which is driven by verifiable signed contracts and ongoing prudent and feasible tax planning strategies. Should a change in circumstances lead to a change in judgment about the utilization of deferred tax assets in future years, the Company would adjust the related valuation allowances in the period that the change in circumstances occurs, along with a corresponding increase or charge to income.

At the end of fiscal year 2023, the Company’s total valuation allowance was $1.2 million, remaining unchanged from the end of fiscal year 2022. As of March 29, 2024, the Company assessed all available positive and negative evidence available to determine whether, based on the weight of that evidence, there was a change in judgment related to the utilization of deferred tax assets in future years. The Company concluded that as of March 29, 2024, the valuation allowance for the Company’s deferred tax assets was appropriate in accordance with ASC 740. Consequently, there was no change to the valuation allowance during the three months ended March 29, 2024.

For acquired business entities, if the Company identifies changes to acquired deferred tax asset valuation allowances or liabilities related to uncertain tax positions during the measurement period and they relate to new information obtained about facts and circumstances that existed as of the acquisition date, those changes are considered a measurement period adjustment, and the Company records the offset to goodwill. The Company records all other changes to deferred tax asset valuation allowances and liabilities related to uncertain tax positions in current period income tax expense.

The Company recognizes the tax benefit from uncertain tax positions if it is more likely than not that the tax positions will be sustained on examination by the tax authorities, based on the technical merits of the position. The tax benefit is measured based on the largest benefit that has a greater than 50% likelihood of being realized upon ultimate settlement. The Company recognizes interest and penalties related to unrecognized tax benefits in income tax expense. During the three months ended March 29, 2024, and the three months ended March 31, 2023, the Company did not record a liability for uncertain tax positions.

Based on the Company’s estimates and determination of an effective tax rate for the year, the Company recorded an income tax expense of $1.0 million for the three months ended March 29, 2024, compared to an income tax expense of $0.8 million for the three months ended March 31, 2023. During the three months ended March 29, 2024, the difference between the effective tax rate and the federal statutory rate was primarily attributable to state taxes, non-deductible stock compensation, nondeductible executive compensation, research and development tax credits, and the commercial building energy efficiency deduction. During the three months ended March 31, 2023, the difference between the effective tax rate and the federal statutory rate was primarily attributable to state taxes, non-deductible stock compensation, nondeductible executive compensation, research and development tax credits, and the commercial building energy efficiency deduction.

XML 27 R17.htm IDEA: XBRL DOCUMENT v3.24.1.u1
EARNINGS PER SHARE (EPS)
3 Months Ended
Mar. 29, 2024
EARNINGS PER SHARE (EPS)  
EARNINGS PER SHARE (EPS)

11. EARNINGS PER SHARE (“EPS”)

Basic EPS is computed by dividing net income available to common stockholders by the weighted-average number of common shares outstanding. Diluted EPS is computed by dividing net income by the weighted-average number of common shares outstanding and dilutive potential common shares for the period. Potential common shares include the weighted-average dilutive effects of outstanding stock options and restricted stock awards using the treasury stock method.

The following table sets forth the number of weighted-average common shares outstanding used to compute basic and diluted EPS:

Three months ended

March 29,

March 31,

    

2024

    

2023

(in thousands, except per share amounts)

Net income (loss)

$

2,942

$

932

Weighted-average common shares outstanding

 

13,605

 

13,266

Effect of dilutive stock options and restricted stock awards

 

305

 

204

Weighted-average common shares outstanding-diluted

 

13,910

 

13,470

Earnings (Loss) per share:

Basic

$

0.22

$

0.07

Diluted

$

0.21

$

0.07

 

For the three months ended March 29, 2024 and March 31, 2023, the Company excluded 335,000 and 397,000 common shares subject to outstanding equity awards, respectively, from the calculation of diluted shares because their impact would have been anti-dilutive.

XML 28 R18.htm IDEA: XBRL DOCUMENT v3.24.1.u1
CONTINGENCIES
3 Months Ended
Mar. 29, 2024
CONTINGENCIES  
CONTINGENCIES

12. CONTINGENCIES

Claims and Lawsuits

The Company is subject to claims and lawsuits from time to time, including those alleging professional errors or omissions that arise in the ordinary course of business against firms that operate in the engineering and consulting professions. The Company carries professional liability insurance, subject to certain deductibles and policy limits, for such claims as they arise and may from time to time establish reserves for litigation that is considered probable of a loss.

In accordance with accounting standards regarding loss contingencies, the Company accrues an undiscounted liability for those contingencies where the incurrence of a loss is probable and the amount can be reasonably estimated, and discloses the amount accrued and an estimate of any reasonably possible loss in excess of the amount accrued, if such disclosure is necessary for the Company’s financial statements not to be misleading. The Company does not accrue liabilities when the likelihood that the liability has been incurred is probable but the amount cannot be reasonably estimated, or when the liability is believed to be only reasonably possible or remote.

Because litigation outcomes are inherently unpredictable, the Company’s evaluation of legal proceedings often involves a series of complex assessments by management about future events and can rely heavily on estimates and assumptions. If the assessments indicate that loss contingencies that could be material to any one of the Company’s financial statements are not probable, but are reasonably possible, or are probable, but cannot be estimated, then the Company will disclose the nature of the loss contingencies, together with an estimate of the possible loss or a statement that such loss is not reasonably estimable. While the consequences of certain unresolved proceedings are not presently determinable, and a reasonable estimate of the probable and reasonably possible loss or range of loss in excess of amounts accrued for such proceedings cannot be made, an adverse outcome from such proceedings could have a material adverse effect on the Company’s earnings in any given reporting period. However, in the opinion of the Company’s management, after consulting with legal counsel, and taking into account insurance coverage, the ultimate liability related to current outstanding claims and lawsuits is not expected to have a material adverse effect on the Company’s financial statements.

XML 29 R19.htm IDEA: XBRL DOCUMENT v3.24.1.u1
SUBSEQUENT EVENTS
3 Months Ended
Mar. 29, 2024
SUBSEQUENT EVENTS  
SUBSEQUENT EVENTS

13. SUBSEQUENT EVENTS

In accordance with ASC Topic 855, Subsequent Events, the Company evaluates subsequent events up until the date the Condensed Consolidated Financial Statements are issued. As of May 2, 2024, there were no subsequent events required to be reported.

 

XML 30 R20.htm IDEA: XBRL DOCUMENT v3.24.1.u1
ORGANIZATION AND OPERATIONS OF THE COMPANY (Policies)
3 Months Ended
Mar. 29, 2024
ORGANIZATION AND OPERATIONS OF THE COMPANY  
Basis of Presentation

The accounting policies followed by the Company are set forth in Part II, Item 8, Note 1, Organization and Operations of the Company, of the Notes to Consolidated Financial Statements included in the Company’s Annual Report on Form 10-K for the fiscal year ended December 29, 2023. In the opinion of management, all adjustments necessary to fairly state the Condensed Consolidated Financial Statements have been made. All such adjustments are of a normal, recurring nature. Certain information and footnote disclosures normally included in the Consolidated Financial Statements prepared in accordance with accounting principles generally accepted in the United States (“U.S. GAAP”) have been condensed or omitted pursuant to the rules and regulations of the Securities and Exchange Commission (“SEC”). These Condensed Consolidated Financial Statements and related notes thereto should be read in conjunction with the Consolidated Financial Statements and the notes thereto included in the Company’s Annual Report on Form 10-K for the fiscal year ended December 29, 2023. The results of operations for interim periods are not necessarily indicative of results to be expected for the full year.

Fiscal Years

Fiscal Years

The Company operates and reports its annual financial results based on 52 or 53-week periods ending on the Friday closest to December 31. The Company operates and reports its quarterly financial results based on the 13-week period ending on the Friday closest to June 30, September 30, and December 31 and the 13 or 14-week period ending on the Friday closest to March 31, as applicable. Fiscal year 2024, which ends on December 27, 2024, will be comprised of 52 weeks, with all quarters consisting of 13 weeks each. Fiscal year 2023, which ended on December 29, 2023, was comprised of 52 weeks, with all quarters consisting of 13 weeks each. All references to years in the notes to consolidated financial statements represent fiscal years.

Use of Estimates

Use of Estimates

The preparation of consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the consolidated financial statements. Estimates also affect the reported amounts of revenue and expenses during the reporting period. Actual results could differ from those estimates.

Accounting Pronouncements Recently Issued

Accounting Pronouncements Recently Issued

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” (“ASU 2023-09”). ASU 2023-09 amends the rules on income tax disclosures to require entities to disclose specific categories in the rate reconciliation, the income or loss from continuing operations before income tax expense or benefit (separated between domestic and foreign) and income tax expense or benefit from continuing operations (separated by federal, state, and foreign). In addition, ASU 2023-09 requires entities to disclose their income tax payments to international, federal, state, and local jurisdictions, among other changes. The amendments can be applied on a prospective basis although retrospective application is permitted. The amendments are effective for the fiscal years beginning after December 15, 2024, with early adoption permitted. The Company is currently evaluating the impact this update will have on its Consolidated Financial Statements.

In November 2023, the FASB issued ASU No. 2023-07, “Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures” (“ASU 2023-07”). ASU 2023-07 expands segment disclosure requirements through enhanced disclosures related to significant segment expenses that are regularly provided to the chief operating decision maker (“CODM”), a description of other segment items by reportable segment, and any additional measures of a segment's profit or loss used by the CODM when deciding how to allocate resources. All disclosure requirements under ASU 2023-07 are also required for public entities with a single reportable segment. The amendments are effective for the fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024. The Company is currently evaluating the impact this update will have on its Consolidated Financial Statements.

  

In October 2023, the FASB issued ASU No. 2023-06, “Disclosure Improvements: Codification Amendments in Response to the SEC’s Disclosure Update and Simplification Initiative” (“ASU 2023-06”). ASU 2023-06 amends U.S. GAAP to reflect updates and simplifications to certain disclosure and presentation requirements referred to FASB by the Securities and Exchange Commission (“SEC”). The targeted amendments incorporate 14 of the 27 disclosures referred by the SEC into codification. Each amendment in ASU 2023-06 is effective on either the date on which the SEC’s removal of the related disclosure requirement from Regulation S-X or Regulation S-K becomes effective, or on June 30, 2027, if the SEC has not removed the requirements by that date. The Company is currently evaluating the impact this update will have on its Consolidated Financial Statements.

 

XML 31 R21.htm IDEA: XBRL DOCUMENT v3.24.1.u1
REVENUES (Tables)
3 Months Ended
Mar. 29, 2024
REVENUES  
Schedule of Contracts by Reportable Segments and Type of Contracts

Segment

Contract Type

Revenue Recognition Method

Time-and-materials

Time-and-materials

Energy

Unit-based

Unit-based

Software license

Unit-based

Fixed price

Percentage-of-completion

Time-and-materials

Time-and-materials

Engineering and Consulting

Unit-based

Unit-based

Fixed price

Percentage-of-completion

 

XML 32 R22.htm IDEA: XBRL DOCUMENT v3.24.1.u1
SUPPLEMENTAL FINANCIAL STATEMENT DATA (Tables)
3 Months Ended
Mar. 29, 2024
SUPPLEMENTAL FINANCIAL STATEMENT DATA  
Schedule of reconciliation of cash and cash equivalents, and restricted cash

March 29,

December 29,

    

2024

    

2023

(in thousands)

Cash and cash equivalents

$

46,925

$

23,397

Restricted cash

 

 

Total cash, cash equivalents, and restricted cash shown in the consolidated statement of cash flows

$

46,925

$

23,397

 

Schedule of equipment and leasehold improvements

March 29,

December 29,

    

2024

    

2023

(in thousands)

Furniture and fixtures

$

4,403

$

4,379

Computer hardware and software

 

46,384

 

44,594

Leasehold improvements

 

3,466

 

3,382

Equipment under finance leases

 

6,245

 

6,139

Automobiles, trucks, and field equipment

 

3,388

 

3,373

Subtotal

 

63,886

 

61,867

Accumulated depreciation and amortization

 

(36,347)

 

(34,770)

Equipment and leasehold improvements, net

$

27,539

$

27,097

 

Schedule of accrued liabilities

March 29,

December 29,

    

2024

    

2023

(in thousands)

Accrued subcontractor costs

$

22,896

$

30,196

Accrued bonuses

4,542

14,423

Employee withholdings

 

4,779

 

3,123

Compensation and payroll taxes

 

4,163

 

3,125

Rebate and other

139

Accrued accounting costs and taxes

 

2,031

 

3,123

Total accrued liabilities

$

38,411

$

54,129

 

Schedule of changes in the carrying value of goodwill by reporting unit

December 29,

Additional

Additions /

March 29,

    

2023

    

Purchase Cost

    

Adjustments

    

2024

(in thousands)

Reporting Unit:

Energy

$

129,375

$

$

$

129,375

Engineering and Consulting

1,769

1,769

$

131,144

$

$

$

131,144

 

Schedule of gross amounts and accumulated amortization of acquired identifiable intangible assets with finite useful lives

March 29, 2024

December 29, 2023

Gross

Accumulated

Gross

Accumulated

Amortization

    

Amount

    

Amortization

    

Amount

    

Amortization

    

Period

(in thousands)

(in years)

Finite:

Backlog

$

8,306

$

8,148

$

8,306

$

8,095

1.0

Tradename

15,936

12,835

15,936

12,695

 

2.5

-

6.0

Non-compete agreements

1,613

1,452

1,613

1,440

4.0

-

5.0

Developed technology

15,810

14,791

15,810

14,521

8.0

Customer relationships

58,149

32,503

58,149

31,107

5.0

-

8.0

Total intangible assets

$

99,814

$

69,729

$

99,814

$

67,858

 

XML 33 R23.htm IDEA: XBRL DOCUMENT v3.24.1.u1
DERIVATIVE FINANCIAL INSTRUMENTS (Tables)
3 Months Ended
Mar. 29, 2024
DERIVATIVE FINANCIAL INSTRUMENTS  
Schedule of the fair values of outstanding derivatives designated as hedging instruments

    

    

Fair Value of Derivative

    

    

Instruments as of

Balance Sheet Location

March 29, 2024

December 29, 2023

(in thousands)

Interest rate swap agreement

Current assets

$

140

$

46

Interest rate swap agreement

Other noncurrent liabilities

(431)

(887)

 

Schedule of accumulated other comprehensive income (loss)

Gain (Loss) on

Accumulated Other

    

Derivative Instruments

    

Comprehensive Income (Loss)

(in thousands)

Balances at December 29, 2023

$

(664)

$

(664)

Other comprehensive income (loss) before reclassifications

549

549

Amounts reclassified from accumulated other comprehensive income (loss):

Income tax benefit (expense) related to derivative instruments

(115)

(115)

Net current-period other comprehensive income (loss)

434

434

Balances at March 29, 2024

$

(230)

$

(230)

 

XML 34 R24.htm IDEA: XBRL DOCUMENT v3.24.1.u1
DEBT OBLIGATIONS (Tables)
3 Months Ended
Mar. 29, 2024
DEBT OBLIGATIONS  
Schedule of debt obligations, excluding obligations under capital leases

    

March 29,

    

December 29,

2024

2023

(in thousands)

Outstanding borrowings on Term Loan

$

96,250

$

98,125

Outstanding borrowings on Revolving Credit Facility

Other debt agreements

174

327

Total debt

96,424

98,452

Issuance costs and debt discounts

(929)

(1,021)

Subtotal

95,495

97,431

Less current portion of long-term debt

 

8,924

 

8,452

Long-term debt portion

$

86,571

$

88,979

 

XML 35 R25.htm IDEA: XBRL DOCUMENT v3.24.1.u1
LEASES (Tables)
3 Months Ended
Mar. 29, 2024
LEASES  
Summary of the Lease Expense

Three Months Ended

March 29,

March 31,

2024

    

2023

(in thousands)

Operating lease cost

$

1,527

$

1,493

Sublease Income

(14)

Finance lease cost:

Amortization of assets

355

311

Interest on lease liabilities

31

22

Total net lease cost

$

1,899

$

1,826

 

Summary of Lease Information Presented on the Condensed Consolidated Balance Sheet

March 29,

    

December 29,

2024

2023

(in thousands)

Operating leases:

Right-of-use assets

$

12,803

$

12,465

 

 

Lease liability

$

4,677

$

4,537

Lease liability, less current portion

 

9,948

 

9,758

Total lease liabilities

$

14,625

$

14,295

 

 

Finance leases (included in equipment and leasehold improvements, net):

Equipment and leasehold improvements, net

$

6,245

$

6,139

Accumulated depreciation

 

(4,099)

 

(3,837)

Total equipment and leasehold improvements, net

$

2,146

$

2,302

 

Finance lease obligations

$

1,111

$

1,186

Finance lease obligations, less current portion

1,112

1,184

Total finance lease obligations

$

2,223

$

2,370

Weighted average remaining lease term (in years):

Operating Leases

3.32

3.43

Finance Leases

2.25

2.31

Weighted average discount rate:

Operating Leases

6.67

%

6.09

%

Finance Leases

5.59

%

5.19

%

 

Summary of Other Information and Supplemental Cash Flow Information Related to Finance and Operating Leases

Three Months Ended

March 29,

March 31,

2024

    

2023

(in thousands)

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

Operating cash flow from operating leases

$

1,569

$

1,570

Operating cash flow from finance leases

31

22

Financing cash flow from finance leases

345

303

Right-of-use assets obtained in exchange for lease liabilities:

Operating leases

$

1,627

$

2,120

 

Summary of the Maturities of Operating Lease Liabilities

    

Operating

    

Finance

 

(in thousands)

Fiscal year:

Remainder of 2024

$

4,254

$

1,013

2025

 

5,069

 

782

2026

 

4,235

448

2027

1,935

112

2028

1,108

 

18

2029 and thereafter

 

94

 

Total lease payments

16,695

2,373

Less: Imputed interest

 

(2,070)

(150)

Total lease obligations

 

14,625

2,223

Less: Current obligations

 

4,677

1,111

Noncurrent lease obligations

$

9,948

$

1,112

 

Summary of the Maturities of Finance Lease Liabilities

    

Operating

    

Finance

 

(in thousands)

Fiscal year:

Remainder of 2024

$

4,254

$

1,013

2025

 

5,069

 

782

2026

 

4,235

448

2027

1,935

112

2028

1,108

 

18

2029 and thereafter

 

94

 

Total lease payments

16,695

2,373

Less: Imputed interest

 

(2,070)

(150)

Total lease obligations

 

14,625

2,223

Less: Current obligations

 

4,677

1,111

Noncurrent lease obligations

$

9,948

$

1,112

 

XML 36 R26.htm IDEA: XBRL DOCUMENT v3.24.1.u1
SEGMENT AND GEOGRAPHICAL INFORMATION (Tables)
3 Months Ended
Mar. 29, 2024
SEGMENT AND GEOGRAPHICAL INFORMATION  
Schedule of financial information with respect to the reportable segments

Engineering

Unallocated

Consolidated

    

Energy

    

& Consulting

    

Corporate

    

Intersegment

    

Total

(in thousands)

Fiscal Three Months Ended March 29, 2024

Contract revenue

$

100,746

$

21,743

$

-

$

-

$

122,489

Depreciation and amortization

3,236

356

-

-

3,592

Interest expense, net

1

-

2,136

-

2,137

Segment profit (loss) before income tax expense

4,311

2,344

(2,727)

-

3,928

Income tax expense (benefit)

1,083

588

(685)

-

986

Net income (loss)

3,229

1,756

(2,043)

-

2,942

Segment assets (1)

318,808

26,613

85,609

(23,130)

407,900

Fiscal Three Months Ended March 31, 2023

Contract revenue

$

83,285

$

19,318

$

-

$

-

$

102,603

Depreciation and amortization

3,924

276

-

-

4,200

Interest expense, net

2

-

2,464

-

2,466

Segment profit (loss) before income tax expense

2,771

2,587

(3,670)

-

1,688

Income tax expense (benefit)

1,241

1,158

(1,643)

-

756

Net income (loss)

1,530

1,428

(2,026)

-

932

Segment assets (1)

323,578

23,587

69,332

(23,130)

393,367

(1)Segment assets are presented net of intercompany receivables.

 

Schedule of disaggregation of revenue

    

Three months ended March 29, 2024

    

Energy

    

Engineering and
Consulting

    

Total

    

(in thousands)

Contract Type

Time-and-materials

$

8,537

$

16,399

$

24,936

Unit-based

46,957

4,511

51,468

Fixed price

45,252

833

46,085

Total (1)

$

100,746

$

21,743

$

122,489

Client Type

Commercial

$

7,203

$

1,580

$

8,783

Government

35,820

20,098

55,918

Utilities (2)

57,723

65

57,788

Total (1)

$

100,746

$

21,743

$

122,489

Geography (3)

Domestic

$

100,746

$

21,743

$

122,489

    

Three months ended March 31, 2023

    

Energy

    

Engineering and
Consulting

    

Total

    

(in thousands)

Contract Type

Time-and-materials

$

7,709

$

14,554

$

22,263

Unit-based

44,927

3,616

48,543

Fixed price

30,649

1,148

31,797

Total (1)

$

83,285

$

19,318

$

102,603

Client Type

Commercial

$

6,719

$

1,164

$

7,883

Government

26,075

18,095

44,170

Utilities (2)

50,491

59

50,550

Total (1)

$

83,285

$

19,318

$

102,603

Geography (3)

Domestic

$

83,285

$

19,318

$

102,603

(1)Amounts may not add to the totals due to rounding.
(2)Includes the portion of revenue related to small business programs paid by the end user/customer.
(3)Revenue from the Company’s foreign operations were not material for the three months ended March 29, 2024 and March 31, 2023.

 

XML 37 R27.htm IDEA: XBRL DOCUMENT v3.24.1.u1
EARNINGS PER SHARE (EPS) (Tables)
3 Months Ended
Mar. 29, 2024
EARNINGS PER SHARE (EPS)  
Schedule of number of weighted-average common shares outstanding used to compute basic and diluted EPS

Three months ended

March 29,

March 31,

    

2024

    

2023

(in thousands, except per share amounts)

Net income (loss)

$

2,942

$

932

Weighted-average common shares outstanding

 

13,605

 

13,266

Effect of dilutive stock options and restricted stock awards

 

305

 

204

Weighted-average common shares outstanding-diluted

 

13,910

 

13,470

Earnings (Loss) per share:

Basic

$

0.22

$

0.07

Diluted

$

0.21

$

0.07

 

XML 38 R28.htm IDEA: XBRL DOCUMENT v3.24.1.u1
ORGANIZATION AND OPERATIONS OF THE COMPANY - Segment Information (Details) - segment
3 Months Ended
Mar. 29, 2024
Mar. 31, 2023
Segment Information    
Number of reporting segments 2 2
XML 39 R29.htm IDEA: XBRL DOCUMENT v3.24.1.u1
ORGANIZATION AND OPERATIONS OF THE COMPANY - Fiscal Years (Details)
3 Months Ended 12 Months Ended
Dec. 27, 2024
Sep. 27, 2024
Jun. 28, 2024
Mar. 29, 2024
Dec. 29, 2023
Sep. 29, 2023
Jun. 30, 2023
Mar. 31, 2023
Dec. 27, 2024
Dec. 29, 2023
Entity Information                    
Length of fiscal period 91 days 91 days 91 days 91 days 91 days 91 days 91 days 91 days 364 days 364 days
Minimum                    
Entity Information                    
Length of fiscal period       91 days       91 days 364 days 364 days
Maximum                    
Entity Information                    
Length of fiscal period       98 days       98 days 371 days 371 days
XML 40 R30.htm IDEA: XBRL DOCUMENT v3.24.1.u1
REVENUES - Segment Information (Details) - segment
3 Months Ended
Mar. 29, 2024
Mar. 31, 2023
Segment Information    
Number of reporting segments 2 2
XML 41 R31.htm IDEA: XBRL DOCUMENT v3.24.1.u1
REVENUES - General Information (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 29, 2024
Mar. 31, 2023
Dec. 29, 2023
Revenue      
Payroll taxes, bonuses and employee benefit costs for all Company personnel $ 26,509 $ 22,385  
Revenue of the entity recorded in which it acts solely in the capacity of an agent 0    
Retained accounts receivable $ 16,100   $ 14,300
Maximum      
Revenue      
Percent of revenue (as a percent) 3.00%    
Minimum      
Revenue      
Percent of revenue (as a percent) 2.00%    
Cost of Sales      
Revenue      
Payroll taxes, bonuses and employee benefit costs for all Company personnel $ 0    
Allocation of facilities costs to contract revenue $ 0    
XML 42 R32.htm IDEA: XBRL DOCUMENT v3.24.1.u1
SUPPLEMENTAL FINANCIAL STATEMENT DATA - Restricted Cash (Details) - USD ($)
$ in Thousands
Mar. 29, 2024
Dec. 29, 2023
Mar. 31, 2023
Dec. 30, 2022
Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents        
Cash and cash equivalents $ 46,925 $ 23,397    
Restricted cash 0 0    
Total cash, cash equivalents, and restricted cash shown in the consolidated statement of cash flows $ 46,925 $ 23,397 $ 17,853 $ 19,485
Restricted Cash, Statement of Financial Position Restricted cash Restricted cash    
XML 43 R33.htm IDEA: XBRL DOCUMENT v3.24.1.u1
SUPPLEMENTAL FINANCIAL STATEMENT DATA - Equipment and Leasehold Improvements, Net - Tabular Disclosure (Details) - USD ($)
$ in Thousands
Mar. 29, 2024
Dec. 29, 2023
Equipment and Leasehold Improvements    
Equipment under finance leases $ 6,245 $ 6,139
Equipment and leasehold improvements, gross 63,886 61,867
Accumulated depreciation and amortization (36,347) (34,770)
Total equipment and leasehold improvements, net 27,539 27,097
Furniture and Fixtures    
Equipment and Leasehold Improvements    
Equipment and leasehold improvements 4,403 4,379
Computer Hardware and Software    
Equipment and Leasehold Improvements    
Equipment and leasehold improvements 46,384 44,594
Leasehold Improvements    
Equipment and Leasehold Improvements    
Equipment and leasehold improvements 3,466 3,382
Automobiles Trucks and Field Equipment    
Equipment and Leasehold Improvements    
Equipment and leasehold improvements $ 3,388 $ 3,373
XML 44 R34.htm IDEA: XBRL DOCUMENT v3.24.1.u1
SUPPLEMENTAL FINANCIAL STATEMENT DATA - Equipment and Leasehold Improvements, Net - Depreciation and Amortization Expense (Details) - USD ($)
$ in Thousands
3 Months Ended 12 Months Ended
Mar. 29, 2024
Mar. 31, 2023
Dec. 29, 2023
Amortization Expense      
Amortization expense $ 355 $ 311 $ 1,300
XML 45 R35.htm IDEA: XBRL DOCUMENT v3.24.1.u1
SUPPLEMENTAL FINANCIAL STATEMENT DATA - Accrued Liabilities (Details) - USD ($)
$ in Thousands
Mar. 29, 2024
Dec. 29, 2023
Accrued Liabilities    
Accrued subcontractor costs $ 22,896 $ 30,196
Accrued bonuses 4,542 14,423
Employee withholdings 4,779 3,123
Compensation and payroll taxes 4,163 3,125
Rebate and other   139
Accrued accounting costs and taxes 2,031 3,123
Total accrued liabilities $ 38,411 $ 54,129
XML 46 R36.htm IDEA: XBRL DOCUMENT v3.24.1.u1
SUPPLEMENTAL FINANCIAL STATEMENT DATA - Goodwill (Details)
$ in Thousands
Mar. 29, 2024
USD ($)
Changes in carrying value of goodwill  
Goodwill at beginning of period $ 131,144
Goodwill at end of period 131,144
Energy  
Changes in carrying value of goodwill  
Goodwill at beginning of period 129,375
Goodwill at end of period 129,375
Engineering and Consulting  
Changes in carrying value of goodwill  
Goodwill at beginning of period 1,769
Goodwill at end of period $ 1,769
XML 47 R37.htm IDEA: XBRL DOCUMENT v3.24.1.u1
SUPPLEMENTAL FINANCIAL STATEMENT DATA - Finite-lived Intangible Assets - Gross Amounts and Accumulated Amortization (Details) - USD ($)
$ in Thousands
Mar. 29, 2024
Dec. 29, 2023
Finite-Lived Intangible Assets    
Total finite intangible assets $ 99,814 $ 99,814
Accumulated Amortization 69,729 67,858
Order or Production Backlog    
Finite-Lived Intangible Assets    
Total finite intangible assets 8,306 8,306
Accumulated Amortization 8,148 8,095
Trade Names    
Finite-Lived Intangible Assets    
Total finite intangible assets 15,936 15,936
Accumulated Amortization 12,835 12,695
Noncompete Agreements    
Finite-Lived Intangible Assets    
Total finite intangible assets 1,613 1,613
Accumulated Amortization 1,452 1,440
Developed Technology Rights    
Finite-Lived Intangible Assets    
Total finite intangible assets 15,810 15,810
Accumulated Amortization 14,791 14,521
Customer Relationships    
Finite-Lived Intangible Assets    
Total finite intangible assets 58,149 58,149
Accumulated Amortization $ 32,503 $ 31,107
XML 48 R38.htm IDEA: XBRL DOCUMENT v3.24.1.u1
SUPPLEMENTAL FINANCIAL STATEMENT DATA - Finite-lived Intangible Assets - Amortization Period (Details)
Mar. 29, 2024
Order or Production Backlog  
Finite-Lived Intangible Assets  
Amortization Period 1 year
Trade Names | Minimum  
Finite-Lived Intangible Assets  
Amortization Period 2 years 6 months
Trade Names | Maximum  
Finite-Lived Intangible Assets  
Amortization Period 6 years
Noncompete Agreements | Minimum  
Finite-Lived Intangible Assets  
Amortization Period 4 years
Noncompete Agreements | Maximum  
Finite-Lived Intangible Assets  
Amortization Period 5 years
Developed Technology Rights  
Finite-Lived Intangible Assets  
Amortization Period 8 years
Customer Relationships | Minimum  
Finite-Lived Intangible Assets  
Amortization Period 5 years
Customer Relationships | Maximum  
Finite-Lived Intangible Assets  
Amortization Period 8 years
XML 49 R39.htm IDEA: XBRL DOCUMENT v3.24.1.u1
DERIVATIVE FINANCIAL INSTRUMENTS - General Information (Details) - Interest Rate Swap - Cash Flow Hedging
$ in Millions
Nov. 30, 2023
USD ($)
Derivative Financial Instruments  
Derivative, inception date Nov. 30, 2023
Notional amount $ 50.0
Fixed rate (as a percent) 4.77%
Derivative, contract end date Sep. 29, 2026
XML 50 R40.htm IDEA: XBRL DOCUMENT v3.24.1.u1
DERIVATIVE FINANCIAL INSTRUMENTS - Cash Flow Hedge Effectiveness (Details)
$ in Thousands
3 Months Ended
Mar. 29, 2024
USD ($)
Derivative Financial Instruments  
Other comprehensive income (loss), cash flow hedge, gain (loss), before reclassification and tax $ 500
Other comprehensive income (loss), cash flow hedge, gain (loss), reclassification, before tax 0
Other comprehensive income (loss), cash flow hedge, gain (loss), after reclassification, before tax, total 400
Derivative instruments, gain (loss) reclassification from accumulated OCI to income, estimated net amount to be transferred $ 100
Derivative instruments, gain (loss) reclassification from accumulated OCI to income, estimate of time to transfer 12 months
XML 51 R41.htm IDEA: XBRL DOCUMENT v3.24.1.u1
DERIVATIVE FINANCIAL INSTRUMENTS - Fair Value (Details) - USD ($)
$ in Thousands
Mar. 29, 2024
Dec. 29, 2023
Derivative Assets    
Derivative asset, current $ 140 $ 46
Derivative Asset, Current, Statement of Financial Position Prepaid expenses and other current assets Prepaid expenses and other current assets
Derivative Liabilities    
Derivative liability, noncurrent $ (431) $ (887)
Derivative Liability, Noncurrent, Statement of Financial Position Other noncurrent liabilities Other noncurrent liabilities
XML 52 R42.htm IDEA: XBRL DOCUMENT v3.24.1.u1
DERIVATIVE FINANCIAL INSTRUMENTS - Accumulated Other Comprehensive Income (Loss) (Details)
$ in Thousands
3 Months Ended
Mar. 29, 2024
USD ($)
AOCI Including Portion Attributable to Noncontrolling Interest, Net of Tax [Roll Forward]  
Balance $ 199,845
Other comprehensive income (loss) 434
Balance 205,515
Accumulated Other Comprehensive Loss  
AOCI Including Portion Attributable to Noncontrolling Interest, Net of Tax [Roll Forward]  
Balance (664)
Other comprehensive income (loss) before reclassifications 549
Amounts reclassified from accumulated other comprehensive income: income tax benefit (expense) related to derivative instruments (115)
Other comprehensive income (loss) 434
Balance (230)
Gain (Loss) on Derivative Instruments  
AOCI Including Portion Attributable to Noncontrolling Interest, Net of Tax [Roll Forward]  
Balance (664)
Other comprehensive income (loss) before reclassifications 549
Amounts reclassified from accumulated other comprehensive income: income tax benefit (expense) related to derivative instruments (115)
Other comprehensive income (loss) 434
Balance $ (230)
XML 53 R43.htm IDEA: XBRL DOCUMENT v3.24.1.u1
DEBT OBLIGATIONS - Composition (Details) - USD ($)
$ in Thousands
Mar. 29, 2024
Dec. 29, 2023
Debt Obligations    
Total debt $ 96,424 $ 98,452
Issuance costs and debt discounts (929) (1,021)
Subtotal - long term debt 95,495 97,431
Notes Payable to Banks | Term Loan    
Debt Obligations    
Total debt 96,250 98,125
Notes Payable, Other Payables | Other Debt    
Debt Obligations    
Total debt $ 174 $ 327
XML 54 R44.htm IDEA: XBRL DOCUMENT v3.24.1.u1
DEBT OBLIGATIONS - Classification (Details) - USD ($)
$ in Thousands
Mar. 29, 2024
Dec. 29, 2023
Debt Obligations    
Subtotal $ 95,495 $ 97,431
Less current portion of long-term debt 8,924 8,452
Long-term debt portion $ 86,571 $ 88,979
XML 55 R45.htm IDEA: XBRL DOCUMENT v3.24.1.u1
DEBT OBLIGATIONS - New Credit Facilities (Details)
Mar. 29, 2024
Notes Payable to Banks | New Credit Facilities  
Debt Obligations  
Composite interest rate (as a percent) 7.70%
XML 56 R46.htm IDEA: XBRL DOCUMENT v3.24.1.u1
LEASES - General Information (Details)
$ in Thousands
3 Months Ended
Mar. 29, 2024
USD ($)
Leases  
Operating lease, option to extend true
Operating lease, option to terminate true
Residual value guarantee $ 0
Minimum  
Leases  
Operating lease, remaining lease term 1 year
Maximum  
Leases  
Operating lease, remaining lease term 8 years
Operating lease, extension term 5 years
Operating lease, terminate term 1 year
XML 57 R47.htm IDEA: XBRL DOCUMENT v3.24.1.u1
LEASES - Lease Expense (Details) - USD ($)
$ in Thousands
3 Months Ended 12 Months Ended
Mar. 29, 2024
Mar. 31, 2023
Dec. 29, 2023
Lease cost      
Operating lease cost $ 1,527 $ 1,493  
Sublease Income (14)    
Amortization of assets 355 311 $ 1,300
Interest on lease liabilities 31 22  
Total net lease cost $ 1,899 $ 1,826  
XML 58 R48.htm IDEA: XBRL DOCUMENT v3.24.1.u1
LEASES - Consolidated Balance Sheet (Details) - USD ($)
$ in Thousands
Mar. 29, 2024
Dec. 29, 2023
Leases    
Right-of-use assets $ 12,803 $ 12,465
Operating leases, lease liabilities    
Lease liability 4,677 4,537
Lease liability, less current portion 9,948 9,758
Total lease liabilities 14,625 14,295
Finance leases (included in equipment and leasehold improvements, net):    
Equipment and leasehold improvements, net 6,245 6,139
Accumulated depreciation (4,099) (3,837)
Total equipment and leasehold improvements, net $ 2,146 $ 2,302
Finance Lease, Right-of-Use Asset, Statement of Financial Position Equipment and leasehold improvements, net Equipment and leasehold improvements, net
Finance lease obligations    
Finance lease obligations $ 1,111 $ 1,186
Finance lease obligations, less current portion 1,112 1,184
Total finance lease obligations $ 2,223 $ 2,370
XML 59 R49.htm IDEA: XBRL DOCUMENT v3.24.1.u1
LEASES - Additional Information (Details)
Mar. 29, 2024
Dec. 29, 2023
Leases    
Operating leases, weighted average remaining lease term 3 years 3 months 25 days 3 years 5 months 4 days
Finance leases, weighted average remaining lease term 2 years 3 months 2 years 3 months 21 days
Operating leases, weighted average discount rate 6.67% 6.09%
Finance leases, weighted average discount rate 5.59% 5.19%
XML 60 R50.htm IDEA: XBRL DOCUMENT v3.24.1.u1
LEASES - Rent Expense (Details) - USD ($)
$ in Millions
3 Months Ended
Mar. 29, 2024
Mar. 31, 2023
LEASES    
Rent expenses $ 1.7 $ 1.6
XML 61 R51.htm IDEA: XBRL DOCUMENT v3.24.1.u1
LEASES - Supplemental Cash Flow Information (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 29, 2024
Mar. 31, 2023
Cash paid for amounts included in the measurement of lease liabilities:    
Operating cash flow from operating leases $ 1,569 $ 1,570
Operating cash flow from finance leases 31 22
Financing cash flow from finance leases 345 303
Right-of-use assets obtained in exchange for lease liabilities for operating leases $ 1,627 $ 2,120
XML 62 R52.htm IDEA: XBRL DOCUMENT v3.24.1.u1
LEASES - Operating Leases - Maturities of Lease Liabilities (Details)
$ in Thousands
Mar. 29, 2024
USD ($)
Operating  
Remainder of 2024 $ 4,254
2025 5,069
2026 4,235
2027 1,935
2028 1,108
2029 and thereafter 94
Total lease payments $ 16,695
XML 63 R53.htm IDEA: XBRL DOCUMENT v3.24.1.u1
LEASES - Operating Leases - Gross Difference (Details) - USD ($)
$ in Thousands
Mar. 29, 2024
Dec. 29, 2023
Operating    
Total lease payments $ 16,695  
Less: Imputed interest (2,070)  
Total lease liabilities 14,625 $ 14,295
Less: Current obligations 4,677 4,537
Noncurrent lease obligations $ 9,948 $ 9,758
XML 64 R54.htm IDEA: XBRL DOCUMENT v3.24.1.u1
LEASES - Finance Leases - Maturities of Lease Liabilities (Details)
$ in Thousands
Mar. 29, 2024
USD ($)
Finance  
Remainder of 2024 $ 1,013
2025 782
2026 448
2027 112
2028 18
Total lease payments $ 2,373
XML 65 R55.htm IDEA: XBRL DOCUMENT v3.24.1.u1
LEASES - Finance Leases - Gross Difference (Details) - USD ($)
$ in Thousands
Mar. 29, 2024
Dec. 29, 2023
Finance    
Total lease payments $ 2,373  
Less: Imputed interest (150)  
Total finance lease obligations 2,223 $ 2,370
Less: Current obligations 1,111 1,186
Noncurrent lease obligations $ 1,112 $ 1,184
XML 66 R56.htm IDEA: XBRL DOCUMENT v3.24.1.u1
COMMITMENTS AND VARIABLE INTEREST ENTITIES - Employee Benefit Plans (Details)
3 Months Ended
Mar. 29, 2024
USD ($)
Y
Mar. 31, 2023
USD ($)
Qualified Cash or Deferred Arrangement    
Employee Benefit Plans    
Defined Contribution Plan, Tax Status us-gaap:QualifiedPlanMember  
Maximum employee contribution as a percentage of compensation under 401(k) Plan (as a percent) 50.00%  
Defined Contribution Plan    
Employee Benefit Plans    
Service period 3 months  
Attained age | Y 21  
Defined contribution plan, employer matching contribution, percent of match (as a percent) 50.00%  
Defined contribution plan, employer matching contribution, percent of employees' gross pay (as a percent) 6.00%  
Maximum employer contribution per employee $ 3,000  
Employer matching contributions $ 1,100,000 $ 1,000,000.0
XML 67 R57.htm IDEA: XBRL DOCUMENT v3.24.1.u1
COMMITMENTS AND VARIABLE INTEREST ENTITIES - Variable Interest Entities (Details)
3 Months Ended
Mar. 29, 2024
entity
COMMITMENTS AND VARIABLE INTEREST ENTITIES  
Percentage of costs reimbursed to WES by Genesys 10.00%
Number of VIEs 1
XML 68 R58.htm IDEA: XBRL DOCUMENT v3.24.1.u1
SEGMENT AND GEOGRAPHICAL INFORMATION - Segment Information (Details) - segment
3 Months Ended
Mar. 29, 2024
Mar. 31, 2023
Segment Information    
Number of reporting segments 2 2
XML 69 R59.htm IDEA: XBRL DOCUMENT v3.24.1.u1
SEGMENT AND GEOGRAPHICAL INFORMATION - Statement of Operations (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 29, 2024
Mar. 31, 2023
Segment reconciliation    
Contract revenue $ 122,489 $ 102,603
Depreciation and amortization 3,592 4,200
Interest expense, net 2,137 2,466
Segment profit (loss) before income tax expense 3,928 1,688
Income tax (benefit) expense 986 756
Net Income (Loss) 2,942 932
Energy    
Segment reconciliation    
Contract revenue 100,746 83,285
Engineering and Consulting    
Segment reconciliation    
Contract revenue 21,743 19,318
Operating Segments | Energy    
Segment reconciliation    
Contract revenue 100,746 83,285
Depreciation and amortization 3,236 3,924
Interest expense, net 1 2
Segment profit (loss) before income tax expense 4,311 2,771
Income tax (benefit) expense 1,083 1,241
Net Income (Loss) 3,229 1,530
Operating Segments | Engineering and Consulting    
Segment reconciliation    
Contract revenue 21,743 19,318
Depreciation and amortization 356 276
Segment profit (loss) before income tax expense 2,344 2,587
Income tax (benefit) expense 588 1,158
Net Income (Loss) 1,756 1,428
Corporate, Non-Segment    
Segment reconciliation    
Interest expense, net 2,136 2,464
Segment profit (loss) before income tax expense (2,727) (3,670)
Income tax (benefit) expense (685) (1,643)
Net Income (Loss) $ (2,043) $ (2,026)
XML 70 R60.htm IDEA: XBRL DOCUMENT v3.24.1.u1
SEGMENT AND GEOGRAPHICAL INFORMATION - Segment Assets (Details) - USD ($)
$ in Thousands
Mar. 29, 2024
Dec. 29, 2023
Mar. 31, 2023
Segment Reporting      
Segment assets $ 407,900 $ 415,588 $ 393,367
Operating Segments | Energy      
Segment Reporting      
Segment assets 318,808   323,578
Operating Segments | Engineering and Consulting      
Segment Reporting      
Segment assets 26,613   23,587
Corporate, Non-Segment      
Segment Reporting      
Segment assets 85,609   69,332
Intersegment Eliminations      
Segment Reporting      
Segment assets $ (23,130)   $ (23,130)
XML 71 R61.htm IDEA: XBRL DOCUMENT v3.24.1.u1
SEGMENT AND GEOGRAPHICAL INFORMATION - Disaggregation of Revenue (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 29, 2024
Mar. 31, 2023
Revenue    
Revenue $ 122,489 $ 102,603
Domestic    
Revenue    
Revenue 122,489 102,603
Energy    
Revenue    
Revenue 100,746 83,285
Energy | Domestic    
Revenue    
Revenue 100,746 83,285
Engineering and Consulting    
Revenue    
Revenue 21,743 19,318
Engineering and Consulting | Domestic    
Revenue    
Revenue 21,743 19,318
Commercial    
Revenue    
Revenue 8,783 7,883
Commercial | Energy    
Revenue    
Revenue 7,203 6,719
Commercial | Engineering and Consulting    
Revenue    
Revenue 1,580 1,164
Government    
Revenue    
Revenue 55,918 44,170
Government | Energy    
Revenue    
Revenue 35,820 26,075
Government | Engineering and Consulting    
Revenue    
Revenue 20,098 18,095
Utilities    
Revenue    
Revenue 57,788 50,550
Utilities | Energy    
Revenue    
Revenue 57,723 50,491
Utilities | Engineering and Consulting    
Revenue    
Revenue 65 59
Time-and-Materials Contract    
Revenue    
Revenue 24,936 22,263
Time-and-Materials Contract | Energy    
Revenue    
Revenue 8,537 7,709
Time-and-Materials Contract | Engineering and Consulting    
Revenue    
Revenue 16,399 14,554
Unit-based Contract    
Revenue    
Revenue 51,468 48,543
Unit-based Contract | Energy    
Revenue    
Revenue 46,957 44,927
Unit-based Contract | Engineering and Consulting    
Revenue    
Revenue 4,511 3,616
Fixed-Price Contract    
Revenue    
Revenue 46,085 31,797
Fixed-Price Contract | Energy    
Revenue    
Revenue 45,252 30,649
Fixed-Price Contract | Engineering and Consulting    
Revenue    
Revenue $ 833 $ 1,148
XML 72 R62.htm IDEA: XBRL DOCUMENT v3.24.1.u1
SEGMENT AND GEOGRAPHICAL INFORMATION - Geographical Information (Details)
Mar. 29, 2024
state
SEGMENT AND GEOGRAPHICAL INFORMATION  
Number of states in which entity operates 22
XML 73 R63.htm IDEA: XBRL DOCUMENT v3.24.1.u1
SEGMENT AND GEOGRAPHICAL INFORMATION - Concentration Risk (Details)
3 Months Ended
Mar. 29, 2024
Mar. 31, 2023
Revenue from Contract with Customer Benchmark | Customer Concentration Risk | Top Ten Customers    
Concentration Risk    
Concentration risk (as a percent) 49.20% 52.20%
Revenue from Contract with Customer Benchmark | Customer Concentration Risk | Los Angeles Department of Water and Power    
Concentration Risk    
Concentration risk (as a percent)   11.10%
Revenue from Contract with Customer Benchmark | Geographic Concentration Risk | California    
Concentration Risk    
Concentration risk (as a percent) 43.50% 42.40%
Revenue from Contract with Customer Benchmark | Geographic Concentration Risk | New York    
Concentration Risk    
Concentration risk (as a percent) 27.10% 24.50%
Revenue from Contract with Customer, Segment Benchmark | Customer Concentration Risk | Los Angeles Department of Water and Power | Energy    
Concentration Risk    
Concentration risk (as a percent) 10.70% 13.70%
XML 74 R64.htm IDEA: XBRL DOCUMENT v3.24.1.u1
INCOME TAXES - Valuation Allowance (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 29, 2024
Dec. 29, 2023
INCOME TAXES    
Valuation allowance   $ 1,200
Increase (decrease) in valuation allowance $ 0  
XML 75 R65.htm IDEA: XBRL DOCUMENT v3.24.1.u1
INCOME TAXES - Uncertain Tax Positions (Details) - USD ($)
$ in Thousands
Mar. 29, 2024
Mar. 31, 2023
Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued    
Liability for uncertain tax positions $ 0 $ 0
XML 76 R66.htm IDEA: XBRL DOCUMENT v3.24.1.u1
INCOME TAXES - Income Tax Expense (Benefit) (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 29, 2024
Mar. 31, 2023
INCOME TAXES    
Income tax expense (benefit) $ 986 $ 756
XML 77 R67.htm IDEA: XBRL DOCUMENT v3.24.1.u1
EARNINGS PER SHARE (EPS) - Computation (Details) - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
3 Months Ended
Mar. 29, 2024
Mar. 31, 2023
Net income (loss)    
Net Income (Loss) $ 2,942 $ 932
Net income (loss) - basic 2,942 932
Net income (loss) - diluted $ 2,942 $ 932
Weighted-average shares outstanding:    
Weighted-average common shares outstanding (in shares) 13,605 13,266
Effect of dilutive stock options and restricted stock awards (in shares) 305 204
Weighted-average common shares outstanding-diluted (in shares) 13,910 13,470
Earnings (Loss) per share:    
Basic (in dollars per share) $ 0.22 $ 0.07
Diluted (in dollars per share) $ 0.21 $ 0.07
XML 78 R68.htm IDEA: XBRL DOCUMENT v3.24.1.u1
EARNINGS PER SHARE (EPS) - Antidilutive Securities (Details) - shares
shares in Thousands
3 Months Ended
Mar. 29, 2024
Mar. 31, 2023
Share-Based Payment Arrangement    
Antidilutive securities    
Antidilutive securities excluded from computation of earnings per share (in shares) 335 397
XML 79 R69.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Pay vs Performance Disclosure - USD ($)
$ in Thousands
3 Months Ended
Mar. 29, 2024
Mar. 31, 2023
Pay vs Performance Disclosure    
Net Income (Loss) $ 2,942 $ 932
XML 80 R70.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Insider Trading Arrangements
3 Months Ended
Mar. 29, 2024
Trading Arrangements, by Individual  
Rule 10b5-1 Arrangement Adopted false
EXCEL 81 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( ,V4HE@'04UB@0 +$ 0 9&]C4')O<',O87!P+GAM M;$V./0L",1!$_\IQO;=!P4)B0-!2L+(/>QLOD&1#LD)^OCG!CVX>;QA&WPIG M*N*I#BV&5(_C(I(/ !47BK9.7:=N')=HI6-Y #OGDK7A.YNJQ<&4GPZ4A!0W_J=0U[R;UEA_6\#MI7E!+ P04 M " #-E*)8^-& -N\ K @ $0 &1O8U!R;W!S+V-O&ULS9+! M3L,P#(9?!>7>.DT!0=3EPK032$A, G&+$F^+:-HH,6KW]J1EZX3@ 3C&_O/Y ML^3&!&GZB,^Q#QC)8;H:?=LE:<**'8B"!$CF@%ZG,B>ZW-SUT6O*S[B'H,V' MWB,(SF_!(VFK2<,$+,)"9*JQ1IJ(FOIXPENSX,-G;&>8-8 M>NPH0556P-0T M,1S'MH$+8((11I^^"V@7XES]$SMW@)V28W)+:AB&GQY=YW<)U MB71G,/]*3M(QX(J=)[_6#^OMABG!Q77!;PHNMD+(^D[R^_?)]8??1=CWUNW< M/S8^"ZH&?MV%^@)02P,$% @ S92B6)E&UL[5I;<]HX%'[OK]!X9_9M"\8V@;:T$W-I=MNTF83M M3A^%$5B-;'EDD81_OTV23;J;/ 0LZ?O.14?GZ#AY\^XN8NB&B)3R M> +]O6N[!3+ MUES@6QHO(];JM-O=5H1I;*$81V1@?5XL:$#05%%:;U\@M.4?,_@5RU2-9:,! M$U=!)KF(M/+Y;,7\VMX^9<_I.ATR@6XP&U@@?\YOI^1.6HCA5,+$P&IG/U9K MQ]'22(""R7V4!;I)]J/3%0@R#3LZG5C.=GSVQ.V?C,K:=#1M&N#C\7@XMLO2 MBW A(5M>5 TR M6'!VULS2 Y9>*?IUE!K9';O=05SP6.XYB1'^QL4$UFG2&98T1G*=D 4. #?$ MT4Q0?*]!MHK@PI+27)#6SRFU4!H(FLB!]4>"(<7K;YH] M5Z%82=J$^!!&&N*<<^9ST6S[!Z5&T?95O-RCEU@5 9<8WS2J-2S%UGB5P/&M MG#P=$Q+-E L&08:7)"82J3E^34@3_BNEVOZKR2.FJW"$2M"/F(9 M-AIRM1:!MG&IA&!:$L;1>$[2M!'\6:PUDSY@R.S-D77.UI$.$9)>-T(^8LZ+ MD!&_'H8X2IKMHG%8!/V>7L-)P>B"RV;]N'Z&U3-L+([W1]072N0/)J<_Z3(T M!Z.:60F]A%9JGZJ'-#ZH'C(*!?&Y'C[E>G@*-Y;&O%"N@GL!_]':-\*K^(+ M.7\N?<^E[[GT/:'2MSAD6R4)RU3393>* M$IY"&V[I4_5*E=?EK[DHN#Q;Y.FOH70^+,_Y/%_GM,T+,T.WF)&Y M"M-2D&_#^>G%>!KB.=D$N7V85VWGV-'1^^?!4;"C[SR6'<>(\J(A[J&&F,_# M0X=Y>U^89Y7&4#04;6RL)"Q&MV"XU_$L%.!D8"V@!X.O40+R4E5@,5O& RN0 MHGQ,C$7H<.>77%_CT9+CVZ9EM6ZO*7<9;2)2.<)IF!-GJ\K>9;'!51W/55OR ML+YJ/;053L_^6:W(GPP13A8+$DACE!>F2J+S&5.^YRM)Q%4XOT4SMA*7&+SC MYL=Q3E.X$G:V#P(RN;LYJ7IE,6>F\M\M# DL6XA9$N)-7>W5YYNTB42%(JP# 4A M%W+C[^^3:G>,U_HL@6V$5#)DU1?*0XG!/3-R0]A4)?.NVB8+A=OB5,V[&KXF M8$O#>FZ=+2?_VU[4/;07/4;SHYG@'K.' MYA,L0Z1^P7V*BH 1JV*^NJ]/^26<.[1[\8$@F_S6VZ3VW> ,?-2K6J5D*Q$_ M2P=\'Y(&8XQ;]#1?CQ1BK::QK<;:,0QY@%CS#*%F.-^'19H:,]6+K#F-"F]! MU4#E/]O4#6CV#30,9FV-J/D3@H\W/[O#;#"Q([A[8N_ 5!+ P04 M" #-E*)84_@OP_H% #6'P & 'AL+W=OF,IJD;IRNZ81\8B;:%2J)'47;\ M[W:4'])]':.^8AO1^3%6JKOZ4((39[C*$DO.PNME^]ZO=1?B)BG MQW(I$K@SDRKF&D[5O)!!+HJC'G.-\.7QSOTVAP>8)YX*3T9?PT O+CMG'1*(&<\B_2#7?X@MT(GQ\V64 MYG_)NGBVW^\0/TNUC+=B*$$<)L5__KQ]$2\%3HV ;07LC8"Z-0)W*\C?7*\H M68YUS34?7BBY)LH\#6[F('\WN1IHPL14XU0KN!N"3@^OI9]!K6C"DX#<)#K4 M&S).BN9A7G.7I NN1'K1T_!K1M/SM\Y7A3.K<7;)1YGH10JN@0A>ZWM0RK*H M;%?4*X8:?N3JF+#S(\(4Q]LGWQ"'VM2O2N.6+\[-[=P:.T^NA")_CYY2 MK: M_F-[085#W^Y@.NB[=,E]<=F!'I@*M1*=X2\_T5/G=QO=#S)[!=LO8?N8 M^W#;,#QH*(I'T$ "\4P^B(T-&G=R'(>Z Z=_XM@846U+QI.2\00M6=D3'C=+ M80/#Y=3I?K8AH:J62*Q%(J;")ZEMRGI>XR^CN_NKD?WY/W#IR^3HZ*$XWOOV(:,6[5E?A$K:!/F M<>)+!3TR#Q-'9*JA]1*IB",[.'.O4A.O:DE81BN*YYRUI.4)/E%R%B6]GQ3V] MD17T$$F*5E&*X@DH;ZLC)7A]#>(&9S5=\A#!B5;)B>*QYT[ZT# G"YE@T6F/ M29_UN^>T;\V%N+0E'ZNR$\,CSV.H(13*&:'LUZ??R%3XF8*:M$'N5N(?E&VV[Z%P.\G=S/;9:DC=,SIP!A"L5A9&MTI![I[L MLIU ;L/4Q+UO M(+MABXQZ[;I:S+!M9=AD-$';>*.NZ>A9W=BN>6=+OP>0N7 MK6//'KO/U,IXB-CC5K''Q=/*6\:\-NL)<;.ZY5Q88'E-& !@4D!&W M]KT]!K6C#:[[OV"]%SNG9B+(-Y13XIOER6(3M;Q:;EJ/\JW:7O5XL>/]D9MY M)"61F('4.1[ 0*"*3>3B1,MEO@_[)+66<7ZX$#P0RCP ]V=2ZMV)^8%R*W_X M'U!+ P04 " #-E*)81+J\6@H' "/'@ & 'AL+W=O9X8#KW MRW3)"R:/Q8J7\,M"5 53<%O=C^6JXFS>#"KR,?&\<%RPK!Q-3IMG-]7D5-0J MSTI^4R%9%P6KGC[R7#R*NV"P;\U MO^!YKCT!CK^W3D?M._7 W>MG[Y^:X"&8&9/\0N1_97.U/!O%(S3G"U;GZE8\ M?.;;@ +M+Q6Y;/ZBAZVM-T)I+94HMH,!09&5F__L<9N(G0'8'QA M@/(:P?0 M[0#:!+I!UH1UR12;G%;B 57:&KSIBR8WS6B()BOU-$Y5!;]F,$Y-+KY=7UY= M3Z\N$5Q-OWW]7U]GGJZN[*3I"WZ>7Z->#W] !RDITMQ2U M9.5QNGV?1\W[R,#[_N#5<>()(>(>,2W#+]P#[_D:3N<[@\?0^1M M^*0-GS3^Z%#X=57Q4B$F)5?RQ!;/QH%O=Z!7V8E]7@^9RV(/5="B M"IRHSM-4U) LZ%TIA\S-D_R#. P14P@60KIL5T+S$Q0W+V:\:@O\$%XF5[SI=/F3+1&!$6;@10GI M)<.T"I,P&IBFL$U(Z"XG4:H*NO!V[=C0A<9[8^)[20^=:970. [LZ*(67>1$ M]TTM(9'=7%GQ16;V@G[N3!N,P\0.+F[!Q4YP-Q5?L6R.^".PL>2RF7W1($[W M&I(-=&R"CD/:0VT:04IC.^JD19TX4=\)Q?)7 $S,C,5AX.,>1(M90CP@(E% ^R5K-?.& M&A_>(6/LQ/Z[$/.'+,^MT+"9,(JQ[_>QO6BW#ZZC2NQDITDC\8[$XJB6W#'] M6R][[R>QUZ]0JYD?#BQ[W)$<=K/<9N%GI6+E?08+?XMT>,:IN50\+^XSG* M/7)')DV:P?YNBK98+69!$N(!L!T=83.UK";UP!B54.1[\R+%:5)6#3V<9_6+&; ?61@+9*.UHB; MUEJY]0),8E(3#GT2]6#:S"B.!Y)).@8C;@:[%HH[)YN8]!0GI$]B-BM_1YOM MH]O9[;DI[%-6-C*]405(S/+LGNG3!'LF+0R%C?FV6L4#O$ Z&B-N&OO:('R> M:ZOV)R8E^;NJ?HO/8A70 :5".MXB;M[:%X,OU:1)3]CSO;"_PFUVV _C@:T; MZ8B,N(ELKRH/8?JE;+&O1*5+P(K;I"I0LI%1 A:S.(F&EGS':,3-:(/5^H8( M3#*#$N[+!ZM5/" 824=XQ+T'Z]7P&U";FZXD\8UJL5A%P0!-DXZQB)NQ-HJL M%.5KB]NDI3#NBQZ+$53V4#_KJ(N\9DOV$D"3D?3A@B%Q;78XB/P!3J ===&7 MJ*LH,M5LO#;G3T!E67G/RW0 L=N?7;,@F_AY!T?[,7<\2+%3[$V52'_H?2>O MY"_-89MZLJH]ZN33MZJ]]_*V'W7'K]3-KS?5\XY!ZO@/T8%W[&%HO!5:L[R& MUHN]0\_SD%RR2I][U&HIJNP?/H==A7A^FDFI]5AS*%(K"3NY.92+-7G_X3S5 M7BC_W]%^RG8.95\XE87%(WN\)PHHH*7^#+8&:A32WO],07%$:'^C:K,*PP'6 MIIWJH&[5<::ZS4H(Z6\! [SB"!%2;KY^;&R56S0?$F5!*%,WEDC. K0W@]X4 M>;V]T=\DVV_0DW\!4$L#!!0 ( ,V4HE@40U^:>@, !H- 8 >&PO M=V]R:W-H965T&ULK5=M;Z,X$/XK%K$($;";&S+[U[)YVR"W^BF O:V.BI:PY?]:3K\'$L#0C8. K#4'Q ML@,/&--(R..?$M2H8FK'^O@%_<]9W]'@0HGQM @ 6QHQM0CWW^! M4M"-QO,YD_D_V1>V@Y%!_$PJ'I?.R"".DN)*?Y:)J#G8_0,.3NG@G.K0*QWR MS)D%LUS6G"HZ'0N^)T);(YH>Y+G)O5%-E.AE7"F!3R/T4U/O^\-\\;!:S F. M5M_OO\YG3SBYF]W/'KP%67U9+)Y6Y&))!20J!!7YE%V2S^3':DXN/EV23R1* MR%/(,TF30(Y-A9PTLNF7\>^*^,Z!^-^HN";.Z(HXEM-OZW>?@5^Z]IKN) MF:C2X53I<'*\W@&\F>_S+%&2/((/T8ZN&5P1NE$@R(SA*T\3'P@6#_$$!)$B M]US**^)E0J>G37T1KM\>3M?HK4RI#Q,#BU""V($Q_?TWV[7^:,O%F< :F>E5 MF>EUH;]F1M0ST\A)P+.UVF0,:[.P;4M($<7-H^@]9C=U1];8W-5U_FHS=-W* MID&_7]'O=R[L$G<'P%4*"):4_]S&K'_.I3H36$/K3:7UIG.IWFB](BD59$=9 M!N0"JS7@C%$A28HOM0RQL"_;LE&$&-36P+JV[#<+=<2HP=ZMV+OO8Y]SE(1F M*N0B^@\?:!7%W5;J!?Y-C95M%;\W]$\P;$@85!(&'Y(029D=IS_XA=5;WET6 M#<+#BO#P0X3QW)<*-_8HV1YC/3S*NLNBP7I4L1YUUK3'XQ@[@8,%/3IG09\) MK"'4MEY/::MS@>I2/U;/98 C!7W,JDF_UF38[Z#_[H(NT>NO3K^]HD^Q;&IX M[0SLSN.U7<-I%5TB-S::WM >M/!OLW2'SF'^K^>WW7V M_)_1X&7\*>(:+-L M%6'6&E?]U8#=X#9*)&&P05?K>H 8HFC$BXGB:=[+KKG"SC@?AOCQ D(;X/,- MY^IEHMOCZG-H^C]02P,$% @ S92B6 2<&.QU!@ \AL !@ !X;"]W M;W)K?DLY$^UXERC MEW62NO-1;^OYBN^9NI<;'@"/0LAUTQ#4R[[:B,Y"[-!Z[A/',?OKUF4 M]$:7V;L'.;H46QU'"7^02&W7:R9?KWDLGJ]ZN+=_\35:KG3ZHC^ZW+ EGW'] M;?,@H=4OM831FB,FO.HY M*2(>\[E.53#XV?$QC^-4$^#XMU#:*[^9#CQ\WFO_F!D/QCPQQ<G75 M&_10R!=L&^NOXODS+PSR4GUS$:OL/WHN9)T>FF^5%NMB,"!81TG^RUX*1QP, M #WF :080)H#W(X!M!B0>:Z?(\O,FC#-1I=2/".92H.V]"'S338:K(F2-(PS M+:$W@G%Z-+Z_FTSO9M,)@J?9_9>;R8=':,P>X>=V>OOVX>OT,\C= M?)^BFSMH3]$9^C:;H/?O3I!:,0'L M.@=&.H!1="L2O5)HFH0\K(_O@Y&EI61OZ36Q*KQE\AR1X2DB#G$->,9_,)SB M;#BUP*&EXVFFCW8[_DWN?O_E?C8[,?DQ_XYK_DZ:!B[4ALWY50_6N>)RQWNC MO__"OO./R0E'4E9SB5NZQ+5I'XTAX!+6-:2''4^VW&1LKL'/-*0I:C?"A+B# MX65_=VB&01\D\WBI(3&EW MF(G'K] =,\U#2"_@M7G$\@26A(BMA=31K^S%R87)7N^8P3V2LIKO_-)WOC6X M,Q8S&4&:2.U^!H8PYH1&!A37L@Q+[P(K]46@6UP":IJ<) M]* %)_"< #= MZ5\3$D'Z&$)>F@%_4D*I=!&BD6D3="&;4\%+AXTH!FD,!E@ M,S3L5+3H6)?Z)YYP"3[-5FD(Q!LI\&5:!WA M))4EQ&K)1S:/XDCO;5GDS3(S&Q&3-A37]9J #5(D&'3@K8H#;"7:T4R+^<^S MM#X-81FOTPF7D801*&U!P'3H-($:I#S:08BXHFQLY^R)C=*,:-T6#NH-FQG> M(.7"SJ0#;<7?V$IQH_LTD1M1>:WO#3!IID&#E#\(NG)-Q8S83HUY]E[^/N,8 MD;?)$#SE!4WH;3$:$#_HP%Z1)K:SYDT"TQ,*GR^0RT_00HHU@BVFS,)OQFNB M2;_E:1--8K<#;463>&#-ZEG\86.28R[<:BZ\L)5QWYS(CZ2M;G?%M-A.M3>) MYJ!7[V?2*4JXD7-QFT[/"*:MV602GTYPQ>!:L>*X#6@& M(>QV) Y2,2&Q,V&^1/,Z\'<^)&T..\/N0:HM@!K$""5=/JRHCMBIKKXBG_A" M2+Z?\AEI&S&W:8P.2;/6,DAA?]!!=J0B.V(GNYL2''I?U! G>R\;P;:I;#CP MFUC;0H'7Y=R*[HB=[NZX+M-'G#K8B*]-7F3H-BG.(#6D'24UJ1B.V+>H>89+ M2P;)5^EIVX[7 1N3'3GJ-O-8VNHNJ.B4V.GT6R(YBZ-?4#HM6904=B.H3T(N MHUU.J?N]D=X?;:%+0.AVA-&@M MH+94]_RL&)C8&7C*9!(E2[7/3U KY.>'YGEY5!(^EK:ZZ14)$SL)7S,5S=,C M(A3"!HI)51EO#E.N+C@(@'-.6FG$).4$3NVOHT2E%3%3.S%/HGB;GF#].?I" M80-]L\XS2OTI^HJ]*;9.NA_983X/S]@.2M,EWY]8BZU6&NIMF)#&Z4>M1<&; MCU:/I*WNA*HNH/:ZH)I^N?7FJ!D8GOI.<]=K%"-=]1\].!.W5P*'T\R&TKCC MQ'^-+\;Y]5.E M)K\-NV5R&24*Q7P!*IWS ##)_((I;VBQR>YHGH368IT]KC@#ODH%H'\AA-XW MT@^4UWRC_P!02P,$% @ S92B6"WS(8Q)!P Z30 !@ !X;"]W;W)K MWF:EC$$]W$\^T!J:9;9-L MG.[.?E2Q$C/EX8(<)_OK5V!BC)!%V-[VBPVV='1UCZ[0/1)GVRS_6JPH9>@Q MB=/B?+1B;/UV,BG"%4U(<9JM:V@>[KF!7 MOM\YJ_*T1QB9G>79%N5E:8Y67E1T5;6Y@Z.T'%D+EO-_(UZ/S>97EYY_N? ] MQ*\65Q\OO'>W_&9QR[\^^9>W"W05\+NK^1\?KCYZ_LWB-^3_^?GB]A\T1I\7 M'GK]Z@05*Y+3 D4INEUEFX*DR^(->M6Z/YLP;FS9Y"2L#7N_,PP?,RQ+$C[R M%BP+OTIJS]6UWRV743ER28RN2;0<03G/8E)&E)$&/)H>(H,[0W"&L8R]G9(=H543E\/,]TP MSB8/AQQ)RCB.H[OM8I[2J')J?5NL24C/1]SI!]YJ-M%Q,G+W+E#M5JN1)/;<&9RK8'>LF# M!/,AP0(@L!:!YIY LT(WCA#((YD_G0O.(.>LNCHI9[%J#EIE\9+F!9_^OFTB M]B3CT03TPQP2S(,$\R'! B"P%MW6GFY+&:^+W7,KNT/A[F%3E$2CJ"@V?#KF MQ(=9FM8KH&W$5H@FZSA[HK0NN-[DX:H<+FL>][(!876G&2&H+4GH3X5"GK(7 M0]F#! NDYA^91>T]*_;/8^5P+I8Q9'<%GT6J- MRJ=7CL[R*"S3FAV19$OR)>+I&MJDD3S:IKU/M*ED# H!I#1Q*#608 $06(L: M76M2<0V,G+YPJYMJ/9HU(?&:J^T9&G&@:#XH6@"%UF;V0&31U9-H2>&X5,"6 MY:IF3=."5 L8^EA>4RF#2LBA3[8:K34>+#%A]T#;]$'1@KX>M*EI) ]=K7E< M4M:KX+Q78PSF A+- T7S:[36BM@0EL1!3Z$V$XUZHK],/B$,?2+Y*3+T2C(Q MI(08$OG)$J5 V1M&I:KB&Z4&:;A0_ZT/9B(V'HRI3YF C5 M[U%3DLN9[E3T*:@N 8KF@Z(%4&AM'AMM0E>+$Z(6BZ<*[B1"@R&NKG5)LNY: MSM02HZ$+-K9M(0GR96BFY3CB,)=8-IVZYK%AWH@$NEHE4&FM2E=U,W[=L%TQ MZ5>W/GB8@Z;]H&A!KT/:!#4IO>[\2"U5!\WK0=$\4#0?%"V 0FNSWH@%^HO4 M@A\GJ=;MJS)0O2LUZ*8F)J'JC@PF$50AD'72/+8[I3>YOZY._G^JLJIWA0!7 MW-)2VSLX+$%U!5"T JMO:W;* M8K2P,9C[BS]:T///Q3/V1<%2W.W2:QEW1 M KMBX((VZ8.B!3T=:+/7J >X1SV 8*\O7K$DO187_VH[A\8K*)H/BA9 H;49 M/SB'H18EOF=#!'S(!$"^0]F!X)M4:#P&H- FJW M W?3^[$HH\S5M@P.)U 5 Q0M@$)KL]IH(EBMB7SOKD<-KUITXJY\TMGW4%LY MF"%0M0,*KJS46CFV"U;E)RL4ES2N+H7QXI]X1/<3Q(EC2/'DBUDN=K?):3 M\,@#"E)^F(.B>;@KQYB&*">#-AGT--GFJ)%/L%H^$?>G:IG9E!(B.2AAB-OO MLD*NJ[F==7BWW!@;FNA""9ICB3E<("F&-?"=WF^D?C":7]3XGBR)_+V^X^INM-.2TY)4@K(*<+*^ M'%Q%YXL8Z0%&X@]*'L7>-="FK!C[J6^^Y)>#L49$"I))K0*K?P]D08I":U(X M_FJ5#G;OU /WKU^T?S+&*V-66) %*_ZDN=Q<#M(!R,D:;POYG3U^)JU!$ZTO M8X4P?\%C*SL>@&PK)"O;P0I!2:OF/WYJ)V)O@-+C'P#; ; [(.X9@-H!9N9& M#3)CUC66>'[!V2/@6EIITQ=F;LQH90VMM!N7DJM?J1HGYXO;;]_+:W#RRRGX!= * M_-BPK_ LWC <168X"L!!NYE%1A_JFUDL-F"MPD2 -6,2_JW>>"SO%$W MV7,AFLRZ?G:%8L5'?D'XW'DPY(5RA)>V)EMD,Y"Z(\^17K M5:ZC 2AW"UR044Y%S=058&M _MK26H>2#_3,P3.,4 >S3Z;'[='8,MLXB/I. MAZHI-U2U W*V7$$0E4IT( M"HI7M# IT"QDLT#6:U6VM42XV@JE4BTEG*EU(ZBVTI\M6R1'2I?'TG8X;[8< MB()<.[]JUYVF&D(?\*H@7IN1Z[5TEG:CW".6PG'J)..*PUJ' M>@'&+L H3J9=@*Y8DD:S'H"6M:,@J[79W$ZA'^+$>?R/'0(X+.[+E2<=+G=TN049@A%3Z^ M)0?)SPO11W23)'92MT'T-+B3!,B;OP?@4G=!D.P3CNH/1(J=J]APFA M94(89D*SE3!DZZ$JKP/K$;KT-DR["%V9:9ST +0,"(-,8?H:4TO:!F"_+? U M UX#H#M]TUD\Z]K@BD4)G/6$%+1\!-_7G]+J@8BW]##PJ WJL;0=SH(E/!@F MO+LMSS:JZ#HH8\^ 8&OYB#DY:TH:HB0VK%"^+K6GB6D;O7/CLIY.X5'7IQXQ M%*=ICT\M.\(P.ZJ2-R,D;SVJZ_17RW/HTF#D+$&/3%\NLE0)PU2YBZ(VB+P+ MT(O82Y.3;K/F$T-QTM.P0IG6X2W491)CUP\I2[_P84YL51\JZ8,^$M _K%R*M"^S=M$">QC8>=[.V M3PKU%3O(TCQZI:_=$8UD>J4U&VU@9](]QSV,CCQ4G21=AO1)1;"G'4>6SU&8 MSU^I-'W4X[7!T^I&\=0QPB.>O(HLU:/7J5Z%.=?1#$YRTER=:M+7UITU M-NHRY4$MN*K=2'H#KR"7XR&:P&X;X!$;1M.^KA394@"%6^;%F\$#+,&*W-.J MTMY2 :5Z!,IRKTUN"PT1FG4[;8]8-.MG%DOL*$SL[[.)Z.V-H#6>=GLZ<[IR MCUB4I).^3&T9'+];,CLQ)LV=$\E.0;[GV@MR0%KC>(/9_B@O6"^_^%GMP\O.)?% MG0^$'J)/>AK]V/)\'-[J7F[KNC#-GJI/[H[?G)E#EUTGG^,SA?-(1*KICG3\A5SE<&%LF:M M5(X_)&JY\>:82',C66U.6JR8E*PTEQN"U41H ?7[FJFFHKW1+]@=UIG_ U!+ M P04 " #-E*)8;VO.>0 & ")#@ & 'AL+W=O%-;5*N#6K<:^<:SR:%17X]ED\FA<*VT&)T?QV:4[.;)MJ+3A2T>^ MK6OEML^XLIOCP71P\^!*K\H@#\8G1XU:\36'=\VEP]VX]Y+KFHW7UI#CXGBP MF#Y]=B#KXX+?-&_\WC4)DZ6U'^7F+#\>3 005YP%\:#PM^93KBIQ!!B?.I^# M/J08[E_?>'\9N8/+4GD^M=5[G8?R>/!D0#D7JJW"E=V\YH[/0_&7V+RQ56\NZ:+E_3V M]0LZO7ASN3C_<#0.B"=6XZSS_2SYGGW#]YS>6!-*3R],SOEM^S%P]F!G-V"? MS>YT^$:Y$ MG-S[:?IH^<%=WO\E\KM]3T?TP^[I [W7594K0Z^<;9LAG9EL1/?O M_?1D-IL<=N_BW?20K*-0,G4O3VW=*+/M7CX@[4E1X^Q:Y^S(%G)=L)?V5]60 M F>ET9FJ2)F<,FL\&D^;%4EN=<:>@J4VZ$H'S7X(:[U6@4F;'&WDML-HU[3+ M2F>$>6,R+",52%455;SFRDO0E5VS,Q@[840+C[GC;>LRCL;:%$[!5YN%UC$9 MYMQ3B^)V*RN( *>UK:>L5&;%PTBV8TDE5PT"N)4R^@\E$\E'GUBC'8SKNC41 M.?':5FON7H($TW+;Y47H*ID03$Y"".!=7OI$8%83&Z#:DK=5&X,E^CMV?R$S MHK&:1P2VI?*V]O'"/'4HMI3RV<'N3GR]EE4ST:*4XIX\//2V=50AO M72A WTKB^W1CAW2H- ]A0@G786.I0#!4&%1Q+%:I4%>2#O^4[D\?8"CV .[/ MY+9/>WQVVA=X J1-8%#TJ/8_9/Y822ELLRV)B8G5I6.Q5OA M2X%SJ?K]NA%"'E\I[CM-Q3Y)Z",394P+BWU]12-ZB5S/IZ,?0_*I10+85=N[P$BP MZ2THWT7R:VN8YI,A77,3.DR3I.\>R)OA!>]"=WKPMV)@)\]*>(%;$&L::*^6 M%7JO$V0+0>(N/Z1-J3.92L@AW/4(9H^'-PNPR: +4FWJR+L0$02/'\:FC#.^ MRY>/>X?VL>JP$OCC2F*5E5\ F.\!2!G=(4@?(K)"^?\H^J(2#0MV&%UI1]O& MTM0ID<:&]%23E][T##Q;)F4#&:23Y;G0]HE>+Q25"?VHU@N]M 8*Y5A\QI/NX4C_* MXS#0=).\E+VX*/"Y'KFF4@< 5=JQPL45^R+R<&DF&) M_"V;%$4XW@R%[](>[:5-5=Y^#Z[#5X5ITY[(GW&.0OE3WL89O[.)TR^V#?3' M%K37QIB.E5!#&$>%LS7,T$.[+.[&:??_M6_+\=[Q #-X%0]!T;D)Z:30/^W/ M68MTO-@M3X"3;H)MXF%C:0,&?KPL<59D)POP MOK HX>Y& O2GSY,_ 5!+ P04 " #-E*)8R%U2448& "0$ & 'AL M+W=O,+EO9Q[KF/5P>#@4MR*J7KFXHT9C)C2^GQ:A<#5UF2:=A4%H/1<+@[**72 MO>/#,'9ECP]-[0NEZEM \G5)CE46^[UPY6!P?%C)!]R?;!R0ZO#PM^5K1TG6?!GLR-^<(O9^E1;\B$J*#$ M,X+$SQU-J2@8"#2^-IB]E4G>V'UNT3\%W^'+7#J:FN(7E?K\J+??$REELB[\ MM5G^0(T_[QDO,84+?\4RKAV/>R*IG3=ELQD,2J7CK[QOXM#9L#]\9L.HV3 * MO*.AP/*C]/+XT)JEL+P::/P07 V[04YI3LK,6\PJ[//'UZ?3TXL;,9E.+V\O M;LXN/HNKZ\L+/$]/SS$Q.QQX6.&U@Z1!/(F(HV<0Q^+<:)\[<:I32A_O'X#= MBN*HI7@R>A'P7-J^&'V_)4;#T..5R^. -_X'78Z(.YL163@'KI()'?6@ M#$?VCGK'KU]M[PX_O,!W9\5WYR7TO\7W9<117_P9J)@DB:FU5WHAKJS1>$X( M8O1.7%."W^)!G#E74RK.M/B(H7).EE,TWA(^)_%)::D3)8LNTLQ+G4J;.G%B M\"/>O'ZU/QH-/WR:S$["X_:'MT)%V(W;;JM4>EKMF\QN^6E[#]LN3#^8?S=$ MJ33S9SHQ)8D;>4].O+DQE4K$WL[P[8$X*RMK[AJ/O!'KE>*CDZ9,>?'&42796(HAOR32(L5RY\$*&1$,H1;Z;7AY&>H% M*ETK#R*C%#/%EG >0UN/[/2YUF2:JNAQ-_!-*-WF6"(VRG895O)AE7JE/5D= MR+#=300*DZ"0?ZNM12+\CUQ0VR$(H@PB=2(P1"5E6A MX!\?0P*%Q[GETX@/%.6$+'QNZD4.+WQG,NQ* C&(0B!BI?((TQ^L2*ZA+&NV M(5JA&#)X#]8/)"WG>Z&TYLC+#.ZN%;O]/C;6+1P\/A=8#&7+U%3![!.;4U-6 M4C\PFZ2V-K8!NI-%+8-00PUB2>+QB$5UE.M2%87();BQ)R \10!-H=*0]'6G MF''$@TLATQ[\I@ZPMZD#[''M2VX!KL%:2[ZMT<9R;D/*2:-T$KC3[0V6BA :T',H?&X# M$E@M9J,O!I$^9-_2HBY"ZM@YE<:]'+$D5Y2UO7]/+C M>>L02AO+7&)5+ *3-57>VE?(DF.QVG7LFKFH%ZZ15J?(:TDR^@4DV:[\SC%7 M[@UMNZI=; %,F_F(9* R<*M^F]H,**JYU#;NG\$.8 M3!>TP=-_0X7CK::58E*5K#YETD@%K?^O M"?K_4.QEXLVW"G9W)=BUW!Z)\P!&TU#ZH0HGZT@C%M?D*L-G3%/FL]-I\R7@ M.O)MOQ52]PR=HHYQ#+1A\S0CICH3+ Z7T\@3C? M)<+-.*T_36BB'UP37MH%<1YE-Z2)L2AQCM;V#@N5K8SVGK2EADQ+XG3*M0JW M.HGJBU.9Y&MLSE8W>BBRM4I DU3H+8P7A,D?:TUB/ Q2PM&BLI7#N71"&Q_I M<&+R)PTG! =]F;WYST7(T1J.-UX[!IU;8DDH ;X+@Q%_9<<+XVIT==V>Q%OF M>GF\J^-*AN[C1$$9M@[[>^][PL;[;WSQI@IWSKGQN,&&QYPD&C$OP'QFC&]? MV,#JGQ#'OP-02P,$% @ S92B6'8;.WVR% K4 !@ !X;"]W;W)K M*TC0I+E6#_( MZY LSW,1*)*P !15!O]H;^]5MM1Z* MA[;IW.NK[3#TW]_WMBYM6 MU=W5FU?\[!?[YI49AZ;N]"^V<&/;*GMXIQNS?WUU=Q4>?*HWVX$>W+QYU:N- M_JR'+_TO%I]NXBY5W>K.U:8KK%Z_OGI[]_V[Y_0^O_!;K?7]T20;K1Y4 [*/RST^]UT]!&(.,/O^=5/)(6YG^'W7_DN^,N*^7T>]/\ MNZZ&[>NK[ZZ*2J_5V R?S/Z_M;_//VF_TC2._UOLY=V[9U=%.;K!M'XQ*&CK M3OY5#YX/V8+O;L\LN/<+[IEN.8BI_$$-ZLTK:_:%I;>Q&_W!5^75(*[N2"B? M!XMO:ZP;WGSZ\-N'G[]\^/SJ9L!N].RF]"O?RLK:+K3=J>OWOSC;WH.MYI.OYI=TOTG5QY6FZGBV+L&/QZU87 M[TW;J^Y0Z&[0UA5U-YBBA*0L#,!!NX9M4>./LJGQABN&K1KX>QAPL5.V-B,> M'GKM"K,N>EN7=;?!OV97DR&Z!78LF[&BI^OZ05?\CEX4 VSU6G75-4Q%VUHU M>!4?B[&KAVLRG"K;93DAU>K2;+KZ?W&FU3O=C9KHAL66QE:J*[60_?;S%^C& MW?/K6RC))WFQ6%O38J/)_=ZSW6B[P,6J>EWC:.6P_'WQJ^GKLGAQ^X))&T"# MU0WHQ0OP-%7++'D"HV*OL=/-H?C'W[Z[O[]]2:NQCC_=O7RZ+-XZ>+)RN^!= MPDWJ"CO0B:Y0D>M"E/+F3&1EK]'J7EMVKW13LVKJC2*/Q3R@K\,^"[@;L!9> MP*_#T\XI<6]>"JII3(D+G7FA@#)H56[/'#D_D;ET2CK[K>Z*)\:"KT\G#'#8 MQ_G[GSY#1+\&B\V>E&A0JX;$L":6NWPSXO7=OU[BV=[@A=Y8>=?IC0@JR#"J M:])S5FN^:6L<*7C;FJZ96@6("S%I_ER*AH MQ:\X,NK@)^$0<_"C'K:FB@M_/;**4X\^X/#-H?B23"7[,])@UL->65TT$&3G M]*EW?DP66?RB+=X;$%JOS?H:'.@;S23^6=HV4#A\(-: X6"!0\BCCY?I_5.T M!%8:4<"=@M!:];NQ]7 @R9Y2BR3MVB4MK0JSTY;=4;'2I1K!*;\!+:B[D3T< M6<8:[P6M0>2%2O!;WDR7.5&9JSM_;A>L^?1=6U$-X9(H7 .5],M(^PR14]78 MDU36T0E=.5JKJ^O!7%>0"1NPP^78:0UF4,UT 7OS<.34S8(3[ILHQ!DK/4 ! M(((!)D1K&O"B(?((9073)K\YD&?3EN-';V!8[$2(^W4GWI5V]KS5:RP;Q#KW M==/@'+SSQX@;\+&>%DW>PYK?<:UE\1,B056Q=2V^B?Q:G"]9?'@$NH.EV\Q8 MO;N;*U;=5= !>U@6'XEO9]3OC$IT.]/LZ ); $)X[(W5K(!N7(6WL"Q?[)D" MXUI 1B,I!1RY];%)HI#;TBN@MQI948055J\.!?RH6"=K4>V^LBOLS$ L!*_( MZXG&A)<\ R.W)YI^',?G8?R<_BO1+E80?)-TY$0LIQ==KTL$P9)47WMOCO#F MQLYHX\7K MDS)!_\B>R,J0/]3MV*8POU/-*!)8>$GA9-)"CO.!>,A4/T!FXGGP=TD\(&). M;\@JZO2,CN3X,M49D4/8;S%N@G3("-U ^LN:=-(,EP5RMI,Z.\5KF3)-<(]L M!U;3%JR0BG0(N@J;JL: J/A/TOO (N877^/X-;"OT@W,>2+H(-Z(9PE4M6:, MV'RK=A3(L.\*#A-+5^/ UJV5[70EVR*285#8\@_!44@_@"86M M&?$$CTA*P!PB(O%B18"#N>A,4U<_!HK1VE!C!+2FSPI7Q#A04(FT]::\)D/YW*#!B<3V7K_0]M@^OB),<0#K)D M7!BO#VYX/'ZXA,8S],VO$\ZP80I!K3$11O&LD/ MZ1ZK@^B8[M*E!*(+%.,-);%1_*B?4B,(^ML^Y2>#RQ M85I6E%!60JPD\A4\Y1K<9[MA#":$G[G.Q+^L--0A9;?)I*R6-+PBBCIV'^NQ M8\FHAJW)P+^$]P%(>K)V_$%*KD7H+]$2V<ATTEUPHBRZD MR/0<*5&]DPAQ['?!9P(D@1U-JH.Q+V?_)3[;;W]4VG*9OZ2(CRU"[CX)Z>*Y M'-\F"=$30FPCL+ )A1R?X#S@!>;IH"@Y(H[2%U#C;G!S99*LDZY7JEYPT6$: M-UOERTCSVBIK<'!Y43?ZK:(+8T/=:*Y; <)X#,+?95\Q)_7&#+7WVI&AT=]Q M3(U^&.H,3U8RR/)9-*YWXP$(>5I*5G#A2K?T3X F470K'XIV%;U MFO'&$)E+W/0L9VB8WI \C8O:9$Y>ME/.AHQ;$IB(%8-XPMZQG#&KQ$3S]V0O M0^%PDC63 I$"6C(TN!72/T)=#[P7!/9^JE(E1Z7D3(X4*D2D3'F#25# *@\E MECVIJ()C^I;1"7F(P?H,98ZSLRC]E*E=G70IC[HW8D)$. ?!'LH.DD[-/*9D M;+-&Q6,G3/7U/ZQ]CR[41U:0:Y1M8.Y98!*4I$)6"NL?V$'F,CA"HS^:F.O6 MY$NYF4-*LO#%3Z][8JG!CYQALJ3.?Y)QQ9.4AGO@%*,@E(T=J]3MV&7Z,[QQ M:ZE6YUO'XY\6>^@(AX-0B.",K12+I)+51&:5T2[4JL@%>:L^PTG2U5P0E))[ M)8 LJ*L<\-7H?)$B2/$2KF13#I4-JL@4?3-2D,&.&PJV/B=:>$8DM!JN06 ; M5SS3OYCLS=8J*=DAE@!.Z:-')%S]E"26R #1=!U/6?#GYS@VC5PQ?/Z!..X+ MZU2MP]%N6_<%T@D8#=J^ J/P;=I8 MVDHMPXGBL;>$" 5HT=.ZZ=CID.2Y\13-3OLE$UR?*W ML[>;^YZS933]P,5A22UQ\(KW$Q\V21L(I%FX,/8K(T*F0+]9UDYE 6Y5D9LP M93G:5+09.\]B^%((SI2"VV.'X[RL"+@WNWE)+NG8>4$+FA>-E2?DID(N']L. M&38-Y>2SC"/O+3"X05C1TI-,)5.FIM$;JJ $"V7LO#BI5IEC7/AN2(.S98", M#GV"Q'PPEAP(@"C5:#SR"%%45T]],D6,4LYTX ,XO%-U(\*<%!:6Q0]C? :> M^"I0[$7E#<:5SOI25(ZYT."["#I#2TWX+_ _S]D91DR:L6*BG) NIMT8D!"$ M[7RQ]T*I@D=/IIKL[8I,O=.Q5"37MQ13)LG.QJ2 MD_:@E DO+K\.UM->-FZY-V++_>$T@ L"D!9+GL$](;.9<^ MEE1$CN5#,%)M)'P&TOP5$5:=T*D?=#E&J7V[T&-]*+KBJ6R?^#&A#V_?3T:$ M0KXS;,49$<6+4Y3F!A(GK!:QV=/4;2UY)MD4)#4.#&G(RW[5AQ1JL05-N"S2 MM0>S)^"34SL??N)W%9!"N=75Z#%=_H(H&/-ZXJ-B>AY4WG'//%RN'7F,XZMF M$-?VB943%5#<;X3S61D;.V<[4DAV'V+VF6 \[N$"7[\(/(1C0CB7K4<01R_5IW@L>F-YA%QTM_6Q;6U6_8V7K MJU.9(_=U0--EZ5[JG&8AK*2Q#8!BGPT%B,1*&/JH7-7#V64$)NG<0MJ6DZ(C MN,L#*-.">1W;3]0GG^U"43M,NF4MSJRD22G,R X[Y,)9C74BD^FQ*5>7XS*G MPG4HBO4$@JG%,K':R?83WT<5SM(/(A0$^>%WF.N-<2[4AU)+[T(7>3T2E(N5 MW"0_WFG*L?J(2]-*KED#S'C@Y3NW KBE@Y#,,A7NC[,@'TY\\3'7N@ MLF[P M$QR"QF(LVTK,H#!#IO$L4L M^2A?DMKJ0>HF*5Q0&*^1XF=511&=EN#--;23UX_0Z?B*$];'Q>8L+O1.;\[U MK-46H\PZU;1.%3/ Q=A-EJ!R8GJ(#"]YC\%$0/7$ZYF\@_L0*A2\8WE8)LQ: MI)#T5(I%IYPB5XVF]<:YUA,'4Q%ZUACQ7=9+VO4M; _YUJ M8Y=(/=*.CVY=:BFG6S>SK"KGPZRZ*HHKI/",R3GC.UD#F/J=.!LE>1]Q%5*K M.-1.0Z]4 $CZ?F>HC*YE2(!M*I,^]PNB0DFQC?W6-&V)_*6S>:HIUB$JFF$X MLMO4F7-^+B_F).+< S$QV\0)TK @>K@C+_>?[N(CJ[0 LM35TTI*SJQ%.D2&"N-RWRJ;%F\JX->D'V'.8 -K>A.W#E.X4FYW,/N;(9NNC_- MC&UKF%V8KVEKD#Z83KH4O=77?EXNX$L727*A*MAI@L; 1@U%)2L^0C+I$PEY MBO^/#8.>GOQ$RI@/S>:H(+SMY\Q\89G(8D' P'T9C3_'3AR)OR/?'T>M!*2&5R>EW_\?:O6#GQ'YCU@;$A7.I^U7+>""!VNYO%6&W'W+\VN'_+*, M$KF!W9,"RS@UY)W])B 0*VC[&"DLB\_B$9TW[MRO^E:+N*N*"HU4IN.8%/B, M7#%Z:9J[[-7!&AHN4P\DKY7IQC JIZ'AYJ!U' ^20QE-8$4V_>9(3,U?(>?/ MC '"=PZI#;[3 M6I5A@/$O;/<_@F'YIK0%]V<;:C6OJ:SWZ Y2[H]!VX6^;1X]_7ZLM.Z2"'P2 M/:D*!JD\2@@'N^3V?\JD/J]-B9J>F4+8MB856$933G#]C9,%BC128 M4J(96P.5&5<#4L($H+) JD(QBVB&+/*R3@CX_-H?(S(#GN7WZ#6KLF2_"B.S MV!/V=F?.#F6VV!,*J6& ^4[MLZIJLL_6CD1XR$=>Y&#Z(SZ'CN')>]"-P9"FCM?25 M%/"0#?3CX#V+]%.R>"5N,%$W3J?P) :Z2(0_T.J-YB$E027@;[*.1:[:<:7)0S<7"K MFTJ2HE4 @.>F!/T/5'NXIE%)/IA^0'HT0.:'6 XD^GX< MS(:"XB"=ZR&;I(DE^T$FJ^C2HJ5U1X;*([*DOSSJ@AQL0T-N4LKB^B\8_U%9 MJ';X83/3^0/8V:[PJG_Z;#%G8&*N#0QG(4[FA/Y^]V)Y1VB["47=O]\]7SX+ M3Q9A$)-_0I1^S'CJ-\PWV4_(6PU5IA_*<[^@&^37Y/%I_"W^6_D)>GI=?LC_ MD4<3'%SB&DMOE__ZYY64=L*'P?3\@_25&0;3\I];#7=IZ05\OS;P /X#'1#_ M#P5O_@]02P,$% @ S92B6 Y68\Z)!P (1D !D !X;"]W;W)K&ULS5EI;]LX&OXKA"<8; '5UN6K.0 G36<#M$60I+N? M:8F.N)5$#4G5\?[Z?4B=MI5,LFB!^1**K]_[EG*V%?*[2AC3Y"E+3C/)\='%F8;?RXDR4 M.N4YNY5$E5E&Y>Z2I6)[/O)&#>"./R;: "879P5]9/=,?RMN)6Z3EDO,,Y8K M+G(BV>9\M/(^7(8&WR+\B[.MZCT38\E:B._FT_66W/ MU/"+1*KL7[*M< ,@1Z72(JN)H4'&\^JD3[4?>@0+]QD"OR;PK=Z5(*OE1ZKI MQ9D46R(--KB9!VNJI89R/#=!N=<2OW+0Z8O[;[>WGZ^_7']]6'TFGVZ^KKY> MW>#I_F'U8*'DX^IA=3;1$&4()E'-]K)BZS_#-B!?1*X31:[SF,7[]!.HV.KI M-WI>^B\R_$+EF/A+A_BN'[[ +VCM#BR_X&?;7;$-A]F:$OJ@"AJQ\Q%J1#'Y M@XTN?O_-F[FG+R@=MDJ'+W'__Y5^F6TX)J_B3.Z8TI)'FL7DBJJ$/"2,;$2* MPN;Y(]%TG3)22/&#QTP1BIJ-1![QE%-;@&)#(D-%\[AZ8'^6_ =-6:Z58Z&R MXV\1)"N$-+4P-QIJF-(\8L96@B!8660M-4\O+ M>:5(E8AM3CI9G02E<62&LK5D \O5!_+[;PO?#4Y_VHE;PE.2#ASEOZT!_ #)UC.^R&WU'U1GG]Z M='_X%1[?=_@KM&X WY KDD1,:HPG4FKDHMX9(5IB'$ A(_-*9 7-=Z1@DHN8 M1S1-=R9W&<:%JN3&2$3%J[Q:,Y*P-+8:2S1H5("T? JZ:Y1E.9./.Z!$ ( - MV*UA2T.O#%K,(4-#5)VKM7;6D?-3!1[Q^VH P 24SYHE--T8[CWLL:W!Q@)C M$X'_&+A2-<@5@Q:R(3+F)@SK4C.#IU#()9*E469/.**&T$61D#'J/-WMNRU* MJ5)\PYFJ&37N+6M'MN&N)$"Q@Q08DTL6T5+M:T+ED*,+" .:%.5C\ISG&L65 MS;>$PO^Y(!SJ1MIXLJ=]2V-V!]/$(EIPD\$0A<5'HG-98)-[3F-CU9Z0(X6N M5+7M/C/6 M^*F4.=SWBU8^#U?E[:35>%C)#6L.M*9XX?3WLT+EF15H@;$ MFJ?,)*TLH^]U_T4J0 76QZ+2<>K*"JS M,K69CE:)NJA'OI%',\QP_M\*T(8C@(O"^;L>('3F<_?=07JE@SYS2,YTO^O/ MG2E,W@.XO3%PDT=I&5>E25^M*U?DQ!V'V+K3M$$X\<9!"T"1[!&PI\)L)JB< MBCW:4^=FV\H&H]C,#W0UQDA6[9;<,G# .%*45VC$J;[8XIUH+9 M%YP4,P'QD"7(/W.Z-JV1L[]_138ZHXUP-,887?.> /(>(M"N"G)]1;S\%T6\4Q M-T'IM:P&I,CDA>2U*7I; HR:1'RQ;JSB_V"1J)JT3>._R. [^[9B8O(-L^7G MOQ8Y- 1IJ*[S1[P78@>& 2:=KN"R,K7V'*6B,Y\M M!_4:2MQG$WJ0"Q0*/,<+P[>:<4#5]7Y-89EY-5TIQ7[!;O*KSX,A,)C_@QWV MK>V-7?(@:1OX_,_#-3[!$KR_#&[SDS[S@E/2><#LSAYW!#M[V% M8W= H2F@'QFV'KRL80*R*,D%'+X;LG;AN<=@3/>E]P;LJ=]A+R#\JGE)MDN? M&3,)+XZ],35Q/FYV@>],W6/+G\-&AW/G>[8?>\0H5N4Y]/5STOML#1<^VH_S>&,UC:'Z@MU"V^__J^JS M=X=>_?, /1+32V&EWH#4'<^G(R*K#_+518O"?@1?"XUXV<>$H9"D0<#O&R%T M&PO=V]R M:W-H965T2U!U43#YXPQS,3OU!MY\X(&GF38#_=%)Q5)\1/VMNI?4Z["YYCG M!HAH_-U@>NV19F.W/4>_LK:3+5.F\%SD?_%89Z?>H0M:193OOTZ.+R8?(\?IH\7\+5Y'9\>SX97\/D M]O'IX=O-Y>W3XTE?TREF;3]J$,\<8K &,80;4>I,P6498_QV?Y_8M12#.<6S M8"/@#9,]"+[L0N 'PPUX86MR:/'"WVBR0QRN1C2%A_R>^FQ'W>O 1*#QE".>BJ%CY VJ%"B*4FHH<>*F1C-0@ MF48J ,E?F*DLB"CLDJI,@1:089SBTEI\K82JJ0]4CIS6O3#)V33'.=14][KG M?OYT& P.CI4%XV4*E12I9 5P!:70M$'QM*2M,9 Z 1T>FU745!5&=>YH5;6D M8U&]@28]B41:\G^(3,<$7BHM:](<(L<4(-<92FHII '"S8DNS[GFS@::)5F) M'*0YFEP0DV 1(6HID?/8LINRG)41@BU30M:0,"[)_+S&][1D3,[.6)G2(=P= MLE@.V[R'O5U(*12.DB!V:@=$8E'!\3Q5=$;/R_ M_5^99'VVR4H&7BRJ:WGAY&VUT>+E%6=-_CW:^\FUB*S)[?0:PRXP<@G0S(0? M4MZVSA.UHH2EI)ML2HGYGO-:2M-OU&$^O 6#H=_I#?=_#N[.%E,IRJC![6K- M.[[#<+#S?O3P\& Q:F2%4V)%>IYGF"08.4UT"6A]OD;^^'*9&7V3F+NDRWBE M;'5WE.GMI$GO#_5A1F'?\GM#NMGDN8FLU?&?R6(GFUTU:K3*T9)H333?##)/ MQ.[VYYPY/\/-*!)'8Z)E3S!4PB3".465)]SE&QE36R?^HOA);.ZZ])FQOR:U$B;="[57C^QIQ)8X[#_:!FSEKWZPT% MN 7;^_O#G7?]NP^].46*&ZZ(S3*OO>&7E6/C0M3&Q@6"N3=(4?Q:6%<';Q"L M#HX9;]RHV2L946+"-6S35F$-_Y?3#86Q$-.WI+*MGHQQ]-XG^< MI\M0P_#]-\*,=2.\1GDIG$'H[ZSM-_^K+L7]SANF0)G:EYJY-E#0W'.F'6T? M@V/W!EHL=R])(I>:VU&."6WU>P=['DCW.G,=+2K[(IH*3>\KV\SH08O2+*#Y M1- GM^F8 ]HG\NA?4$L#!!0 ( ,V4HEA_V[ 5*00 &4* 9 >&PO M=V]R:W-H965T4*(Y6VGRS*:*# MESQ3=ARDSBU.FTT;IY@+V] +5+0RTR87CJ9FWK0+@R+Q1GG6C%JMDV8NI HF M(R][,).1+EPF%3X8L$6>"_-Z@9E>C8-VL!$\RGGJ6-"?OTHLOZ7N$?B2M;&P,SF6K]C2P80=!O MB9>890Q$;GQ?8P;5EFQ8'V_0KSUWXC(5%B]U]J],7#H.!@$D.!-%YA[UZB]< M\^DQ7JPSZ[^P*G7;_0#BPCJ=KXW)@URJ\B]>UG&H&0Q:'QA$:X/(^UUNY+V\ M$DY,1D:OP+ VH?' 4_76Y)Q4G)0G9VA5DIV;7'VY>(;[B]N;/\^?;^[OGD9- M1ZB\UHS7"!^:N52"U]4@LFV?9.\J5R*-BY=1 3SI_9)Z^R ?]W*O^XA M])_R[S#"20/>@\ 53AWH:2;G@H^_#0%?XJQ(I)K7Q5!0U@S,I!(J1LB03KB% M(XL(=]HA]$.X];(0/G\:1*W.V2__*;]QZA-\A3'F4]J>)^_5./OU26='XT@J M<*DNK%")/8;[PEE'0V8XU8:R0",+=/6?T>1PJX6J3'^#X4D8]5IUP2!L1[T# M*(^XU-F2Y9<&$^G@6L0RD^YU+]-VM#\"++]W*9%..$-B;A"IR#F[H]WN=W=D MG:@/S]J)K+1^OTRDNM&N%5'K]B*XL;;P68ZUI?V(9(F22!OK8I\+1\-H>+PK M;8>MJ'T,3\74>5]V]NN%W6%O5]P/NYTVG2=KJ;090ZQAH8VOSGH&F5;S/QRG M:HO;(!S6*)5,;K=5-R!OR1R&1-[X;@-\$K7,L73. R%6;.^VYI'@G+ M+Q55C03\G?DA^9\D>]S8'TF166:LF*5=/V/TY%-LK#/2/\2TO$2B3RT%G%O. M_UM=X*L?;@5P10S(V MDFJ?5'3$R&,PPN&Z?EIVG9#8$F^$9BJAWETP]3Z@/1L *MSS2]&.L) M;U!UEI/_ 5!+ P04 " #-E*)8I"-9710+ =)@ &0 'AL+W=O \I'QU5/HO^)/JP6>Y/UA\<'ESE?.]N!/V7_DG M#7>7M99(IB(S4F5,B_AZM_ABO9*?47WGR(KBDH4;/]?:7]/:X>U[+@1;U7RIXSLX7JRF;!( MQ+Q([&=U_$V4ZUFBOE EAOZRHQOKSR_/QW>W=N[NK M2PNZ\,EE6,J]<7+!";DY^UUE]F#8NRP245?^$FRH#0DJ0]X$9Q7^SO64!5N/ M!;-@<4;?O%[8G/3-OWIA3FXQ+H=)\-KD/!37$T"Y$?I>3&Y^_LE?S7XY8]6B MMFIQ3OL9J\[+K:?,B;(O!\'>JC3GV2-+!.#1L%!H"^G'5!S+4+"8AS*15L*; M H*C6:*R_845.O58IK*+D&-6=(PM4OD'F2BTH189CAK-0L4D]KJ MN-"9M 7.ET75&L3?A?*1+&M,RH2(S!0C86I1GD!YZTP'LX0J(P"QD)L#VSVRG#^B MKSE+,7F2,H)0W#++$Q8+02:@EL*0%:U8=FV J!T$#N49RPL='KA!S? PG;8Q M\O-/F\!?_V+J^#[F,@1C']F!W^/,6+A)$O!A0&VVQ[L87:DR\B05-O8H.#C/ MJ_US/,CP )4(PIV%21$AEA *AD0>K !S<2$MUQ8YOHNA"M?:<%'/THCF 8:L M:"L]2GM W&=.(9NRMX5&9R:/'D8$M=K3OH#P. 3*!P JQ,8!#AW1\2'9%(E0 M1N0/AQN&@:J-XF4D=P(6ZFP4A&;"DH_ZQB"Y855%_1/C6TM6"M9 ,=MXTO+ MG*$>YBBAG](/PXO2F;)54"/TP]C<&F%VH>(+A#XW!@@)J';+1)]0)L):#!H/ MW0(<6;6+;IX?> 03MC$";C,R*B#%[GE2"+8O. #="H%QKAS?5V*JO&IPJ)SE M31:2UQ/*:8QS76C+R8"[4R MYJ)ZD6MU+Y&%P1M3[/XC2!\;OB9S@"D)+<'7/+J'>@O0@1JUATO"BU;6.2#4 M@UV<^5X+08"&=(D12![AAR<&B@H&CRR&W(B$2SZ!KBI+H3+-+#R.P0U^+ES-6+\[T^AX&!R8XZ EPMDIA M51 V8VFY;1,,(:0E"UC)#'=\F18:PC2&:@<*-I-BH$G%0240R!0QX ('&4J^ M!7553@TSVU0%K=5 PXOD#I-8)BBGK_"P;"@LO:*^-N8!E68D@@P-W(8MC%;:Y#6@K(T&%&VSRB,.PI%62=H MSY'9LE&5T8H+XL=0[F1:I/W6W\" GE/_X5C.4W@?4DX07:;>F2ICGZ!%D:)^ M364]0E:.V97(4!+K+"E0$E)B=>WMMM"Z1"-/E\8) WF ",O417#,"@BE)J.A M*^P@0=411Y(PMZUUCJSORVBQ<=VC1(AA=3%M/)CR2)18APC!O!'L-D)TH:&R M0W"(DMMA8PIH M,*_Z-8J Q%XPWUL&ZUH&[Q?;.;LK=F[4ARQ$5ECK]!>O1E?@!Q5G$"W]S_?* MK>L@O"IM9;&J7L^7RX'(W/?!O+(\@]2PJ#4C!\)! -P*TQG[3CO12+6J*:1]%N!]7B8RH.W7(Q?=#ZM2UP=.O BK&#M*C#:Z! MKQ!:K9OYR9$]R%6/^^WQVU?;!8#9'SW.O'7B=N%"^\U7K= MN5_.UZ?D/-J(#EI]-7KK;1>;UMUZV=PYC)Y&-BP13 F6W0?!]MO7_+Y[*O:R MS6*>S71??7N$WSV;33=+7GG!8MFY]^=-"M^>H-P-:A?>;+MMX/IR[FWFZU>] M(#R?YC>&!)Z_6'7NY[/@N].W6V?;Y+5=M7S?[]YO5D]K> *JU16U#]>!5Q$YQBJ0)W1X4$NC_Z)O5=+5F_VC=SK9P M^X0_EM/EMB6TG/KMV\\(X8I&'F%O],*?KH%+)@E]>X,LA@>K^D%UGFF)B*6. MB DB8MVC/1)M&!AV1 ^/\W)W")4\#MEE_WJ>1B@Z/&K3"#J3+O(\J78A='H? MX_E^>UAU?$9'VLYS] 'CA_7?T^LY25ZKZW-(; WI 9FM:W.78;Q%-^1T2O%QUB>42RMQ)3;W/4X.R M,ML'J55HQ[K&L$,'K_W#_Q^?8,T"JY+X1&8T'<6$4"^PMWT'[::6B6>Z ML-3.=@"I;[!<=/P]\QO@P. &64MOULJ ]29H#VO8"6B<#^&X:)%D&+X>#/"] M[8A8FZC@)]D1,7_6//4[DVRKCQE:\!AX0OUNN^CHP=UOC:@69:]/*@:3KKS5 M"$E'YM/X[B-0L=?L0YH7EK*FW.K6 0^\V7HVW(Z_])>S/GD]3;]Z^X?&DC8G MW3IN;B=#07JLX M9ZIP7X[ O(J.52>5?24UXMRW6JF[IZ$U,QG[W$960RBL^EZ.7&GH-6-53G] &BGK%4I_7L0 M'"H,#H#WL5*VNL$)ZE^$W?P/4$L#!!0 ( ,V4HEBJ=399"0< $X1 9 M >&PO=V]R:W-H965T*TQ1YIB;:X4J1*4G&]7[_OD!(CITE68-B+)5+G\IT[Z<.- ML5]<*81GWRJEW=&@]+Y^-1JYO!05=YFIA<:7E;$5]UC:]RJ4V1P-)H-NXTJN2T\;H^/#FJ_% M0OB/]:7%:I2D%+(2VDFCF16KH\')Y-7I/M$'@D]2;%SOG9$E2V.^T.*L.!J, M"9!0(O-Q(]X(I4@08'QM90Z22F+LOW?2WP7;8$MODKP^>,W'\[/SZ[/ MYQ?7"W9R\99].KDZ.SG]8\[.+J[G5_/%-<.GL^NS^>)PY*&/N$9Y*_LTRIX^ M('O&SHWVI6-S78ABEW\$G GLM -[.GU4X#FW&9O^.F33\73_$7FS9/PLR)O] M+\9'V?OWRZ9B>N5JGHNC :K%"7LC!L=/?IH3%:T>E"$,* MEB/GK%PV@3O(WO,@)[KI^#6A"Z^3UT]!>B.L8Z(UP;%-:8#V1N +]H2'.%]: M&%?%1#8K1I&4N0B $CGWG@?ETPG;"FX#)7I:MN.'T(H<65CQ+Y#)?5Z2 _J( M@8;,)*+GXU](#(&ON?4REY#B76OP'2[0$R&9-V1-3>N#Q"YU(6]D07)[DI+G MR%BT64Z2AL$PURS_ E:2PJG;R*JI2-C/L^%X/&:UL,EI&?N(ZK8][;YG1EZ@4!=-R:3<+6 M["Z.XD&'DUV3;(+NJE08%)"%C7&W,<3P<;4(XT-M,_8):?0W M+[U$_GS0+8I] C$YV 5!@OT]F8LT4FK[S&PH@^!Z)PL)+PW9Y_D"\A =M5.CB:G3-V3+Z#V.'%BSSXA+ ;7OK6GJ(<*09ZVO\/-^?L'V^&T[ M6-*Y Q+ZKKE"%JJ"?<[8.6@,VVL5AU4R,E(NX3[V>\9.+6]TH@RKEI((X2ZS M%K#!8G[[,LK=\6&G?X&N)Q!PU(SK5&6WB?.\2YR^BT,-"%NY+N(]MT:3.R]P MIHU^QEV-C:4=@(?66Z=6U&LBIT0Q/ ]8F H]S;@.W:>4+HZ20J3 M)P-'ZX#AS@JE12='*DK$C,2X!OWU)E9I@IXE^@W-DJXBX!KGK=!K,.I[2ZLV M&^I5>HUXB-!/;2P>W,'#FGW,%EGL@5PY0QJD1N.BM,Z5A,>9 M^%8;@(QIC@7$"HV!$,QJM*21$FKK%C3U&ZD;$5K=$IQA! I')UOTY'Z,<+SF M6OX-XYK45A7?I,@O/,)*BPL<>/_$@7>XVSY0*$:#P*)= J/"J-(.^YT+@.JR MEUF=%-*QVZP* [C:> :YY#3I@13'T?Q+KV=DW\UY$7IB :_%UL"[3+U-FUX% M]-M//^$WIV5-A9&,/JW7P&]Q]%@)&P)M*.YY4RU% MFB,]82E#R&W6E;(FR+&=(R]2N@$TKC+WYA:BZF!8QBZ,)SIJSD6GZBZQI=L! MI?N:VT34X>VY(3$$5S\0DO:(@B&&^P*=8>(AH9]3!9I]N#AA^@9O?*^A7Q7M MJ>9' EK@%B)1=IP&16*\&^B'HXKN$R,)O#B4B!U?(WG7)G2#'35#AEMHK!#8 M1H5G0BNB9K=CMFMJE)+OV9. VA S36 MQN(B"3"EPQ[&[P,> 5E2KAJLT:-@14X^HH-D$_1"P9!ZWP9)3$_R>S0N*OL;0TAJQ5-<_(,5#BCM5!10(;I#)N1V+BGIA/#OP7QSL%EZ8Q= MQOY,'2^GTE,&4W_G (%CFFG6)9,^C%_4(5?WIO:M_ZG^8B.'8[,P0\:S>R]( MH]X=-PPLNLE3$>*T&*^[:3?]67 2[\BWY/&?!DQ:9+YC2JS .LY>/!_$^NP6 MWM3AQKPT'O?O\(H!@:Y!!/B^,L9W"U*0_D(Y_@=02P,$% @ S92B6'=5 MGNZ."0 /24 !D !X;"]W;W)K&ULU5IK;]LX M%OTKA&=:I(!BZRVK30*D2=L),$V#)-W!?J1EQB:JAY>DXV1__1Z2DJU82N*V MV=T. L0215Z>^SJ\I'2PJL0W.6=,D;LB+^7A8*[4XNUH)+,Y*Z@<5@M6XLE- M)0JJ<"MF([D0C$[-H"(?^:X;CPK*R\'1@6F[$$<'U5+EO&07@LAE45!Q_Y[E MU>IPX V:ADL^FRO=,#HZ6- 9NV+JZ^)"X&ZTEC+E!2LEKTHBV,WAX-A[^S[4 M_4V'?W"VDJUKHC695-4W?7,V/1RX&A#+6::T!(J?6W;"\EP+ HQ_U3('ZRGU MP/9U(_VCT1VZ3*AD)U7^%Y^J^>%@/"!3=D.7N;JL5G^P6I](R\NJ7)K_9&7[ M!LF 9$NIJJ(># 0%+^TOO:OMT!HP=A\9X-<#?(/;3F10GE)%CPY$M2)"]X8T M?6%4-:,!CI?:*5=*X"G'.'5T]>'3YP_GU^3X_)1\^O#ET^7QQ1]G)\=_DK/S MCU\N/Q]?GWTY/Q@IS*3[C[):ZGLKU7]$:D ^5Z6:2_*AG++IP_$C(%S#]!N8 M[_TG!7ZF8DC\U"&^ZX=/R O6:@=&7O#":ENI8;]4G4!OY8)F['" #)%,W++! MT>O?O-A]]P3F<(TY?$KZ#V-^4FH_9I(.R2[3D2LV0X8J2=Y*H546D[2L)%0R!P<3LWB&TG.)Z!E!,\')F[D^J4B*I<&N? MJQZ!V9RS&P)N$E1W1")FW!!%0;\QX9#5G&=SDB$*>;ED %"1"2-<-2/9'$G+C-.<\):*O 0HCJ>F9:A5ADXK_:^L M\%0Q46M+),TA0Q&+X.VS+3*A%&(;S!J6IN2Y<)HEE4%>@B25Q(*BJIH9H!78$,( M84TO1>^8')(3)A3H?RV.2HG5Y*&]LGPYU1C9'9:3*5=+Q)HV'Z8I9_LY[#ZU MXR294PDK A5C)3$Q"7OJIW ?X?:98(M*Z%;X%4*LMW [N3?*/FV9(<*5T"E0 MH,DA6KQ8""[9/KB7$9T#B BB,\5$D,#2H:=@B*0&@-6H#8L7"]V19W22,XW+ M8K2!TC:&UMJ8?R:JY4([0_*"YU0T,\.D'WO#;L75'&+E DN:GD&K:F^']9\F0[1YH'OQ// M=9TDC%LMOH>&H-6P_\BUY_M..$[)*0,'9'48Z\A&# O%_VT;MK$$CA_$W=:H MV[:_0TO@1*EO7<:DLN0EF4-*\-MV7V\'>;[C]:#K[Y>L%]>%J&[ ,7N:D=]T M*;B!U9$2.H'71>4[0=B-E3W?2?SDS4XV2?TQ;-*9?F_"2@:@72&>XXZ#3FLT M'G=AQ.-H%Q#I.";G9I$Q,&K3] 2#G_:@27K" 09PPV"7N7TG#?VU<^I%:\_K MF=X;.V.WJZ0?.['7M<^.].#O%%EAW$77WR_^:7I MQB=]]!"-DVX0!DZ<],1@%YOGQ./OI@<_[ +Q'"_J(0C(WRU-=9(_3Q&>$P5N M3VOH]\P-BO#CG>@IV(T@D-I1TD,00:\38N1&T(VC1PDB2 ,GB!,S]18:O07; ME-8Z7E&&FGU+9BO!>C>DZTJ4HXU$O0NQA9[9S9BG.OYN==WR^ MK.E9%WF/;UNWZKJM>FY-A]=:WQ>#SPNVCPGVX0%@HKELTRRB/&G=>[$3I&FK MP0^=%)7)UY*K?;L;['!=[*11-R9#)^JI,2(D4#S&RG0'2=A:93W%2>3X43>8 MQT%WG<+4+A8):]1V'NU47S9UY(NO:C9H7]2)V(852$'>"I[?28)5YH%"( >W M=3]V$E17GZI;)DJ3XQT>B!Q<=%G&==RT2SY1Y*18@;\J[!T51W[O^5UJB1*4 MBUU/Q5%O3RP(OYCS/M4,8J&1BF>_AHX[$URG0/S[$1R"S&WS MF0=>BL*VU7W'CX,G"0X4Z'<)#H6/UZT.0S JG/@4P04N*I6^W8<7=I,.+DC2 MI#=+GB^1FU+X;\MPL9-X#[SG>'';>8DS?IKAL*-RDR[W8/_EIMUF>-I+W.<8 MSG7"M&=EZWH4/:/(_<5\]S\CN-U5U*8YKL\?"WIOCE'I=-H<32IM/WU2;@]/ MT4\?& ^-<\[L:6M]DJWW=Z@Q4;$V):5@.:U/@V5!\YQ,EA+4)4UQ"CL4N*!\ M?3P,\B-+R<3(OF#3)\+:2I>U-'/HW7199=\&G="23NFP\99\ MW%V;H;3<#.7TQ1Q8/M=SX]>3.M+TXI@QO3X:;W[\B6!Q>I56U0(91YK(QE8O MRW3.:4=CLC =^J^L(2/?7-;O$Q *^;VS4Q!MOQ,9[J[& \QDCB Q[\NF'#O( M)6R_@:WF5&UA+_3!!MI+*/C*;%C5,\C($']?X/SVJRXNNRA^"D(C>WMV^<.& M:5+3IJZ*FMF$P_BO]+OJFKD#OGS^/2O"V+=_"R$WGC:0 A^ H)% !># MC6?YYO&658TM:^.N9WJT]MR>O?;P@T.#KIO7H9Q3,=.G=?;0P1Z%V(H0I'=" M5-8U,N#HMDO?.I)E9&KT[JS^CRI#?35[,Q,E5;+3 MX2>[^SOU_KQB>875/OX5NT1[=CX31>>#;7IF6- HD_[+QSX.(X8WJQ,,ZYYA M'>U.BJ*5[V20UY?.[H1C:DCC']'5R WCE.&DW >'MPI\X?K#/^[^^?&]^/GF MO^_O+Y&]**H_YE[!D,&>=S;E=/ROPHW0+ ML?[K7*Q7ZXMGY)T/[IU'>>>_T[W$?3'-S07QUK>RH*L9$._)/=#L^OOOSGY8 M_?B,;1>#;1?/2?]5VY[G/ELMQ%B"^& *VY (\I&\D(X ^,)V)E I4+NB0X:< M"#6>>X]BEZ846LF-TBKL14.AMN5"O*.*G ,+Q"1"?T2I>MF."KLUZI=>.(NM MNM"YJ%\4UGCZVI$I0&XK$:AIK4/-BU)54)!>;"CLB$QB5D::0DD-R2 -RFRY MV%32SC+3B86!_,XVK33[[[][LSY[_:,_8>D4O@A52?.[*+=I)@!*F M]YX/62([]$ NQP-/RZ>A>'E\&I*^8[K.LRMDT'UZ+B<#B.BQI?0(IK6MWO,/ MO)8;34*E5*H4FSU)Y_FPJU51XY'U="*DK'HL>3,XAC/R!'N#)N3Y9\@E\"$V M:(T3KC[Q"A&1HJBEV2;#!D^0E1$:\.K8^I:"AU_$F,04E)"S M$#?B0>I.IEZM,2P ",K2'=H+_ =:5.!GC86G6GTA#AR,$L:&I,.S[CZI4WXU M8OB$7G'-N@@("^.D"F4 ]%!#,H MV/@- P_FHA:;#8J+-0._-_ Y"B,?5)/LZ>V<+"RN9(7&,5A^J/(Q4A,R$;#2 M8<8:L=D+8 X1C40>T85+D!6<+'IL6;.U[$?KH-ND?E3!.,40$($4-;&0_T &"R?0="A*"D0 Y[$F,2,XWH:A?7M-0@D(8L M)-KADJ^3T,GYY2[]N_"3>F[V%+40BZY'@SP9FJF$Y-[P;0JGK(@.M:VSK5-P M@*WBO<"5*;6,K9O[._'Z NO$71[;0>_' 3$V1Z3W?LJHLG.Y-8;:$49@V@R) M-\-O7%L(;-2PXVNGV-RA5T%S/[C5T9P7G*2 =H+B2);X6.-9P%/'I^L02L]2,]HJ&OY+[[[GM)+,C@'J),NBQ%<&Q8*D,Z]IYJ MZ'_')9_ ^*AB[Y?#GA,]3+;$*3GOIW\. L_[W**9<=+(V*3XR7P8%SFN:;2F M"66KB@,''[;6ECO4^C%D,RW7IF5PC%/QT@Q\NU6\( 7<'C'S1AZI8=.-RPY M^]32N(XDQ^+V2(8JK ZQ2YW45/WJ=I'E'9@X4+Q,> 0Y91H>TZ-L^J'+LS!S MR0[I2L2'8:-P.66]P3J5T>&T2P-$P,)2*L=C[*\3 ^=G2?&?*)2N<:G L42,:)7>40/ M@EX0M((UN/XF0_S_T3P=32[5U?GDEYSEZ(,:A&[C9T.^#74FI&]KP]/A MR^1-^B!W($^?-9&5K3)\,:G NEJ\?C43+GTJ3(=@V_AY;F-#L$W\6>,20XX) M\+ZR-N0#*QB^UU[_#U!+ P04 " #-E*)86.5KR@L$ "\"@ &0 'AL M+W=O+EYDSAW/SC%;:W-DX%_)*YL9PW\DKG6=[SYFHV#B FAPM0Q@J#//5ZA M4@Q$-'YN,(/6)"MVUUOTS_[M]):YL'BEU0^9N7P0 M\5*MK/^%52,;'P:0UM;I8J-,# I9-E_QL/%#1^$D>D$AWBC$GG=CR+/\))R8 MC(Q>@6%I0N.%?ZK7)G*RY*#<.D.WDO3<9'IQ<_WU^L];F$UOX/;+QZX?$JJ46;ZE=QJ\"?A.F#_%I M#^(H'KZ"E[1/33Q>\AN>VB -GT?B0CFSE4AQ'% E6#3W&$P^?A@<1>>O\!RV M/(>OH;^+Y^M(@T$?GD/[^.$DCJ-S O6KP?D^7 HK4Z 3D!92752UPPSF:\CD MOI\WD*%1NJL#[,7Y(B/JC-\GDUK!1<+:DB6>769>/>!KKA56<^+()V1*;^\ MN10K83(+M65Y-N*H"]O:K#?W!;J<^7VGJX56U&Z]H(^31>$FR&E3.O")F)GP"D5)>>_[?L]-XA0-+T%N;<\$:%.D>:^53P^ M20:[$VXB_),\T=Z3)3E%UY:>8GN #RE6CJ/=. %$H>O2V7VXWB7=GM*63K80 M?T#<.QW&G?UI$L./M_MVJSA(>D?187<;'QW!U.<,AZM-H[?GRQ8KZ>#&T? = M[ ZV\>W0.AU$W>WP.(*I,"5)6]C[RSNG]>#[45I+\HUYP>7>09)_\N!HZ+I!AM_UM*M-_'I<> J],.)6O=@873A[:5"I;42?G;91IYC MVT#/,154D"PI#4BB1G96NE89Y!10ND<:>:A-'6Q3IO^2MY_[RPH[$T6!9NGG M)N[%5 G-<-&>MJ/913.1[,2;N8Y\N924HPH7I!KUCVD2,LVLU&R. MIAV_S&F\1,,"=+_0U' W&S;0#JR3_P!02P,$% @ S92B6/\?'^VX!0 M3PX !D !X;"]W;W)K&ULG5=A;]LV$/TKA OT MDV$[3MIU;6*@R;HUP-H5;;=^IL23Q84B59*RDW^_=Z0LR[.3#?T21^+=\=V[ M=T?J3W8O/>EU'?C%? M7;9R35\H_ME^\GB:#U&4;L@&[:SP5%U-WIZ]OKY@^V3PEZ9M&/TO.)/"N3M^ MN%57DP4#(D-EY @2/QNZ(6,X$&!\[V-.ABW9F<@:+3-O_*^YV'D M\&KQB,.R=U@FW'FCA/(7&>7JTKNM\&R-:/Q/2C5Y YRV7)0OT6-5PR^N;O[X M^/7VXV_O/M[_SN[+1]S/Q0=G8QW$.ZM('?K/ 67 L]SA MN5X^&?"#]#.Q_'DJEHOEQ1/QSH?\SE.\\Q_-+[M?G';GEG@=6EG2U02:#^0W M-%D]?W;V[R,@S=9[$OD>7-&76(3=-\AEC [2+F4WFL*AV"-EH4V M.H(11/#2ELASS SY"#!H;]5A;!2&,DVM,[I\@'L#KJ8",Q%>93TPR;#IH4^9 M'1KY<$RIH!!E872H1:^ID$(!D%[+-*Q2]J@69Z@5>5*<0 &OQ)D4Q@4D>LMC MK02IG $F1ZS3H(10-JB O$!\))QO'5KO-3(21MRI8J?.!U(60S_=.XOQ MRUI1!S+:$XCAG+2I""7!Y2L3E&J^WY2.4QC/N4?G$+>)!#%)RT>#*3=K&*;< M<-2,D>[+U$B5D FI-I0.UMQF^? Y=DQBJ^4&&/>"V_E25?$YZ.SI+I3>IB# MRRI8XU;-+=(ZGT]B!'-J)MZ[+=K(3X>CO]6V;]U38?>MB#S0R'Y\NB>QY(;G M PF7^ER&*.]X65ONE7SP[4]TF&)_!,W3A$.E*NV'&OJ:I9U._'1B1>8M'9L< M]M3]J)<@*+O^&(VG>G'EQ?O)N.1]=\AORZ_0IDTII8[[O#V^'KZ6W M^2-A;YX_M7#)QD4J@-$*KHO93R\FPN?/E_P079L^&0H7\0&2_L7XPSV$#;!> M.8SW_H$W&+XA5_\ 4$L#!!0 ( ,V4HE@0?LS(@ ( +T% 9 >&PO M=V]R:W-H965TQZMBI[4#Y]SL[(6-:RR;MQ?:=[_O\77)WDYW2+Z9 M/!6"FFF M06%M=16&)BNP9*:G*I1TLU:Z9)9,O0E-I9'E'E2*,(ZBR[!D7 ;)Q/ON=3)1 MM15!_PS'%GCL[@,EDI]>*,VWP:1$X0"LRL8V"T;7&!0C@BDO': M<@;=DPYX?#ZPW_C<*9<5,[A0X@?/;3$-Q@'DN&:UL ]J]Q7;?$:.+U/"^!5V M36R?@K/:6%6V8%)0 <3=*G>;K\_K3\]@C+9UK326B)UEV&64LQ;RCB#R@& M<*>D+0PL98[Y[_B0Y'2:XH.F>7R2\([I'L2?+R".XN$)OD&7X\#S#?XGQX9B M^#Z%:XTK4[$,IP'5OD&]Q2 Y/^M?1MD> )I-K(K<*5DAFI;1U7(?T M_[*_]P?#HY8J46_\X#"0*4JUZ:[.V\VF6=.2O\*;P4;EO.'2@, U0:/>IU$ MNAD6C6%5Y1MTI2RUNS\6-%]1NP"Z7RME#X9[H)O8R4]02P,$% @ S92B M6#C=ZSE8" C!< !D !X;"]W;W)K&ULQ5AI M4R,Y$OTK"D_$;'>$VQ>'&1J(,#3,>#<:" RS._M-KDK;VJZ2JB55T^ROWY=2 M73!N-Q-[?0%72;U,UCS:]= 5EF0:#N79<#(:'0YSJ73O["2\N[5G)Z;TF=)T:X4K\US:IW/* MS.-I;]RK7]RI]<;SB^'922'7M"#_4-Q:/ T;*:G*23MEM+"T.NW-QL?G4]X? M-ORJZ-%U?@NV9&G,)WZ8IZ>]$0.BC!+/$B3^?:$+RC(6!!B?*YF]1B4?[/ZN MI5\%VV'+4CJZ,-E?5>HWI[VCGDAI)748"'*EXW_YM?)#Y\#1Z!L')M6!2< =%064'Z279R?6/ K+NR&-?P13 MPVF 4YJ#LO 6JPKG_-G-W<^SZ_G?9_?SFVLQN_X@;FXO[\+30MQVRN:Z.72$3 M.NVA'H_0[D^PWR_5W2S\ZE4TZ8E;AEV=I+SO9M('>+N=\0 M2B0QI?9*KT51Q5JL3(;"I50LGX3'G@N3%U(_"6E).) &>,%OA-+B5EHOYO.^ MF'O*Q5%?7!M/8MP7-W8MM?JGC%6H4W%3D U/ 79'Z YO'#3>.-AIQI5RBR3Z)"!'F=0)TBF[&>ML_Y55J7P2268<.2^\$1\HH7Q)5NR-!Z]# M\KE$ ,AF3[O L++Q,RC?1?+G4I/8&_7%@@I?8<(3J^^ #,]1.IL[WO]#.E#- MR092(!:&%05R3RXS&H@J($\(2*CTOGC<*&R%0,?B&@23:;_>H+),+$DD<)A5 MP>X5!X'Q.%Y&NDILJ?SEL!$MQH6LQT[@#SL%R63S.P!['0#1HRV"2$:\0[K_ MD/99QC%L-Q8 MY 8[*NZPJ;C#G37SX(B17\*&G!-S6]7ME+"='U^*#46 Y4)&[N#%[YL-1V$3 MSR[*/T7O/PP6 _'S;'8+GWPN%12BGVH,('R"G9G+3R2HT5:)2N!^)7UJJ+.#0L^9OG8E: MV,::+;]K]J#C-IDY\SVXEKZ0+BGHIJ^8]U"7(BTM)V5[)K2%4,](S,27'7Y! MV\C8-*BQ8F5-CF,H[M:+ [$CTZ9-IDUW9MJL;4^WUFC\3JHPWZ$(M0?US1&H ME_-%3,&=HK>GX*OUB7F7!P('!)YK0M.1M/#PLK2@KW.#?^+-CS\<32:C]U>S MQ7GX.7[_5J@H=NNQAR+D0GUNMGC@7^,ICEV;05#_;@0NJM;G&E1$XEY^14S? MW)M")6*Z/WI[+.9@*/.EL@AYW^X4'YHD=16FKKY:1PT7Z="^1%X%<@YY4V84 M:%I%T1ZBV_P/2JL:!)_ZF.]X5VW!?%%0HE8 G,#BM;&\7E$?]T <1BDDJ)3 M"-'IE2KT((AP,1ECE96!8]O98TG@!>IBJW*?#R])TTIY\<9%QN$!B#RX68L4 MVY'722@7%J'6^FUXV"UJ!Y2N%O1O2K&2]6-%]Y_I&7"NR315T>*NXQLZV^I+ M^$;9+L)"/C6A5QJ]2 TX=/78,B5XW'!L^4+&LXEBF@)CE.L-K/"=Q6H6"(2/7? 8B!QN M^IT6'D;F"N6W%C@_:V0$- IM1V3(U@?!?ZJSG M,*!)2FLC#= 7F972UWRIL"70+3:5L5S#5+*1P,:6 /!%E\1;IEAT2!R1ON8" M?<$J((J&(!#^MNBG3=$O:!VZV5U#W%7E3XZV57[EUF M(71LG$KCV= O-XI6=;G!%RE8)7Q4X$YO&[LN;CY\K U":F.;2ZPJZF$C9GFM M7R%*CHO5MKZKUF*]A#M25:>(:TXRVL730;WS3XZQ,C?4=%6ZSDT+>#!M,N, MJ<*]?42D65=[6["'3<&VY?:L M.(^A- VI'[)PUGH:OK@C5QCN,56:+RXOJDG =:8QW%4(2 7XG67EGT?EZ\3Q[PP7( MQG(.OJSJ8T$(9SM87WZ-'8CCGVIW)-M(-SPDN[IC@%=UR:&(L49V^- M]^MA>S)]04L5F!K$Y07G*E_!VD!A_L;UK97-T>IZ#TG65@E@D@KT8XE%98.B$+S@$OLS7_\R+<=M,8=KZ0YH38\W?@<&_1/GXL M;=XVGYIG\0MKNSU^I_Z(U%%(Y8Q6.#H:3 ]ZPL9OO_'!FR)\;UT:[TT>?FY( M@H%Y ]97!M?VZH$5-!_@S_X%4$L#!!0 ( ,V4HEBQ.8N&B@( !\& 9 M >&PO=V]R:W-H965T>WSE^Q[A5^L64 MB!;6E9!F$I36UE=A:-(2*V9.5(V2=G*E*V8IU$5H:HTL\Z!*A'$4G8<5XS)( MQGYMKI.Q:JS@$N<:3%-53&^F*%0["4Z#W<*"%Z5U"V$RKEF!2[1/]5Q3%/8L M&:]0&JXD:,PGP^=JIEQ0S>*O&39[:@<0;P&QU]T=Y%5^8Y8E M8ZU:T"Z;V-S$E^K1)(Y+]U&65M,N)YQ-%K/GV8^GV1(^/;*50/-Y'%JB=9MA MNJ68=A3Q.Q1#>%#2E@9F,L/L+3XD.;VF>*=I&A\E?&#Z!.*O7R".XM$1OF%? MX]#S#?]2XZ'2.N3H,-(YXLK4+,5)0$_>H'[%(/GXX?0\NCZB:]3K&AUC3Y;D ML*P1""J'6[I"34_4P&H#"ZR5MNY[P!(+L@ M,YG!XZ9^FWRHHJ-GOE?191P- MKW>']?S=@0M\1=FX,56%Y-Y,#VA+E<$.^$@^'9#" =D$-6?"'%J:2=3%!IZ( M8^"PTJMRW3"(*GY'T\E'/'UQ35FC)@CIKR+#60@ MM4XR#*DW(# G:'1R<1: [MI1%UA5^Q:P4I8:BI^6U,%1NP3:SY6RN\ =T/\G M)+\!4$L#!!0 ( ,V4HEA&4^ZO-@8 )<6 9 >&PO=V]R:W-H965T MYXSQW%TPWC#R(E1**G/"O$V225 M;;$7NB/RRON$PFS9:$IJ3 M0E!6($Z69Y.Y=7(>*G[-\!LE&]$:(^7)@K$'-?F8G$U,91#)2"R5!@RO1W)! MLDPI C.^UCHGS9)*L#W>:?^@?0=?%EB0"Y;]3A.9GDW""4K($I>9O&6;7TGM MCZ?TQ2P3^HDV-:\Y07$I),MK8; @IT7UQD]U' X1L&L!6]M=+:2MO,02STXY MVR"NN$&;&FA7M3081PNU*7>2PU<*M8EB*)=&5_@Q<^E#R0LJ2TYT M*);T28T[6V*XIM.9.T&$+EB^+B4LFF*>;' M+MA2ZLF.'?;3"=W]U#6\R$6? M!@/><#F&Z_NMF1/:Z*K9L1**+P=#"US$I-J[O:AOV*[7FEE.A.8E-!ZVH%#T M#21Y&3_4B;ND!$S8YT)[Q; ]"QQT5RZD1D*CVS'"<&^E;QFA'Z!Y')=YF>EL M3PAD05R7,K4>SAF7],^*T&R' R%R@Z,6P36"P#QJN?QRDAJH(+(-E\#PP.4. MP1S'C]_@QS\8/SB.>0DN0J&&N%))R2!<1A7^F'"9UYZ+<@&E37(XB3$.54YT MBJ]M&V'DMPB.:5A V$DO6%&VT[;!A^&Y=H]J 03!LJM\G;$M(7"JDJG*!%JL M1$LT"*)6TEH@H4 *9\Y]!J[QEK,L0Q(_D;:HY3L=40_:Q *26 LQJ.-\,,#/ M^X4V5B&N=A/2A)6%!#OK""EUW;5MPW2L9V97+6<@Q]H!#0W7LEH$#[RPH[%$ M#YI$#PY.]#C%Q0H6WG4SS/E6N0,-L-0,*\:2#860+K;0"-<*X/"YA)(Z!(C1 MA?\;0+SV/0B7>9)0E52M>K@C"30= 9^&V$T)9*AFD)]"@N ?\&M0=0 -PV\@ M\+:)\A>(\LEW#\!50?AJV\HT2#-H">U#RG,L#%%V4E?%"K:=<.6 @L,%A S^ MNM2T!R4C\*-!NX: ]R(@![6 08YE6*[[6C=JJ1&]6HK?]/:/[]7MC!60?A@SWPM>]?]&XVE:&UDX=SS(<.2W.=(-UO0[0; MP!=+>G8]JR1M\I9@KD[#.EF^?U%Y[?L(-R@T'-/OS"TW'/UN1ON: M91V;Z)YC@ _.26\URS,BQ^^3X53C>*_@]F%%^W@O\:X9^;#^-2O>Q>J$HLX9 M*TZ>_07LZY=O]5/2,EQOX*3T$J]K-C/WV!PPR /J)7DD&5M#$DH2IP6#@&^' MO TMLT^&\U=DO8+;L_?<(2Q^H>_' (6<9#J)14K7_6AX:I_[Y=RQ#<_L>_X2 M-]1P,^CXWH^(,JHZB?4+ZSZMH@@<;#<1/S(".QKE"(S0"WM&?>L]U'&FK?59>.>O;JRA>((C5G ?]821,WC /[U>74-6DTD M6^NKQP63L%%ZF!) $%<,\'W)F-Q-U +-7?3L+U!+ P04 " #-E*)8*BAT M1*(# "6"@ &0 'AL+W=O>+DQNPO?UTD.!=5G<@<"WV12%=3@4&U] MO5- 4Y=4<#\,@I%?4":\Z=C%[M1T+$O#F8 [1719%%3].0&>QUZYE8)1LI MO]O!,IUX@24$'!)C$2C^/<$".+= 2../&M-KEK2)[><#^K73CEHV5,-"\M]9 M:O*)=^Z1%#):[6LBQO*2&3L=*[HFRLQ'-/CBI+AO),6&+LC8*WS+,,]/+J_OEX^QA M^7A%KI>KV6JQG-V0Y6K]^3PHG^IO4MR MA1AW(]H3=*%W-(&)AT=$@WH";_KS3X-1\/D$W[CA&Y]"GZ[Q1*8E!R(S8G(@ M&66*/%%>@K8A/'+:4)$RL45?*O9$K>$U/FNV%=1 2J@F"+&U,YC01I5XO(SN MTGF2R6LZS\,@^DS^J_]K*_?1RK5J+QN%1Q.7+]*L8IS\]QESRJE(@*S=O700+$!=7@3O4FYQP162I8:RZ+[2,P ;IGW_LDQ,&'C8&'K[;P#1)RJ+DSI;2<4QD@6;*[86/164"QT!Z7.KN MR^?D4O^/0[_@1X_T;BQ#TK+/K"6MVOX7!S6F;9MT\8/R9:V\PGW#4K63T>CF MA#\_D-YH%/>/QE_?VGBR ?SP WY^$XZ&9!FKCLJQ=8;QI\[8K)"EU?B"@+N2 M*5G\,P=<=!9A$'87Q\;K;33T&44(R)@A/7C&9D9#']E4ZQK9NBK;=^+QO@\& MPXYJN.@*+Y'Z>/VZ0SCY#D%'4'$4=\;:%7[E8L)RAE'0/QIW'5F_U2L4H+:N M(]+(%*M4M0U-M&FZ9E6O\3*]ZMB0#7Y*-.&086IP]A&/I*JZH&I@Y,YU'AMI ML(]QCSDVCJ#L!'R?26D. [M TXI._P)02P,$% @ S92B6-9A3/\= P MF < !D !X;"]W;W)K&ULI55A;]LV$/TKA%H4 M":!&$B7'=FH;B)-V"Y N0>RMGRGI+!&E1)6DXO3?[TC9JE([QH!]D7C'N\?W M>.1QMI7JNRX!#'FI1*WG7FE,.TM9L[WJ!8SV1K!:WA41+=5Q=3/)0BYG7N1MW<\\:(TUA$L9@TK M8 7F[^91H17T*#FOH-9)PO$?_XK2CEI1IN)'B&\]-.?V*"NC<)9CGEGW@%-*AG M\!8?WD67X:<3_)*>7W(*?;'"&Y>W HC:\+H9N MTN)>*Y*QAALFB \H/J8KI,KOZ5K0L/X$_F_?RQC5KHZWD(&58I\K?%[F"WR MT(@/(LYX34PI6\WJ7)^3A]9H@T.[):E4N-DXT@2O^AI41>XEJ_O4]V1ZZ=-1 M.'1,_(B.3J \P;,4S]9_HR#GAGQA&1?<_#RJ-*+'=\#Z'TR)HEU)6:$ L*D9 M?1 =C9,#7TS'9"UM:5WV[],H*J&'62@M&5%RIW7+Z@Q()C6NAR([E)SK3+;' M*)Q-Z?3\T!OY(8W.R:I-C>-RL-[(3Z:C0_?83^*(W(/6V,J40M6DD#$>>41U[T!G&-FXWIM*@YW< M#4M\.D'9 )S?2&GVAEV@?XP7_P)02P,$% @ S92B6#LEB"D#!@ KQH M !D !X;"]W;W)K&UL[5E;DB3C%^,-D+D9Y,)#S41(HH M32;8-+U)2N)L-#M78[?%[)R5(HDS>EL@7J8I*1ZO:,+N+T;6:#?P(5YOA!R8 MS,YSLJ8+*O[.;POH36HN49S2C,^D92DR5C MGV7G;70Q,J5 -*&AD!P(-'?TFB:)9 1B?-GR'-5;2L+V]X[[&Z4[Z+(DG%ZS MY%,]S6A 1 M9VN4*.U#Q@5Z@2S#Q7Y-(_M.8*-%N:Q6O#UMNVZ'Q+8L$$]0\(! 0%5MF\1D&2>QB&F+ MVNH08XP^,D$2E$$EWC/(- @T@TRQAP9BT*UCT#TV!N=;VU957JI\*^,(E(FD M)C)$KQF$ $1G)+\X2^*(R-DKDB@;+V0)ZHO<01E^3.0>:INP?4U#FBYIH<5P MQR4R@EL=^^#*O#>]%.#\^^O9;=5B^9*N7);AI+Q0A(K Q-6U]P/&Z 7IL M.]<"]['%V#$\W]?ZKNT?HC- ;<[A%"L*B"24RX2"8-JM#HS F;9ZOMOTJE0X MG$"@(HB"77T !\_76:L57'HT3$I9\\"U]$L9YZG4 ?Q;K=BP!*;2O&!W5,YP M0R;NZ?,]?'/L'BV5/0,[KM:W[*927(9AF9:)RM*(0G:%,=$<<.(89A TX7IB M&U/;/]USPM'*MP3!AN5X6M\V\3>GKU[.V3*)UTHA+2P,R[+T_M1[FL,3H;IK M)?>N'G(/9\]JJR-DQ0;&MFXEW_QNQ>Z3 J3@>W('56A- 4)+D-Z$;] ;N-=IRS[0JN8(5JLA*?@%PU7H/(.;TP/,SDG5 MSULT;[3K2^'!G7Y."C<2[^K/$[G7G$(\A+(FS\-O@.KJF(V@=H+QM"N$A,O8 M=32/FE83FK"XB5W7,%LYYD]Q>UF#:("CW0UXIP6L8;G?66 900]9&]P V;2' MS#*;44O;)%!57AX:E*P 6]1S@:/QD1?SNMBV8'Y.'A66[&[J&5X/L)=HJ;'= M'.#;&7J;YJ50>;F]A=<.QX;IF]U_"DXLU]P'O(,J2:ZW2+*/ MC7Z):MFVA5S_8MD.C Y!2/T.]6(/H Z4AFE=&J;/+PT:2GFJ, SN\ZLP_"H, MOPK#_UH8)JU'A)06:_54 E=B"42K]X1ZM'Z-N:P>(9KEU5,.P.%U#.(D= 6D MYMAW1ZBHGD>JCF"Y>I)8,B%8JCXWE$!JR 4POV),[#IR@_J-:O8?4$L#!!0 M ( ,V4HEC&K,0_:08 &8: 9 >&PO=V]R:W-H965TU)CJ?;^O1U-64KTG M*R;@G[%4)37PJ"9]72E&\WI26?2)Y\7]DG+1&^S78U=JL"]GIN""72FD9V5) MU>,1*^3\H.?WE@/7?#(U=J _V*_HA-TPL>64^&4GZQ#^?Y0<^S!K&"C8S50.%RSXY945A%8,8_"YV] MU9)V8OM^J?UC[3OX,J2:'FL,-=R_HDM_*D-',E"U[]H MWL@F80^-9MK(V8"64P@M=W-0K65)]30P;Z2GJ"ST\]GUX=7G\Z/#_]$ MYY?[Y$.[=T6##];K]O8$D[L3]:J#]JU)-GU ?H0@HSU>A4Y"Q? MG]\'4U?VDJ6]1V2CP@NJ]A#),"(>"3?H"U;^![6^X ?\[W*[T1IV:[6=]%Y7 M=,0.>M JFJE[UAN\_<./O0\;; Y7-H>;M ]NH#/S6<&0'*,Q%U2,."T0%TV+ MVEJ?78QJ6?$3P53DT?TEI95(P%P8!P+7)$ M2ZA<_K49>&I+@$D0NZ.1.[:[Q4B HXPT*6/:(/8 NY]F& G8'Y_*^EOH(]CO ML*Y;+D$WBRJIE!QS@W8*J:$*[ZT$MPYGDOXD/@U_C@+O@*\"&%%*51N^LS*-JT-? L/'@$PA5\ M,SQD'4!)DN^#AQ #V]T2'LA6E17&KG7=[]@3L,N4PQEGDEF^(HPXZ$D&OQ2EL8@^@J5)\ MU,%C(DPBM^[3P-W28&D/]I,FJ.V6VXJ*+BGG3]\ "UZS_9^9Q&-9EM"MO%4\ M;U "&]*:0X C7NLYQ0D0L3-YSY2HX<"!C C#C0M('O8R%Z>B"&>P6=\97G## M&8 <<5$H2H!9NIF*HTY)V#M>6?+.F)PH6DT?81-TO?O>ZPGL2=KPT>OP<6N M<[CD[P=P4&1>&\]\P*4H;$>=8!('&P$.()"X <)9 B("DG]N-V\A*<;D8X.'QYB8L]<%3S M,G<8,NTGWDL(Y^$PZ]C9W(R"9!1YKRQW_QO ;>^B#8<"WJ-W8P49>T*-!P MI@&ZM+;G*(A#"3>4YVCX6&L \$,SH)7]YNT[4WMUE*X7VL9*EK7<<4.;K2M^ M\D$C>PCC$UBY8JIFN1K-X918>[)$)2O4^/,BG[28NH[ W:2\WWKW#\9.ZB\< M&HUL*)O/ *O1U4>4P^;;P7_BS1<86 XP7:."C6&JMY< $5?-5XWFPY-A:)G=D.9?]^9Z<-Y:T":5\2W_GN\7,O M/O>62M^;#-'"8Y%+TP\R:\N3,#1)A@4W^ZI$23MSI0MN2=2+T)0:>>J=BCQD M4=0-"RYD,.AYW5@/>JJRN9 XUF"JHN#Z[Q!SM>P'[6"MF(A%9ITB'/1*OL I MVE_E6),4-BBI*% :H21HG/>#L_;)L./LO<%O@4NSL087R4RI>R=>/JSQ\Q(&M')CG71_D M65YPRP<]K9:@G36AN84/U7L3.2%=4:96TZX@/SL8G4UNKFY^3&$\FL#T\FPR M@M9H/-V!UBV?Y6AV>J&E8YQQF*P@AS4D>P_,F8WPJU1NJ\C>1NS(DI>8+]@*Z$0?V MP>#;EW8W.MW"L]/P[&Q#'TSI!J95CJ#F(*MBAMJMEK[1,-WC#ZCIWD"BBH+Z MVV2<* !=/&.Y3(5<0&4P!:N<15E9=.TK$J!-2$5.BA0H[+>BWLKKO:B/6!2? MPO_ZWV8:$8JZD]!UTBL3ZHLD\XWQ7!.WGS2N9=PG?N7=$A)LIBI#^3"[@(\) MEA9*2K+/)/!"5=*:';BAT2@DY1"AE2M#FC7$5V"[QQVV(1_'#.X^7J"U8SO> M[48'FR+K=F$TG]/L2(*T6B2MFOFP8HW M<%G4^02[O763;- Z;D>;8N^/Y^R&>TS]DR, M#N'B!2EOU7YI]=;M"S>F9(%ZX=\"0_%3F>N!V6B;Y^:LGK)/YO5;17VV$%2 M'.?D&NT?'@2@Z_E?"U:5?N;.E*4)[I<9/9FHG0'MSY6R:\$=T#S"@W]02P,$ M% @ S92B6)]X13Q= @ N 4 !D !X;"]W;W)K&ULK51=;],P%/TK5I 02+"D23=@I)'ZL;$^K*W: 8(W-[E-K"5VL-UV M_'NN[31T4UKQP$OB:]]S?([M>^.]D(^J -#DJ2JY&GB%UO6U[ZNT@(JJ"U$# MQY6-D!75&,K<5[4$FEE05?IA$%SY%67<2V([MY!)++:Z9!P6DJAM55'Y>P2E MV ^\GG>86+*\T&;"3^*:YK "_;5>2(S\EB5C%7#%!"<2-@-OV+L>]TV^3?C& M8*^.QL0X60OQ:()I-O "(PA*2+5AH/C;P1C*TA"AC%\-I]=N:8#'XP/[K?6. M7M94P5B4WUFFBX'WT2,9;.BVU$NQOX/&SZ7A2T6I[)?LF]S (^E6:5$U8%10 M,>[^]*DYAR, \G0#P@80O@3T3P"B!A!9HTZ9M36AFB:Q%'LB33:RF8$]&XM& M-XR;6UQIB:L,<3J9+[\,9].?PX?I?$:&LPF9+VZ6-EJ1^2UYN+LAX_G]8CC[ M0=Z3%>1X@9I,N7L^YA[>3$!35JJWN*[<>NQK5&;X_;11,7(JPA,J(G(ON"X4 MN>$99,_Q/CIJ;84'6Z/P+.$]E1\?M6["CYW.?Q/9,_\]EN__7/L MR6Q;K4$2L<%"KX74C.>'QZ&ZC#NV2\MF^LXN"6-_=^SF7(:3Z!\5004RM[U! MD51LN78/IYUMV\_05MV+^1&V)==%_M*XGH;/(F=&ULK9IK;^HV&(#_ MBI5)TR9MS0T"=(!$FY +HZ#V;-/9-Q<,1">).;$YM/]^SH6<4B4^:?9^*;&3 MY_$E[UM;HFCA$V4 ^?'6U5EFP.),;NA1Y*(.SN:QIB+8KI7 MV3$E>)M#<:0:FF:I,0X393K.Z];I=$Q// H3LDX1.\4Q3E_O2$3/$T57+A6/ MX?[ LPIU.C[B/7DB_*_C.A4EM;)LPY@D+*0)2LENHLSTVX6N94#^Q-\A.;,W MUR@;RC.E7[*"OYTH6M8C$I$-SQ18_'PC]R2*,I/HQ]=2JE1M9N#;ZXM]G@]> M#.89,W)/HW_"+3],E*&"MF2'3Q%_I&>/E /J9[X-C5C^%YV+9RWQ\.;$.(U+ M6/0@#I/B%[^4$_$&$)YZP"@!XSW0:P#,$C#; KT2Z+4%^B70;PM8)6"U!08E M,&@+#$M@V!88E<#H/6 UO3CM\N:TMFWHUK1G3WX_\X^^:L'-'NPT6KM/.:E)[2:HT^> M@^Y7R_7LX3/Z'E"4"'S8B#MR?(E3@8\:\7F;L1>X68.[;<;>C'LMQFYJC;C?8NRFWH@' M_^^]+SI/W548FE4VFKG/;/ Y"0_Y*_*38JT4:TY=B3'_^2;>T/^H"&U)F0\H<2-D<4N9"RCQ(F0\I"R!E"R#955KUJK3J MR>S3/TFRYP=$=VA7K&!'DH:T;N&YDXM&.MKB5U:71UU!NROH= 7G74&W*^AU M!?VN8" '3:O71"ZZD%=1V:^BLB]5+<,DC$]Q711*P8_^AX>4V9 R!U(VAY2Y MD#(/4N9#R@)(V0)(=I5+5I5+%L#&R8),*TB9#2ES(&5S2)D+*?,@93ZD+("4 M+8!D5VDUJ-)J +5QDHH^FEN0,AM2YLCG2[+I@NR%"RGS(&5^U_D)Y*!LP]:% MO,J&894-0_F&#;\T;=BDX$>C'U)F0\H<2-D<4N9"RCQ(F0\I"R!E"R#952Z- MJEP: 6S81I!I!2FS(64.I&P.*7,A91ZDS(>4!9"R!9#L*JUT[?MYC@:U99.; M/II>H#8;U.;\8,Y&P\9M&V@_7%";!VKS.\]1\ /2'#3N^A:=T"(SU#>'GC%) M]_FY/$,;>DIX<>)2U59G_[/\Q/M=_9U^Z^LU]4'VK4!^R/I=7WQHL,3I/DP8 MBLA.-*7=#/H*2HNS^Z+ Z3$_%J'%S\" "6!0 &0 'AL+W=OY:<-< 5$YQ(*&;>]7BZB(V_ M=7AD<% G>V*4;(5X,L9M/O,"DQ#4D&G#0''9PP+JVA!A&K\[3J\/:8"G^R/[ M#ZL=M6RI@H6H?[%<5S/OJT=R*.BNUFMQ^ F=GHGART2M[)<[J< ) GF% V '"MX#X#"#J )$5ZC*SLFZHIFDBQ8%(XXUL9F-K M8]&HAG'S%S=:XBU#G$[7R\?E_<-R0SZ3#93X>S2YY>YQF"I_N %-6:T^XKUR M]XFO,:Y!^UD78^YBA&=B1.1.<%TILN0YY*_Q/N;;)QT>DYZ'%PGOJ!R1\-LG M$@9A/)#/XA_@T=C"HPOI1'T-(\L7G>$;*-Q0D1Q)/$QBNG6J6IK!S,-V5"#W MX*7OWXVO@N]#"O\3V2N]<:\WOL2>WN^:+4@B"FSC5DC->'E\'&I(N&.;6#8S M5?9IF/C[4S67/%R*_LD3;T"6MO,5R<2.:_=P^M-^N%S;GGIS/L>AXV;$7QHW ML?!9E(PK4D.!E,'H"^8CW11PAA:M;:2MT-B6=EOAX 1I'/"^$$(?#1.@'\7I M'U!+ P04 " #-E*)80AYJSS($ T%0 &0 'AL+W=O& +SO'I0>.;7+G.6@]!,"J)@ M,?9NPNLD'%A!\<0W!EM]<$QL*C,IO]N3K_.Q%]@1 8?46 N*?QN8 N?6"2Z M^"7;ZMG (^E:&YE78AQ!SD3Y3U\J$ <"]&D71)4@.A;TWA'$E2#^44&O$O0* M,F4J!8>$&CH9*;DERCZ-;O:@@%FH,7TF['M_,@KO,M29R>/=M[N_GN^>R&_D M#Q"@*"=?13F=[&LY2\!0QO4YWG]^2LC9IW/RB3!!_L[D6E,QUR/?X#"LF9]6 M(6_+D-$[(6-R+X7)-+D3LWA-NHTO*?J@D17GTD41+V6\4Q_ M0!Z'A3QND2?=\@32.GKR.P ;&&-JZEL-AJ)C*?$7%CJQ :2D$\#;H9?!!$=Q6T9BS-"%+"8JR)EASXSEZWCZ<4!V8%**=8KI>H;Z-5CJ%_P"$X(M4YRE/G MG2.S!M!!#73P/T"Q- I$1]-4K@4B0YC -G3&6U?OX,T4"0=A<(RG,^:I>%I" M]N*#D(V\+^N\+SOSOJA+"V'AY7G(HB/5E=GW%,1 M.3)K( J#?>,6="]#)MY;AMW*4Z>54[?$E5N3VD&[&WYT+59*5]1_X5RFY=8'+N,%?O)P9A@"+=D9B0?"*/Q >BV$K=3>]MUO MJ#GM\UVYE=3\@^VD'-2RV):S"/ CI]R5J:_66W\WQ8;7T?7;\'I:;N#M;&ULK59M;]HP$/XK5E9-K<2:D+>6#B)10K5*;84*W3Z[ MB2%6$YO:AG3_?K:39DD)&=7X0OQRSW/GYT['#7/*7GB"D !O64KXR$B$6%^9 M)H\2E$%^3M>(R)LE91D4P!V"; /!3@EP/D($1<,1P+%8 )Y DY#)"!.^9F\>YJ' MX/3D#)P 3, BH1L.2L&;V&* MB."]CXGH :GU3G9JB+8T%)[==L^J,UWQ-8S0R)"MAR.V14;P]4O?M[ZW)>68 M9.$QR:9'(FNDSZG2YW2QZ_3IU$1J@;KS45#YFDHU]FW@^@/;&YK;NM"[5K;C M#"Z:5F%G6)]5\$AD#07=2D&W4\%:32L-VW0K"+R:(M8'S?YI$78&\5F]CD36 MT,NK]/(Z]5I0 5,M56^GZ(HNP9J* I[0G*B>+1($(DHX37$,U347\B.G 0'H MLK!=RH&BM7:]@VIWUZJM=G>M^A>7GM.TFK98#=S+OQX;ZOF5>OZAU5:TU7E= M@AM,((FPU'=&.5833IL4!WO84\^3_R4(.PD^6\Q'(BO28=9&%#6 RG_;%28< MI&@IZ:WS"YE55@QUQ4;0M9Y:GJF0,Y!>)G(.1DP9R/LEI>)]HP:A:K(._@!0 M2P,$% @ S92B6'PMCU[^ P 9Q( !D !X;"]W;W)K&ULM5A=;^(X%/TK5G:TFI&FS2=)Z (2 ZVF4J=" ]U]-HD!JTZ< ML1WH[*]?.TD# 1.5;OI2[.3>TW./3YP;#W:4/?,-0@*\)"3E0V,C1'9CFCS: MH 3R:YJA5-Y9499 (:=L;?*,(1@720DQ'K_J1(/QZ_H=T7QLI@EY&A"R3\X%INA$1H@1BN8$_&3[KZCJJ">PHLHX<5? ML*MB+0-$.1"\-<&M$MRBT))94=84"C@: M,+H#3$5+-#4HM"FR934X5Q3)/C.9/L]G#[8_;Q\7X =S=/XX?)_=R M-%^,%\55,!TOQN *W/[*<2:73P"8QN !2>4VE,3@/LD8W2)UAW\%C])W5V ! MESF!#$PQCPCE.4/@\Q0)B G_(F\_S:?@\Z_H4176ZVTPWI8BUDDZMI%/@N6?PWJ*0 MKL@2U=.CJJ?XAF^X_4&YO:P)$V0[?;KH 95KZ;JO9&J6BM2 MKQ5NN'G-*-?R+L%[AY3<,/2/B&NB[- /],Q[-?->*_-Q%.6)?+H$BN5N)5O1-&5Z[O>L$1<5V8%P26GKE?,_=;F2^H@ 2@-RF? M(J'C[Y\0@1=*^KHHJW]&]Z!F'[2RO\M9BH7:RA3O._RBQEISM.)<^CQW M!-8H.:Q+#C]D0PN[%* CL(8 _5J _O_>)70"]$\,Z'F6>^1239 ;G-G6;&O_ M-K=:*4]HDN5";K[?(8MWL++KG*Z$FFC?L:V ERY75VC-\@^:&?M#+%O!=B5" M1VA-$?9]B-WZEG^W;2O8AB7E>\T[,JXNS.OUO3/6W7;=G35L7U_.-&3!?EALX9P^[[ M&;N]H1GG\N.,+C%!'"Q8'CWSJC= DGE=D99V*_#%:]<16E.&?6-D!Q]CX$X; MI:[0FB+L6R6[M1%YOX'#DZ\;:&ULK55=;]HP%/TK5E9-G=0V7Y1M#"(%0C6D%J%"MVKCCXDFF (J\Y%DA1U:J5#FP;1FGD%-YQ4LH M<&7-14X53L7&EJ4 FAA0GMF>X_3MG++""H8FMA#!D%CK?)/Q@ ML),'8Z*5/'+^I">S9&0Y^D"00:PT \7?%B:099H(C_'<<%KMEAIX.-ZSWQCM MJ.612ICP["=+5#JROE@D@36M,G7/=]^AT7.M^6*>2?,ENR;7L4A<2<7S!HPG MR%E1_^E+X\,! 'FZ 5X#\-X">D< ?@/PWP+Z1P"]!F"LMFLIQH>(*AH,!=\1 MH;.130^,F0:-\EFAKWVI!*XRQ*E@^;!8W$[OIO-5>$MN9O-P/IGA:+D*5R9* MHG 5DDLR?:Y8B=>M""T2<@MH=98IY$?4^.2.%RJ59%HDD'3@H]-XUSM!8*.UK;_>WM^Q=Y+QCHHKXGV]()[C M]3H.-/D/N.\:N-^EYS0\@KC=W3^AQF^KQ3=\_A&^KHOLNJ6:I=?-HCO90)8T MAI&%A2)!;,$*/GYP^\ZW+H?>DRQZ)[)7[O5:]WJGV%^[!\?=JUGZAD6W[6W@ M7U\/[>VA*1TYKOLZ)_HWQ_4=ITVJ-=@'O2,'L3$]6)*85X6JR[R-MFT^--WM M37SL#B9UM_Y+4[\=6,0;5DB2P1HIG:O/V#Q%W8_KB>*EZ5"/7&&_,\,4GS 0 M.@'7UYRK_41OT#Z*P1]02P,$% @ S92B6-G.W[T( P *@D !D !X M;"]W;W)K&ULK99K;YLP%(;_BL6JJ96VTY3M].,9OUT#9?F*YUOO $]DF4@_8X3C'6UB"?,X77/7L6B4F M*62"L QQV$RLJ7LU&^EX$_"+P%XMM_5;XUWY66-!V_PF5GY[6 MBQ@5YHKV5:QCH:@0DJ55LB)(25;>\6M5AX,$-SB1X%4)WF<3_"K!-T9+,F-K MCB4.QYSM$=?12DTW3&U,MG)#,OT6EY*K6:+R9+A\7BSN;QYN'E?3>W1[]SA] MG-VIUG(U79E1-)^NIN@[FD81+R!&]P2O"262@$#G!\POD3?ZACS'"UK29]WIUA^*G5BJ.(%9E4RZ'<5,;5R9(/&R">X[M')6\&G5X=HQIWU(F[ M8A)3#6N@:??';]3&UL MM99M3]LP$,>_BI6A":2-/+1-6]9&*BTP)$ 5+=MK-[DF%HZ=V6X#WWYV$D+1 M0@:HO$ELQ_>_W]D7GTS$MF680(KE,<^ Z2]K+E*L M=%?$MLP$X*@P2JGM.8YOIY@P*Q@58W,1C/A&4<)@+I#3ZV7.MI MX);$B3(#=C#*< P+4'?97.B>7:M$) 4F"6=(P'IL3=R34]FM@5EC" ME-/?)%+)V!I8*((UWE!UR_.?4 74,WHAI[)XHKRAP!@H3 M*H_0 2(,+1.^D9A%%UTMYBAPX.C MES*VCJ8.R:M#\@K=SBNZTP2S&*2A"[$0CX3%:(OI!A!?H[B*HPFWE.TVRYK? MXT1F.(2QI?-?@MB"%7S]XOK.CQ;H3@W=:5,/ZO7%"JT@)HP9; V<@2 \:L(M M!?U"T/Q\V\#MN&ZW.[*W#2#=&J3[9A!@43M"*=5[(T*O1NBU(IPQ$/%CD[]6 MNP_ND%]3^9^35OXG0/=KZ/Z^TZK_[YYZPTZ_U[RG@QIDL+^T&KP+85@C#/^3 M5CI^T$[U"N@3"TTYD_KLUMTFAE:M#^Z:ZSR?RL[G)%NENV?NG6KB[CO?*L47 MN]WWA\U[[3X7 ;?UN'Y?PE5:?CN#O5-FS95%%S =H404UMK,.>[K&$1Y"R@[ MBF=%Y5UQI>MXT4STS0F$F:"_KSE73QU3S.N[6/ 74$L#!!0 ( ,V4HEA= MFZ'@3@0 (\6 9 >&PO=V]R:W-H965TQ&D_*R#;3 "YDFS?]=>?P(2W8%PZ MZA<;P>[CYUFTWM6.CY2]\BTA GQ/XI1/M*T0NVM=Y\&6))A?T1U)Y9,U90D6 M[OQ&&VV(KNA3\<[O"%/1#SOEDRN]!(EC!*2\HBF@)'U1//A]0Q9F4-N\6=$ MCKQV#3(I+Y2^9HN[<*(9&2,2DT!D$%A^'4DV49J_Q23#Y-))^8OKTO%S>?WWXNECY]^#V;N$O9G?RZFGEK_*[8.ZO M?/ %W$9I),B76,8\!'>IP.DF>HD)\#DG@DN#;XQR#OR$[E.YQFD(_"#8)_L8 M"^DA[S,1_8/S5_=Q3@2.8OY)NCT_S<''#Y_ !Q"E8+6E>RY=^5@74EO&4 \* M'3B,C@?,K@#R/@-D(*O#?=;O/B=!Z6XVW749T3*LJ PKRO',,WA%N.Z[ MP]4E[X1G=>-ER7S-=S@@$TUF*R?L0+3IK[] Q_BM2ZPBL(9TLY1N]J%/5U3@ M&*SS ,B76DK'9Z6?\)P<+_O;.4P]SX7R+1[JFBY9-C=SG--PVEMSPM&#:IN2=55ED3N M^]^'EMLBV6%D>'8W2:\DZ?7'D^&0@ 5.2&?P>IV'[AM%8 V=T*@JNJ$X:0I M1>I5H37EUQH:J#AQ"L#Z?H.V9[93YZ)9DW#5*L#>9 MHG>2YHH$VY3*9NX'R,_1W4'M11N\IQ2A-;57'0-T5:=4 M;P\R6+XBM*;\JA>!%YJ1X2GE=10?%QKMK7K)K'F:K7H*U%NT!R55 =5,EY$' M6U0[S6P$SU"MZC_JK_^S?&@BCTN/),XY\FVTZSYR]P(-/G,K0FO*K@T?S!2K?9Z_:-8D7#452-WDH8"JSSY,9!OM@MIE M!J$Q:E'5:]/";%3[@-DF2CF(R5KZ&5&ULM5AM;]HP&/PK5B9-F[0VLZ+K;WD--KQ(":\'*BX1:7]!Q".U?\M= M/<5\GB2?)S%XM1*\[R( @;A $\&#U>87,:#^<\27^\A9P;*5W_=1M(-@ M] 946-C4J%!:>+5R7JW_L9J^EEEMA3E1O'9.LEVQU>TSL,5>D09> M%68?0&ELW+8QVLDG;,4:\\3G<0I*B[84 /J-0!U8VW;$4S4LD@:3BCW'YX@; M7.0-M@;$T:;;46J'32\R!=OSH-3T\E5N1SQ5PR)W<+UJT\\10;C((&P-C:-- MMZ/4#YM>Y RV9\0-O.A-0JKUFX$?)ER_FKTALTW8KY\5[53]BO3!K:H-/T<0 MX2*)L#4ZCC;YZ^9^['?)4$8LX(K6J73]'&I$B MC8A]&W2LZW84RUIW=TX&ULC95M;]HP$,>_RBFK MIE;J2!H>NG80B4)9(ZVH@K9[[28'6'7LS#8/^_8[.S1B4F![0_QT__O=G7WT MMTJ_FQ6BA5TAI!D$*VO+VS TV0H+9EJJ1$D["Z4+9FFJEZ$I-;+<&Q4BC*.H M%Q:,RR#I^[4GG?35V@HN\4F#61<%T[_O4*CM(+@*/A9F?+FR;B%,^B5;XASM M2_FD:1;6*CDO4!JN)&A<#(+AU>U=SYWW!UXY;LW!&%PD;TJ]NTF:#X+( :' MS#H%1I\-CE ()T08O_::0>W2&1Z./]0G/G:*Y8T9'"GQD^=V-0B^!I#C@JV% MG:GM ^[CZ3J]3 GC?V&[/QL%D*V-5<7>F @*+JLOV^WS<& 0QT<,XKU![+DK M1YYRS"Q+^EIM0;O3I.8&/E1O37!0Y?X#M*U$Q *JL[X))Y/D;+N# 7M)]*BQJ-A1FS"/,M M*VEQQ,P*)E1R>,!\R>42SH!+>.1"D+WIAY;@'4*8[4'O*M#X".A4;5K0CBXA MCN(VO,S'<'YV\;=,2+'7"8CK!,1>MWTL :CYAKFK 1,NFF9!D. GHG!O4&@^3SIZM>].T$;[OF;9]2/^"]I(1F6/IZY)3Z M)M+36G5.?5)/P'5JN,X_!!T-)9 5:BUM$U$ET/,"KF-LDF[4#S<-3KNUT^Y) MIQ.^PQRTNWSGS "#$G5&I;MHF0&!"Y(,6I=4YRZ:DC5Q*K2-X$W M9:FE^.&*>CAJ=X#V%TK9CXGK*_6_0O('4$L#!!0 ( ,V4HEC9063"&0, M (4( 9 >&PO=V]R:W-H965T$%&BO!Y$HI5JD:[^U22;$6C]PM@/=;W]C![+L%GBWNC?@IQG_ M?V./)\.--E]MA>C@70IE1U'EW.HFCFU>H63V0J]0T4RIC62.NF89VY5!5@0C M*>(T20:Q9%Q%V3",/9ELJ&LGN,(G [:6DIEOMRCT9A1UH]W ,U]6S@_$V7#% MECA'][IZ,M2+6R\%EZ@LUPH,EJ-HW+VYO?;KPX(WCAN[UP9/LM#ZJ^_,BE&4 M>$$H,'?> Z._-4Y0".^(9/R[]1FU6WK#_?;.^WU@)Y8%LSC1XA]>N&H474=0 M8,EJX9[UYC-N>?K>7ZZ%#;^PV:Y-(LAKZ[3<&I,"R57SS]ZW<=@S2-,C!NG6 M( VZFXV"RCOF6#8T>@/&KR9OOA%0@S6)X\H?RMP9FN5DY[*[Z?/L;?PR>YO" M_>QQ_#B9C?^&V>/\Y?GU8?KX,H<_8,)L!?=T>O 9BR7"M"PQQ%*AM7!VAXYQ M8<_A$W %+Y6N+5.%'<:.Y/E-XGPKY;:1DAZ1<@D/6KG*PE056/QH'Q-6RY;N MV&[3DPX?F+F ],\.I$G:@]?Y'9Q].C_A][*-V67P>WDL9FCXFOD(P#U73.6< M"9@IZTQ-U]4=1&\\]@Y[])EW8U M?7$5&LBU)-^5SR<2SA7U$7/N -+RN=V=H&4_4@YF MF M+2]YSIJ44@4X]GZ(MU$T"(K\P[#.^DDRC-<',/HM1O_78ORLOP4[PM#(Z>\Q M'"$8M 2#7TO 2D<.3G%TP&G'Q"&'5 MATO7/49XW1)>_W^$H$N@%OJY'=HAKM,2NRG(\' >>BKBO=(@T2Q# ;1T!RFH M395H1]L:.VY*R_?E38&FYW1),0"!)9DF%U=TE4Q3])J.TZM0:!;:4=D*S8J^ M$]#X!31?:NUV';]!^^61_0=02P,$% @ S92B6+WI?TC8 @ 0D !D M !X;"]W;W)K&ULM59A;]HP%/PK5E9-K42;$$+H M.HA$0]&06H: LL\F/(A5Q\YL ^V_GYV$%-84H8E](;;S[G+WN-AI;[EXD3& M0J\)9;)CQ4JE=[8MHQ@2+&]X"DS?67*18*6G8F7+5 !>9*"$VJ[C^':"";." M=K8V$D&;KQ4E#$8"R7628/%V#Y1O.U;=VBV,R2I69L$.VBE>P034F:7 M+ N2 ).$,R1@V;&Z];NP9>JS@AF!K=P;(^-DSOF+F0P6'<5OE( ]P?[]C[F7?M98XEA)S^(@L5=ZQ;"RU@B==4C?GV!Q1^ MFH8OXE1FOVA;U#H6BM92\:0 :P4)8?D5OQ9]V -X[B< MP"XIP(:!:"1&EA.)V@:]3'1* 9IFM ESU0F%!YI9>?)SUT>7&%+A!A:!KS MM<1L(=NVTJH,MQT5"NYS!>XG"IZPN$'NMQIR'=>K@(?'X3V(2GCC$&[K7I0- M<S ;:-TVSC&ON\6&[SZDK>I*A3A?Z$^:%FS;%GSU P_$CPG5+<#*H/0 MST1V8-DO+?NGIH06EM]JB'%V),_^AZQ>>XWZ7X&N*+J];55'NE6*;9TJ]O%= M[+ 4^T_)/O[(GUG2WOM1=JDZ&.&YV/+^V'L'E/DXT'O^BC")*"PUOW/3TM$1 M^8&;3Q1/LS-KSI4^ ;-AK+]10)@"?7_)N=I-S#%8?O4$?P!02P,$% @ MS92B6',$$(7C P 2 \ !D !X;"]W;W)K&UL MS5=M;^(X$/XK5FYU:J7=)@XOA1X@\=*]B[1E*Z"]#Z?[8)(!HG5BSG:@]^]W MG(2$"I+=Y?:D?@$[\)]/;"_E%;0 T>8EXK/K61NOMG6TK?P,14S=B M"S&^60D9,8U3N;;55@(+4J.(VZ[CM.V(A;$UZ*7/'N6@)Q+-PQ@>)5%)%#'Y M[PBXV/S,+U1IL']J"W96N8@W[:/DJW4T)H;*4H@O9N(%?'Q M^.#]8TH>R2R9@K'@?X:!WO2MCD4"6+&$ZYG8_P$YH9;QYPNNTE^RS]M6&+BY@9OBS@*E*"=,LT%/BCV19C5Z,X.4:FJ- MX,+8G,I<2WP;HIT>3.YGWO-PX3W?DX_>=#@=>\-/Q)O.%[.GA_OI8DX^D*'O M)U'"F8: ?-8;D&0L(DR!C3F;'1 O]D4$Y.J34.J:7$U LY#CZ!T)8[+8B$2Q M.% ]6R-<$]3V\/-#P36ZS1Q@ M @4@PQW3F:G2,L&/!'V>*3T]#EIU-:E;4G5_?E7*?7Y76:*E\M#:>E^7BKGE M*_)NPZF(6$H K=> W_%+[Z#U>+LGY6%XWSB,6K\77EE:*@EMO9WJ1&ME[5*N MI5K1B^6*GNI5384JY8K6Z]5/KE"W/U"A2GFBM:+P-BM4YTNVJR<7RCYB8"N4Y;.(7D\#"S/J=X6K2)PZPY*I=G M/28V &L\$,)AA:;.S2URE5G;EDVTV*:MTE)H;+S2X09;79!F ;Y?":$/$Q.@ M:)X'7P%02P,$% @ S92B6+^2NVD4 P 8@L !D !X;"]W;W)K&ULK59K;]HP%/TK5E9-K=0V[T ZB%1@#Z2NH$*WSTXP M)*H39[8#K;0?/]M)LT #:@5?$MNYY_B4YRQOA9SGM_H M.HMBE$)V37*4B2]+0E/(Q92N=)93!!<*E&+=,@Q/3V&2:4%/K4UIT",%QTF& MIA2P(DTA?1D@3#9]S=1>%QZ25F DA0T."?R<+'O>UK@86: D+S!_(Y@>J#+F2+R*8J2?8 ME+&>IX&H8)RD%5@H2).L?,/G*A$-@.GL 5@5P'HOP*X MC):*E.V1I##H$?) M!E 9+=CD0.5&H86;))/'..-4?$T$C@>CKX,YF SNQM]OY^/)_0Q<@2%)<\(2 ME>7S$>(PP>Q"K#_.1N#\[ *<@20#\Y@4#&8+UM.YD"')]*C:W9\B>D MU\#R+X%E6$X+?'@8/D)1#;>WX;HP7V? JC-@*3Y[+U_(P23$R0I*RZV&2@:G MG4'>M!N6PPCU-7&5&*)KI 6?/YF>\:7-WHG(MLS:M5G[$'LP)QQB4>8A;[-9 M8CV%E?=_'?B>(\]HW=3?$M5U7*N.VA+FU,*<@\+&C!4PBQ"(".,,B,I2*L$B M81$I,MYZ+"6EVU!RY5O^CMR6(-.PS':Y;BW7/2AW5H1<;>[;\O+LUQCIPA;HKJF MY;87H5\+\]]?A)=@PF-$7Z>R%LN%T1[A![D_>CXG(MM*@VG\_]<:1Y=C17$B MOZ=BVS;<:"[,(TJR C?_)&9G]V_3$F1;G9V"U!L-D.P^18NQ2C(&,%H*E''= M$15-RX:NG'"2JYXH)%QT6&H8BR8841D@OB^)J-EJ(MNLNJT._@%02P,$% M @ S92B6"0'K+EW @ 308 !D !X;"]W;W)K&ULK55K;]HP%/TK5E9-K;02R -(%R(5V .I6ZO2;I^=<$.L.G9F&^C^_6PG M1- %M _[DOAQS_$Y-[XW\8Z+%UD */1:4B8G3J%4=>.Z,BN@Q++'*V!Z)^>B MQ$I/Q=J5E0"\LJ"2NEZ_/W1+3)B3Q';M020QWRA*&#P()#=EB<7O*5"^FS@# M9[_P2-:%,@MN$E=X#4M0S]6#T#.W95F1$I@DG"$!^<2Y'=S,0A-O WX0V,F# M,3).4LY?S&2QFCA](P@H9,HP8/W:P@PH-41:QJ^&TVF/-,##\9[]L_6NO:18 MPHS3GV2EBHDS=M * W ^U> WP!\:[169FW-L<))+/@."1.MV++[=/B_OO2W2-9A1+27*289OHRSDH3*B\TEO/RSFZ MO+A"%X@P]%3PC<1L)6-7:26&S\V:4Z?UJ=Z)4[]AT4->] %Y?2_H@,_.P^>0 MM7#_&.YJ_VT2O#8)GN7S3_*E"MVGE*RMY4Y#-4/0S6!J[496.(.)HXM)@MB" MD[Q_-QCV/W;9^T]D1V;]UJQ_CCU9;E+%%:9=)FODT")-_6^3* RB,':WA^H[ MHD:!/VBCCF0%K:S@K*P[D%)?>"& *51Q8>\>SQ'E;'VM0)2Z.%/5);KF#0_D MC"-SJXXT=P0%H=:.R(&D>CZ(U(]Z#8 M3:/5M;0F3"(*N<;U>R--(^KF54\4KVS]IUSI;F*'A>[W($R WL\Y5_N):2GM M'R3Y U!+ P04 " #-E*)8VTXV["P" #[ "0/>>R,&-OAUB.?-^D M.\BYZ:@2"KK9*)US)%-O?5-JX)D#Y=(/@^#6S[DHO#AR9RL=1^J 4A2PTLP< M\ISKEPE(58V]KO=Z\"BV.[0'?AR5? MKP!_E2I/EMRR9R*$P0A5,PV;LW7=' MD[[U=PX_!53F9,]L)HE2>VO,L[$76$$@(47+P&DYPA2DM$0DXW?#Z;4A+?!T M_\K^X'*G7!)N8*KD+Y'A;NQ]]%@&&WZ0^*BJK]#D,[!\J9+&?5E5^PXH8GHP MJ/(&3'8NBGKESTT=3@#=_@5 V !"I[L.Y%3../(XTJIBVGH3F]VX5!V:Q(G" M_I0U:KH5A,-X]GGRQ):3;_,O]T_SY6+-/K %E7*J(1/('G@JI$ !AMW, +F0 MYEWD(\6U:#]M8DSJ&.&%&-^Y[K#P[CT+@[#_+]PGN:WFL-4<.K[^!;Z%0A*T MXB\\D_/9-]S;X=$5]KU7? M<^R]2Q6'!-DRD6++;5^>U=?[#_KZK;[^U>I.55XJ(Q"8*!"('YGF9-UPPS@K M0:=0X-DNJ'GO'*]]#(YQT F&P\@_GLKQ3YK5SCUUQU84ADG8$"[H# <>T_4L MU0:JTO5OHI"FP6UW]/R M@YTOU'4#XUA1Z)]T.*_4$L#!!0 ( ,V4HE@E M5A'DZ ( + * 9 >&PO=V]R:W-H965T]SSV<4[.>,7XL\@ )%H7.143+Y.R//=]D6108''"2J#JSISQ DLUY M? ME!QP:D1%[D=!,/0+3*@7C\W1L-?%";S/Q0!:9 MU!-^/"[Q F8@'\M[KD:^=4E) 5001A&'^<2[",^G85\+S!,_":S$SC722WEB M[%D/;M.)%V@BR"&1V@*KOR5<0IYK)\7QNS'U;$PMW+W>N-^8Q:O%/&$!ERS_ M15*93;R1AU*8XRJ7#VSU%9H%#;1?PG)A?M&J?G;0]U!2"+Z:>6F+\Q2C5K!$:JS,I-SZQGZA+X !8YS=$OK5.LM.[P"B4DNCM !(A3]R%@E,$W%V)YQ]]+E1M)Z +EFN\8L=(D2#($:PDT;0-V6TI>@8-L8,D&^Y))X.K 8@EM M<&[75^"&%F[HM'D 0=)*'>HESBM BPIS3"6T M5.0^.D2]DR#L;^LB7XJ0U^ MZ@Q^1R@IJJ(MEE.XYU$:6:S1G@=\] Y49Y;J[&W'B(/^I-@)+AG1AOA?P:+MF#1^R3U%=^1R:IP,6[+ M?>BLV_\RFGIJ>HY..K?CX'6Z;=D/WUCW;4WMIG,[=K\1_DX340!?F%9)H(15 M5-;]A)VU[=A%W81L'Z][.?5Q7A J%/1<28.34U7M>=T>U0/)2M.2/#&I&AQS MF:F6$KA^0-V?,R8W QW -JGQ'U!+ P04 " #-E*)8I=3!#0X# "4"@ M&0 'AL+W=OT2JU6E7;[;)(+6$UL9AOH]NMG.R&#$**UZA<2V_> 49%M=L#52M+!C/L%1#OK3%F@-.#"A+;;?5"NT, M$VI%?3-WSZ,^V\B44+CG2&RR#//?(TC9;F YUG[B@2Q74D_847^-ES #^;2^ MYVIDERP)R8 *PBCBL!A80ZAX$_"#P$X1J8'4LE, ";U+Y MP';?H- 3:+Z8I<+\HET>&ZC@>",DRPJPVD%&:/[$+X4/!P#%4P]P"X!;!?AG M %X!\*J \ S +P"^<2:78GR88(FC/F<[Q'6T8M,OQDR#5O()U66?2:Y6B<+) MZ'8ZG$UGZ K=@G(/35_4]Z2>EQ.0F*3BDUIYFDW0Y<4G=($(18\KMA&8)J)O M2Y5>D]AQD6J4IW+/I/+0':-R)="4)I#4X"?->,=M(+"5[E*\NQ<_6TC-\WKE2F@K&3,BZVN18 MOQZK#Y>>6.,8!I8Z/03P+5C1QP].V/I2Y\M[DDW>B>S(,[_TS&]BC[ZO@6-) MZ!*EC>[E+*%AT2?I-G("M]VWMX>NU 3Y7>\X:-*XGS>J#4JU0:/:V6:>R[RA M,?B)>JU4&':EHERK:C2INJ 3EC41*1%[>E. Y28DD M4"NF7;/1BI;3$->M2&GX12L:$RO[W*V;*U&IJ.HC(_2K4U7,&=2]1CF=:7:1N Z0*TO&)/[@4Y0-J+1 M7U!+ P04 " #-E*)8KGR-/N4# "%#P &0 'AL+W=ON2V082)\4&=&A0-]LS+=$V M44I42/?Q!IC"7X4M!039RUE=>^Z M(EOC HD[5N%2?5DR7B"I'OG*%17'*#=*!76AYT5N@4CI3,?FW0N?CEDM*2GQ M"P>B+@K$?SYBRK83QW?>7GPAJ[74+]SIN$(K/,?RM7KAZLEMK>2DP*4@K 0< M+R?.@W\_\R.M8"3^(7@K#NZ!IK)@[)M^^"N?.)Y&A"G.I#:!U&6#9YA2;4GA M^+XSZK1K:L7#^S?K'PUY16:!!)XQ^B_)Y7KB) [(\1+55'YAVS_QCM!(V\L8 M%>8?;!O9&#H@JX5DQ4Y9(2A(V5S1CYTC#A3"/@6X4X#G*@0[A< 0;9 96D]( MHNF8LRW@6EI9TS?&-T9;L2&E#N-<@ULP8Z5@E.1(XAP\ M(HK*#(.YR:2K)RP1H>):B;W.G\#5AVOP 9 2?%VS6J R%V-7*BS:HIOMUGUL MUH4]Z_Z-^!V Z0V '@PMZK-A]2>K!L;JK/-"Z ;9N@,9>T.<&K%+!2J/1 M"^UZNLCN184R/'%4%0G,-]B9_OZ;'WE_V$A=R-@1Q:"E& Q9GYH*O67+VUI@ M@(3 TLJW,1(9([H';*8^3#SEX\TA$9M4&(U:J2.$88LP' S"YPIS)$FY M2$ MXZ:Y DK0@E BB3U"X24C="%C1_Q'+?_18(0^';']:>/:&!@=^#V,XK@3'(O0 M*(CML8E:;-%[L.G0"*$:%.>XE*!B7#=E&^+H!$R:ADD'L44H'B5VQ'&+.!Y$ M_)5)1,_+H/AD>3^,X*@#TB8%TYZ<3UJ4R6#.?R2EZ;1-QH,K4F:TSE4+5NT5 M?Z])56C_JA[;2*P959^*BK,-UE]4C9187M_;6"67K(L+&3OR4=KZ*!V,Y/.Y M?K!Y(3V)6@3#;F@M0GZ0VB/K>_NMU1O$_9!E=5%3LZ/F6#DF(ZBO3':F#B'< MAEZ:=H#:Q(*DK[C]@RG /Z-8SDXX*P/_9$^ JHRZ!"Q2@0=[\.^W;W]PZVS+ MR+2I&]#N=:^J^!_T7G<#YE(%PI!C2]#($\7YA0G2&Y3A17\E+V?_C^UC]^U' M S\XOPL!MJ!D93+5/M@-SAGO;2R7LG;,?#]R^(,[^CN9AZ=CC_IU4]PFE40] M*;X?#OSAZ: 7Z?E[L7\Z&2CXL(O?)I6$/?CW X0_/$$T+6;Y+G]'I\T"PNXL M:I,*8J^#USTX(^D#JCJ K$@I%)"E4O/N8L67-V>^YD&RRAR;%DRJ0YBY7:MS M,N9:0'U?,B;?'O1)K#UY3_\#4$L#!!0 ( ,V4HEA_&WA!A0( ,H' 9 M >&PO=V]R:W-H965T MEKJQ6Y6EFU@E]U(^V,Y-,?,"6Q!PR(UEH/C; MP!PXMT18QI^.T^M36N!^>\=^[;2CEGNJ82[Y;U:8>/0J(8)NXH+HW"6(HOU,U(N'TA(1!.!F SX_#+R'O MX=$AW$>1O=*P5QHZON@YI8"KK8=DM+C),,X>HS-=TQQF'IX3#6H#7O;^W3@) MO@R)^D]D!Q*C7F)TC#W[48/"91,KPIW8$]*X;0P%H1N<6@$>/'NT^Q!B0%5# MGAQ/%)$M4*5)1"HI3*E)&).";H?Q&_=$ 73N5P+0S 0AN2W&:8N@WT3-EDP"I+D M-/4W^QJ'PX)I'W8@(.D%)&];Q!?+3X;JBN/ID_*'P\9/R_?W;EK[RN$=MV)" M8WU+! :C4[1!M2]'VS&R=I?OO31XE;MFB8\M*!N \TLIS:YC[_/^^<[^ E!+ M P04 " #-E*)8/W ">$(" "%!0 &0 'AL+W=OR M 8$O:ZEJ:M!4FU W"FCI0#4/XR@:A35E(L@S=_>H\DQN#6<"'A71V[JFZO<4 MN-Q/@F%PO%BP367L19AG#=W $LQ3\ZC0"CN6DM4@-)."*%A/@MOA>)9:?^?P M@\%>GYR)5;*2\MD:W\I)$-F$@$-A+ /%SPYFP+DEPC1^M9Q!%]("3\]']GNG M';6LJ(:9Y#]9::I)\"D@):SIEIN%W'^%5L^UY2LDU^Z7[+WO]2@@Q58;6;=@ MS*!FPG_IH:W#"0!Y^@%Q"XA? ](W $D+2)Q0GYF3=4<-S3,E]T19;V2S!U<; MAT8U3-A_<6D4OC+$F?S[_'8Y7Y*/9 '"D/D!NT,#N;P#0QG75_CPM+PCEQ=7 MY((P01X8YUA]G84&@UN*L&@#37V@^(U "7F0PE2:S$4)Y4M\B$EWF/2_MQ=DK'NJ$% M3 (<0PUJ!T'^_MUP%'WI$_6?R%Y(3#N)Z3GVW+4(^!;I[0 /'T8.;_?'+A\. M;K)P=ZJ@UVG4.?G,PI..KD%MW*!K4LBM,+Y%NMMNE]RZ$7IU/\4=XU?"7QJ_ MH+ !-DQHPF&-E-'@!B=4^:'WAI&-FYN5-#B%[ECAG@1E'?!]+:4Y&C9 MWGS M/U!+ P04 " #-E*)89YP>B_L" [" &0 'AL+W=O%,P+TBNBY+ MJOY< I>KB=?S-@L/;%$8N^ GXXHN8 ;FL;I7./-;E(R5(#23@BC()]Y%;S0= M6GMG\)/!2F^-B8UD+N63G=QF$R^PA(!#:BP"Q<\2IL"Y!4(:O]>87GND==P> M;]!O7.P8RYQJF$K^BV6FF'B?/9)!3FMN'N3J*ZSC&5B\5'+M?LEJ;1MX)*VU MD>7:&1F43#1?^KS68AGDF_7%[/K&3DEL[JJ..#]&,K)E.J"W. -DUO1 MO!0K^?$5&,JX/D'SQ]D5.3XZ(4>$"?*CD+6F(M-CWR GB^RGZ_,OF_/#5\Z/ MR)T4IM#D6F20O?3W,98VH' 3T&5X$/".JC,2GG\B81#V._A,W^ >]9Q[=(!. MU.H;.;SH%3RG9$591E!'0DM9"Z-1LY37&*\5SQ1 2J"Z5DY](G/"<0J$,SIG MG!D&>M0E;'-PO_M@F_TC7=$4)AZFMP:U!"_Y^*$7!U^Z5/E/8"\TZK<:]0^A M)]\K4/C"Q(*D5JW>TH&(!+K7VX+\K?J< EJX=J3)JE-^J:"M:MM![QPA7]G_1([ M8]/(_L$T;17KTX()C>'D"!F<#5%QU;2J9F)DY:K]7!KL'6Y88'<'90UP/Y?2 M;";V@/;_0O(74$L#!!0 ( ,V4HEBQ#.7,AP( -$& 9 >&PO=V]R M:W-H965T455XZMFM3F8[%6G-6 MP502M2Y+*M]O@(OMQ.MY'PLSMBJT6?#3<4U7, ?]4D\ESGRGDK$2*L5$123D M$^^Z=W63F//VP"\&6[4S)B:3A1"O9O(CFWB!,00]*V]AYV ,#P0$+8!H?7=@*S+.ZII.I9B2Z0YC6IF M8%.UT6B.5>9/F6N)NPSC=/IX?SV_GY.OY&<-DFI6K<@C8)8*EYZH7DNF&4Y$ MWBR31T87C#>+YW>@*>/J@IP15I'G0JP5K3(U]C4Z,_K^LG5QT[@(#[AXHO*2 MA,D7$@;A@+S,[\CYV<6_,CXFYK(+77:AU>T?T'5)=5EJ0@?=H:88KE1-ES#Q M\&U7(#?@I9\_]>+@VQ%C?6>L?TP]G8$IF RDN5F3=)?!1B*V$J:X-ND@C/#D MI@,\<.#!43"RHBY6$Q7ML*(@3KI9D6-%IUAQ%RO:8PW"?M3-BATK/L4:=K'B M/58O.<0:.M;P%&O4Q1KNLWK!J)LU^CDP(N2 M.'!R%/PL-.6$VZ*OZ3OV8=U9V,G>2]J+X^3_&_9W.I1I]ECP*U8IU,\Q+K@< MHG79--!FHD5MF]9":&R!=EC@-P>D.8#[N1#Z8V+ZH/N*I7\!4$L#!!0 ( M ,V4HE@#$'E/MP( .T' 9 >&PO=V]R:W-H965T"&(U'E.>9/ET#9=FJ,C.>% M6[+.I%XPH[#$:UB"O"]ON)J9'4M"E9<5%C!C M]#=)9#8US@V40(HK*F_9]ANT?CS-%S,JZB?:MK&6@>)*2):W8*4@)T7SQH]M M'GJ D?L*P&X!]EL!3@MP:J.-LMK6'$LXR5@E<)"(TI1*EJ^/ MO=#<])T<_-8[G;B=$_>@DP4(,4'7>5E)2-2O*-6O*N20EX;'ZWDYM:W VO%R M\&OO].)U7KPW5X42O"*42 *#A?'VS(Q^%2K]3Z;\AX[.* MJYX@$5M1LL:Z(P_J]/=TNGX0[,@<"/*<8%AET*D,#JK\P8JXE=@D]!]"@[U4 MC!,LJ;RZ692%;6_7G%I.KV M]3!3]S%P':#V4\;D\T2W_.Z&C_X"4$L#!!0 ( ,V4HEC$4FES: ( $X& M 9 >&PO=V]R:W-H965TF7X#O[GA?B.[*M5"^Z M C#DM>9"3[W*F.;"]W5104WUN6Q X,Y2JIH:#-7*UXT"6KJBFOM1$,1^39GP M\LSE'E2>R;7A3,"#(GI=UU2]70&7VZD7>N^)1[:JC$WX>=;0%'?C%8*MWUL0Z64CY8H.?Y=0+K"#@4!B+0/&Q M@6O@W *AC#\=IM=3VL+=]3OZG?..7A94P[7DOUEIJJF7>J2$)5US\RBW/Z#S M,[%XA>3:_9)M=S;P2+'61M9=,2JHF6B?]+5[#SL%472@(.H*(J>[)7(J;ZBA M>:;DEBA[&M'LPEEUU2B."?NGS(W"789U)I_=7LYOY^0KN6."B@+(#-"CQL0] M-6O%#,- +MLTF3&Z8+Q-GMZ H8SK,W)"F"!/E5QK*DJ=^09U672_Z#1WY#3D[-_87RTU7N+>F^1PQT=P.TL#0EJ"\?#A;81 M+G1#"YAZ>-,UJ UX^>=/81Q\/R)KU,L:'4//'\$V2PG*OE=K>4A@"Q$["-M8 MFSP,PE'F;P:(QSWQ^"@Q:O(153Q$-=FC&H_38:JX MIXH_HDJ&J.(]JC \X"KIJ9*/J-(AJF2?ZH"IM&=*CS(]24,YX:[I&OJ&4] , M-E:Z=TVB4?+_-?%WQH.=M-AO*R8TPB^Q+#A/4+EJIU<;&-FXB;&0!N>/6U8X M\$'9 [B_E-*\!W8(]9^0_"]02P,$% @ S92B6%EX:^FJ @ [0< !D M !X;"]W;W)K&ULK55A;YLP$/TK%JNF5EH+@0!= MEB"U2;M5ZJ:J:;?/#AS!*MC,-DG[[W<&RM*49E&U? @VOO?\WAT^C]="/J@, M0)/'(N=J8F5:ER/;5G$&!54GH@2.*ZF0!=4XE4M;E1)H4H.*W'8=)[ +RK@5 MC>MW-S(:BTKGC,.-)*HJ"BJ?SB$7ZXDUL)Y?W+)EILT+.QJ7= EST/?EC<29 MW;$DK "NF.!$0CJQS@:C:6CBZX"?#-9J8TR,DX40#V9RE4PLQPB"'&)M&"@^ M5C"%/#=$*.-WRVEU6QK@YOB9_;+VCEX65,%4Y+]8HK.)=6J1!%):Y?I6K+]! MZ\ MX&N3T.>C 0[[@>:LC51)8YA8>)@4R!58T<D3GDC=6[B&):A93"]81:X78I)7FT9V;O5.(\/.R'"GD6M0:D2N MBK+2D.!WJ/$[5;K/2L/C;U@Y'OC.EI6=F[W3BM]9\?>H2=H>P:8V8I&S)36] MKK<\_BM/KNMNE\?OJ^%?XR^T!IW68(^T3RN)74'_2V7P2N4 ?ULJ^X).@WZ5 M8:2$T=OMZF.%]#-($X'HJA'Z>F);?W?#1'U!+ P04 " #- ME*)8O9F@9.8# "0#P &0 'AL+W=O^# M!2VK%-%^@?5CCN<<>\:>WH[Q5[%%E/ >A;'H6ULIDP?;%L$6(R)N68*Q&EDS M'A&IFGQCBX0C61FC*+0]Q^G8$:&Q->B9OF<^Z+%4AC3&9PXBC2+"/T88LEW? M0C8X1_DU>>:J99.Z;PW=A[';T@9FQC>* M.U'Y!DUER=BK;DQ7?4+V_V".:&VQ@M8*,PO[/*YC@5!*B2+&UB.19-#C; =H1OPY?I([7@J_S1[CZ_AK^K/%L M_ D@WS5 ?@'4X*!?"NX;W-8)W-]3$M(UQ16,B=@"X_"(:^1<=0PY)_$&59#( M.B4;<76X/XB$!-BW5#P+Y&]H#7[XSNTX/]61OQ#8@02M4H*60?=/2%!_C.HH MMRY)^4)@!Y3;)>5VXZZK/58]:L_5:>=TF9H4IFG?P(*\PUP2F=8JT R;BB\; M0I*'\E!IR!E&2^1U"C2"G:E IU2@T^CJC+S3*(T B\T/JE(0 002Y($Z^^KV M +96XY&ZJP0QXZE*#QQ:CGOU>FUT@ZNJ26WFR?SI&G_T;?8V<&[;/?NMJDBC MSVF:@CTPCU;R/A0F 'K+LEZ^Z%@K][2GT;.A5!>_/L,Z9O^NO69'.42[ M$H>>>Q2&S:$U.SQ^%;^90W)$E-!+9E4]9CYW*J2&;F>H,;7C,FB MH1% M)*HN2RJ/4RC$8>STG=/&DNUR;3;<,*CH#E:@?U8+B9';L62L!*Z8X$3"=NQ, M^G?3D_82T(5W(OBB64Z'SNW#LE@2^M"+\7A&[3]6(&I*)1]DD.;ZSDD MK94690M&!27CS9N^M',X _C]5P!^"_"M[J:05?E -0T#*0Y$FFQD,PO;JD6C M.,;-1UEIB:<,<3J\_S&;Q>M9-%^OR&3^0#:393R9?H](/%]'RVBU)G@4K^-H M13Z2#96,)@60F&N0H#2)N&::@2+O'D!35JCW@:M1EB%WTU;"M)'@OR)A0&:" MZUPA60;9WW@7V^EZ\D\]3?VKA#,J>\3__('XGC\D8"0>K] .NE$-+.W@OT=U M:08-]_ RM['>G:IH"F,'O:5 [L$)W[[IWWA?KB@?=LJ'U]C#!<@4QX F(V)+ M4J&T0D.Q,JFE@HQH09[P^R9'\@@-"[K=[@Z9--;YD]Y< M0/C;[!A7I( M0KW>)ZPK&U,W@1:5-5(B--K2+G.\!T&:!#S?"J%/@2G0W:SA M;U!+ P04 " #-E*)8*Q_;R5P" "R!0 &0 'AL+W=O2I$&1=!MGTUR)%83 M.[,-M/]^9SMDM .T#_N2V'?W/+[G[+MH)^23R@$T>2X+KKI>KG5UZ_LJR:&D MZD)4P-&S%K*D&K(0MDOV;G8ZQN/)!NE M15F#,8.2GSW4=#@#(/0P7O3F]Y-![QN9S.X>%M/> MX^1A1CZ3)61X=9I,N'LXY@8^#$%35JB/Z%?.'_D:4+3]7W[\(=*Y(CZ1PG,9U\JRJ:0-?#5E4@M^#%[]^UKUI?CRG\3V2O]'8: MO9US[/%L4ZY $K'&%J^$U(QG^\>AC@EW;)>6S4R<;1Q$_O90S;D(EZ)_\/Q+ MD)F="HHD8L.U>SB-M1D\/=MO;^Q]'$AN?ORA<=,,GT7&N"(%K)&R=7&-^4@W M(=Q&B\HVV4IH;%F[S'&H@C0!Z%\+H?<; 9 >&PO=V]R:W-H965T:6;1FK33J?2]*&VL_N9)DZ"!G 6G*8SVA^_AE T\F8;7@4)O0Q1=DFCH/TYR6- MV/9\@ X1B']O=$JC*$<2//XN00=5 MGWG#_>L/]"^%>"'F-V_4I+04Z.-V-15OQ% MVS+6&J#9)N,L+AL+!G&8[/X'[^5 [#40./H&4#: 9@.[I0$I&Y!"Z(Y9(>LJ MX,%DG+(M2O-H@99?%&-3M!9JPB2?QF>>BE]#T8Y/GJ]O[J[O7]#%_16ZN7ZX M>;IX_'H[O?B&;N^_/#S=7;S@Z MF=-YO?U0R*LTPH?&2S "W@7I*8+19P06V!H^TP.:$UPT)P8ZI!IR4N"1MB&G MRV(D4SICR2R,PF(L=>.TP['U./D+?I:M@QD]'X@W.*/I&QU,?O\-N]8?.I$] M@=4DVY5DVX0^F8H)3<4;*S2_T61#=6)W"&Z!D">?MPD&L/W1>/BV+T,39H%K MD2JL1M"I"#I&@E=4J)[M9@*)98N"F*4\_-4Z-3LX9X\&<4;0X*H&V2*]ZIFZ M%5/7R/0VX51,$$?T7:3RC'Y&">4ZAJ[2.6#B-1AJ@FS7U3/T*H:>D>''^EZG M;!%R=!2Q3.2'5RH\AXK4,&,Q13QX_Q"@X^ZIHSL"O\%=#<*N[^NY^Q5W_S]& MMZ)W]$H3*@01[S9XJC&>TS+$HXKFR$CS7OA[2?7H6SZ\.FXC=6Y' M=G.)JD$C GIRV)*>8AGI72S MNW>M@$'G]'XSI>JBP&XC*VT>S#9_4!U<8M27*S3WE9HH[)"6S1I(-P;SSKI3LP]=$V(?:'5QT/:-#@]^0 8_;ZS[)[0ZK*E]8/9^@_Q =#MV-7J1!-F MJ$Y .C28M^V=;0 TNW2GZ0*:(/!:=K\@;17,MMI'DE7=%(AM-^EKHAS?:^$O M+1?,EMLYR:I>ZOC-[R&:((R=EG5!I.$2L^$>E&.)QFP]93'HHFQH8R@MEY@M M=\K2-1-95M0"]RPY*1>'EF:O^_"^T.JRI5,3Z.L[LM'R.\ON":TN>^_KN=GS M#RX B>KH@)4R51=ENRUE*I&^3\R^WT.&*GO89W8"'C0_X>K"B.NU5"Y$.C4Q M;ZB[YBBB[II/W+W=2UB6'4]73ZL#SHCCF:SR_Q&?3W;&EA-F=HMX%J:@4,Q31 MA8"T3CTQ;NGN8')WP]FZ.-M[99RSN+A&ULK5A=C]HX%/TK5K9:M5)G\AW"+"!13*=(.\P(IKO/'KA U"3. MVF9HI?[XM9-,(#,AA>(7$B?WG.M[XD-NW-M1]HUO 3ZGL0I[QL;(;(;T^2+ M#22$7],,4GEG15E"A!RRMW8HX2N&! M(;Y-$L)^?(*8[OJ&;;Q\4\$.WYPCE0I3Y1^4X/)LF]8:D80PT(H"B(/SS"".%9,QN^#BYGZ(K-(>U?-@"#3D'P=%[#()$,?\@;WV=8_3^ MW0?T#D4I>MS0+2?IDO=,(6>G8KJ5@,\@H$U&Z;A*DH/":*93C;WA& M%M WI*4YL&R4=R==:DVX%/LCQZH_M M>>!9G:YE]ZU3U=KY':^M91@P=5F^D="(IEPV T<6 M46N"13C*LB:PF;%@)&U[NOU"G=#K)L":RFG3=2KKNA?[KOO&"$P2V^\I^ MK5G.%:0AI>N'1]YTMK7O(:W66D>4R?5!!'Q$4YI>E:4WMH"M1.,XDM^&1'U)-U?>RG7VLM')AG6QU77;!W MHG:Z[@B3?2-',:PDT+KN2!Y6;!X5 T&S?#OEB0I!D_QT V0)3 7(^RM*Q&ULM5MK;YM(%/TKR%NM6FE3,T\@FUA*G32-M$FC M/'8_4WMBH_+( DE::7_\ G88#PRW833^DAC[WN,YS#'W,)LGR[\5:B-+Y MD<1I<3Q9E^7CX71:+-8B"8N/V:-(JT\>LCP)R^HP7TV+QUR$RR8IB:?8=?DT M":-T,CMJWKO.9T?94QE'J;C.G>(I2<+\YR<19R_'$S1Y?>,F6JW+^HWI[.@Q M7(E;4=X_7N?5T;1%64:)2(LH2YUBIW73DWE6Y9] MKP\NEL<3MQZ1B,6BK"'"ZM^SF(LXKI&J^!-G*1["I[B\R5Z^B"TA5N,MLKAH_CHOVUAWXBR>BC)+MLG5 M")(HW?P/?VQ/Q$Y"A:-/P-L$W$V@ PEDF]"EF9 VMT[ ,9T=Y]N+D=72% M5K]HSDV37;&)TGH:;\N\^C2J\LK9[=GYY=G5G7-R=>J&!1Q+K.T7!?.6;H4 M2S5_6A%L6>)7EI\P"'@9YA\='/SA8!=3S7CF;T@GJ$DGP'!(>]))@T<&\+;G M3G=B-HE4GUC_I@^+QW ACB?5C[80^;.8S'[_#7'W3QTK2V *1]IRI! ZQ'&3 MR)O$^C+S/$,84S\XFC[OCEX3YF+NDC9,&1=KQ\7 <9UFB2C*:*$;&)@Y]N1; M E-(\I8D-Q48M\G1$IC"T6LY>J8"VR2R7PE,$P8(S&_'Y8/C.DM%OOJI&Q:8 M-_;46P)3* 8MQH#'G/P>ZFL$88^?"%IK*&$O&V%1RVTQ;/"VAJ3RE,T!@409YDC>*KA\' MB4X6= 17]+-T5;TC\BA=.96O<^996E1FN3K4CA8$&STKEM!4ZM(S(&:L/JNF MP1::RE/:!@16;) G[ZD*(X^2KOCZ82@@R!\0GRSV"*[VP^+[U540Q!T]/Y;0 MU+,@K07RC75HU5W80E-Y2G^!P-(.\@S>IL-^&*!#+$T!ADW!/$L2D2^B,-8- M#DX>.PFVT%2JTF1@9"HV;-5:V$)3>4IK@<&2#O+$_5+J^5VM::(\WQ^XC<#2 M"F#8"DBI59>XX;L*&&7T7.QCS0!+CX&IL>:L&@I;:"I/:2@PO H!\61]-6&W MI[E^%/=0,* Y:0 P; ZFAMC^&#DT?.SCZ4%+.T&]HQU:-50V$)3>4I#@>'% M"HBGWZ^@S'>[.M1$(4X'="@- (8-P'GV+/(T$6FI'9K5509;:.I2L'04Q#5> M#+9J)VRAJ3REG2#PF@7$$_5$Q%BP8]:V!/IAE"+/U8N-2 - 8 ,@Q0866AAE M]&SL8YV!['0@S%L0=GL0^S 41!H*8MR&V&;NRHDP'W>O<)HPS%UO8#F%2 M M8 O04=V84@LCCYZA?:PY$&DYB'&O@EBU%+;05)[24A#C?@7I=R*PZP:]ZY^F M8>&[P9 2I0D@L FX+Z,X*B.A[=3"N:/G8!_K"D3:"F+F5A?FT@ -B&[G4038!*BB&U-I8>#1$[2/ M10K",.9#CSQ)/\!@/P"H#ZS#,.SH)Z+VL0#!I/5@QOT,9M5OV$)3 M>4J_P8S[&4S3SV#$ZZA0$^5Y[L ED$E_P&!_\"L1CJG+\%>-GK!]K%$P:4^8 M<=.#6?4?MM!4GCM/7AHW/5B_G8$X";I/[.G"*&,#R\U,.@8&.X;[-"H/ZJ?! MEV!5AE%&S\8^UB.8="3,N,7!K+H/6V@J3^D^F'&+@_6;%PQ1WKT7UH11G]&A MJBS] H/]@D9U<#6VND1A"TU]0%E:$F[<]N!678OEQZ1,X[!.&Y#>F#L-?,7JJ]K& P:5!X<8]$6[5;]A"4WE*O\&- M>R*\W^R@#*&N(C6=$X[X@""E/^"P/_@<_1#+@^L\6@BP#,,PHR=C+QLU=G9J MF&_5L+M78Q]V@TN[P8W;'[S?UZ#<];OK,IHP@KQ@Z#HH#0*'#8).=F =AO%& MS\L^%BVX-"'\8.U>VT-0S(IV)9]PQ\:P:#EMH*D]I.#SCCLDVO^I'DFPW4FX,R>VSV('_+RC)+FI=K$2Y%7@=4 MGS]D6?EZ4']!NXU]]C]02P,$% @ S92B6.73<&,8 @ 3P0 !D !X M;"]W;W)K&ULI53;;MLP#/T500.&#=@B1TG;+;,- MY-8TP')!TFW/BD/'0F7+DY2X_?M*LF-D0-J7O=BBR'-X2),.*ZF>= 9@T',N M"AWAS)AR0(A.,LB9[L@2"NM)IUVYKV3$-8RG^\+W)(OP-HSVD["C,1E8/T-1SX_@2*;1_ MHJJ.O>MCE!RUD7D#M@IR7M1O]MSTX0) @S< M %0K[M.Y%5.F&%QJ&2%E(NV M;.[@2_5H*XX7[J-LC;)>;G$FWDYGB^GR$0V7$S2;KF:;X?IA/A[^1//E_6JS M&#[.5TOT%9%/0RNJY\F8!@7^G-(C)7C2$G2I![5J>D;J1=, M=1#]_@71@/:1-LS OR3$UM(61-N"J&?M_4=!U[36K/WKK&XU!KID"438SKX& M=0(+X_Y#A22:=T%C7B!*MOK#$%AN'E!=@>5&JW@J>8TI"<+N60B_EPJV8[?^"%1@)2"PHZ=Q:MZO&M#2-+/S([:>P M^F-F-QZ4"[#^5$IS-MP4MO^0^!502P,$% @ S92B6/3AIQ/- P V1( M !D !X;"]W;W)K&ULO5AM;^(X$/XK5DXZW4F[ MS1N0T@,DH&RWTI8BVKO5?73#0*(F=LXVL"OMCS_;I GA3+2L?/L%8F?FR3Q/ M9LPP@SUEKSP!$.A+GA$^=!(ABAO7Y7$".>97M B[ZPIR[&02[9Q><$ K[13 MGKF!Y_7<'*?$&0WTWH*-!G0KLI3 @B&^S7/,ODX@H_NAXSMO&\MTDPBUX8X& M!=[ $X@_BP63*[="6:4Y$)Y2@ABLA\[8OYGZD7+0%G^EL.='UTA1>:'T52WN M5T/'4Q%!!K%0$%A^[6 *6::09!S_E*!.]4SE>'S]AOY!DY=D7C"'*96-+]1R@)=15>3#.N/]&^M/4<%&^YH'GI+"/(4W+XQE]*(8X< M)([9(2@=@E.'SAF'L'0(-=%#9)K6+19X-&!TCYBREFCJ0FNCO26;E*C7^"28 MO)M*/S%ZFMT]S.;/:#R_17>SQ[OE>/'Q?CK^A.[G'QZ7#^/G^\H^FE,1 M!,-:^V7*7]%OMR!PFO'?!ZZ0@2@X-RX?.CD\-#CST! ]4"(2CF9D!:NFORL) M5"R"-Q:3H!7P ;,K%/3?H< +.H9XIM_A'OK:/6P))ZQ$#35>YPS>$G9 MH#6 MC.9*.JE;+.2+%0F:ZE<*#$V Q(FLG%?TK=XTR/P-/=,"/0.IK+A)\-: U%EP MPPL M7A5O[R>F]B?*T9ALY*'.T2T4F GY"R$07://6$@G3%9H0?? 3"JT!GII#E@" M:V@:59I&%E(^LDG7$EB#[G5%]]I^RK="7LK^VE 9ON^;*Z-?T>I;K8P[H!N& MBR2-S;4QQ5DJVS228I,>K;%7BEVT)K2E(_-/\-IIUNF?RNV[$_/9.[#OR^QUZ M@HWN4/Z'%D?:S@BPS5>C-JVQ7YP=EM":2ME>1S#-VF*,<%H(6>A3Q0H4L&7V9 %X!4P;R M_II2\;90#ZBF6:-_ 5!+ P04 " #-E*)8S6<7&FD" "+!@ &0 'AL M+W=OS7);1/AV)GMM.S?[]I)0]E"!-)>$G_<<^XY-_9-M)7J06< ACP6 M7.B)EQE3GE*JDPP*IH]E"0)W5E(5S.!4K:DN%;#4@0I. ]\?TX+EPHLCM[90 M<20KPW,!"T5T511,_3X#+K<3;^#M%J[S=6;L HVCDJUA">:V7"B"*%A-O.G@=#:R\2[@+H>MWAL3Z^1>R@<[N4PGGF\% 8?$6 :&KPW,@'-+ MA#)^-9Q>F]("]\<[]@OG';W<,PTSR7_DJ/I+!B%3?7 M,5??*<4M:LZ-7K8C;8W]U27+(&)AU=3@]J %[]_-QC[7[JL_2>R M9T:'K=%A'WO\=[L!T^>TE>:O?FFSLR&R7VL0#;%H1W73X&+4^1KT^+D6" M35#C:4^A'AW9([YYG;W1/XJ>Y-2:>[._]1O1O?M>@%J[-JA)(BMAZJO?KK:= M=NH:#'T*K]LTWIMU+C3AL$*H?WR"0E7=^NJ)D:7K'O?28"]RPPS_%J!L .ZO MI#2[B4W0_G_B/U!+ P04 " #-E*)8[(5AET\" !#!0 &0 'AL+W=O M])#[[ON_N/OLN76OS:$L 1YXJJ>R8 MEL[5YXS9O(2*VQ-=@\*3A385=VB:);.U 5X$4"59'$4C5G&A:):&O:G)4MTX M*11,#;%-57'S? E2K\=T0#<;=V)9.K_!LK3F2YB!>ZBG!BW6LQ2B F6%5L3 M8DPO!N>3Q/L'AY\"UG9K37PE/GDGC^1 MJ;;"BVW)X17@KK1'WF=V10X/CL@!\6ZE;BQ7A4V9PW0\*OQN,HL^[)/E/9"\$2GJ!DM?8LV^"SX44[IG@\"!-_U(;*]MZXGZ\X.TO!3Y,"0O$1"=GIY28MF5;P^DZ MO/JY=MA#85GBE /C'?!\H;7;&+Z1^KF9_0-02P,$% @ S92B6"+(XO%> M @ KP4 !D !X;"]W;W)K&ULK53;Z[V7&E->^KY,,"Z9;LD1!-TNI"F;(5"M?EPI9ZD!% M[@?M=L\O&!=>'#G?G8HCN38Y%WBG0*^+@JD_0\SEMN]UO+WCGJ\R8QU^')5L MA3,T#^6=(LMO6%)>H-!<"E"X['N#SO6H:^-=P ^.6WUP!JMD(>6C-29IWVO; M@C#'Q%@&1I\-CC#/+1&5\;OF])J4%GAXWK/?.NVD9<$TCF3^DZOY ]A*H7)-(Q%BNESO$]:&D'!7M P M>)-PRE0+@JM/$+2#[I%Z1N^ AQT'#]\H)VS>-W1\X3O>]]CK5.CN<;0=X6M= ML@3['LVH1K5!+_[XH=-K?SDF[3^1/1/:;81VWV*/Z\XQU#FX[YQ%W3G'A%=L M/<=F5\TFOKKL1?[F4,^_,1?G3S%5F?Y![Q>H5FXE:$CD6IBJ:QIOLW4&;MA> M^(>TC:KE\413K3+JB147&G)<$F6[=4&SK*KU4!E&EF["%M+0O+IC1AL5E0V@ M^Z649F_8!,V.CO\"4$L#!!0 ( ,V4HEA;>$L!K0, /L, 9 >&PO M=V]R:W-H965T_O9!2=8!9\;C&<9[QM]$1(A$ MOY(X%1,CDC*[-TT11"3!XI9E)(4G:\83+.&6;TR1<8)#[93$IF-9GIE@FAK^ M6*\MN#]F6QG3E"PX$MLDP?SWE,1L/S%LX["PI)M(J@73'V=X0U9$OF0+#G=F MB1+2A*2"LA1QLIX8#_;]S':5@[;XEY*]J%PC)>65L3=U\Q1.#$LQ(C$)I(+ M\+,C,Q+'"@EX_%> &N4[E6/U^H#^MQ8/8EZQ(#,6_Z2AC";&G8%"LL;;6"[9 M_BLI! T47L!BH?^C?6%K&2C8"LF2PAD8)#3-?_&O(A 5!\!I=W *!^?4H7_& MP2T<=.3,G)F6]8@E]L><[1%7UH"F+G1LM#>HH:E*XTIR>$K!3_KSA^7ST_,_ M*[28+]'JZ\-RCGKSQ>H:W: 92[*MQ#K:O4U36Z0B82$>9$ M()JBEY1*\;FR\"-B6X'3$!:O:O=C4P)Q]7HS*$A.$[8OB?_K(]ZTN;O@N!U=3V M2[7]+G2M]JE0^^V;6KD!B6YP;OD:JF M#0_'! W:2.90@VZ23:.S)+V2I/>_288TWLK3XLAI>A^)9=/H+,UA27/8N:U_ MZC.4A#=X1SCTA,/A -U$2#@):+JY;^,[O.1.OQ!8+0!W90#N.O/4" "D+('3 MM!D'U*.'Y=9RN&ML(MOUK,%)#MNL',]KS^*H%#'J%#%?KZ'E(K;.MQ@T701= M*7A#+%.M02!0 U=2$X#T%H\Q'O,0_&>K%&#L-L0U;1QK'Z[)-LZ=CWK0IFY M*0KK/2G%"^O!']G6B9I6L_[0.B.HTL;MSEJ;8YX"6U$G.4;K3FD(6QYB+H_CV3.5PPTH*K%OG]#QLM;*&5NW//I.V M8^.W.SNM_UC97!]D[[:QMT_9MUF]Q]ZLC)$)X1L]70LHC6TJ\]FJ7"TG^ <] MMYZL3]5DK\?3(TS^60"3TX;"F1&3-4!:MT,H!)Y/VOF-9)D>5E^9A-%77T;P M=4*X,H#G:\;DX4:]H/S>\?\ 4$L#!!0 ( ,V4HEA?V&_:H ( /@& 9 M >&PO=V]R:W-H965T)8% MHH*7JF1RZA1*U3>N*Y,"*R(O>8U,GV1<5$3IIM[WI5;$.'\VB_MTZGA&$):8*,- ]+#! M!9:E(=(R_G2<3O]* ]R?[]B_6>_:RQ.1N.#E;YJJ8NI\=B#%C#2E6O/M'79^ MK,"$E](^8=O%>@XDC52\ZL!:0459.Y*7+@][ ,TS#/ [@/\6,#X""#I 8(VV MRJRM6Z)(% J^!6&B-9N9V-Q8M'9#F?F*L1+ZE&J/]X_<85LLUQ'>S M]1+.EJOX'"Y@QA1-:=F8/$.,22.HHBCA[!85H:4T,;(@0F]U V7PH^"-)"R5 MH:NT//,2-^FDS%LI_A$I 3QPI@H)2Y9B>HAWM:W>F[_S-O=/$CX0<0G^ET_@ M>_YX0,_B/^#!R,*#$W*"/M6!Y1L?X8M-DB[F^LZEL"*ONA04S(0@+$R)@E.'5W!$L4&G>CCA]&5]W7([3N1'7@?]]['ECTXXOW@+LG^+@UY M'K^GYWO-_ERW];8+_Z-I_PFZHG+*))28:4KO\EHK$FV?;1>*U[95 M/7&E&Y^=%OK7A,($Z/.,<[5;F!?T/[OH+U!+ P04 " #-E*)8';+Y54D" M ">!0 &0 'AL+W=O3',1J8F>V0]I_/]L)*>T 3=.^$-_YWKM[ MA^^B1L@'E0-H]%@67,4XU[J:$*+2'$JJ!J(";F[60I94&U-NB*HDT,R!RH+X MGC[8@*"#5 MEH&:SQ9F4!26R)3QJ^/$?4H+W#_OV*^==J-E117,1/&393J/\4>,,EC3NM!W MHOD"G9Z1Y4M%H=PO:MK8T0BCM%9:E!W85% RWG[I8]>'/<#P&,#O /YK0'@$ M$'2 P EM*W.RYE33))*B0=)&&S9[<+UQ:*.&Q$\!31G*BV$JB6@]^A^.4?G9Q?H##&.ON>B5I1G*B+:Y+8,).WR3-L\_I$\ M ;H57.<*?>899"_QQ-3<%^[O"I_Z)PEOJ1P@__(=\CT_/%#/["_@P=#!@Q/E M!'T? \<7_$L?#[6KI0L/T]G9G:B*IA!C,YP*Y!9P\O;-<.Q].J3U/Y&]4![V MRL-3[,DWLVIN>"I*0.=?A5(7A]2V%&-'81?+-O$O0S\BVWT5?P9=!L\Q;7%D M[ZF7(#=N RB4BIKK]O'TWG[)7+G9>N6?FN73[HIGFG9SF:>Q85RA M:&TAM\ M,*,KVVW0&EI4;J!60IOQ=,?<+%"0-L#&UL M?93;CILP$(9?Q7*E7FT#(=FT30$IV;;J7JP497NX=O UAJ;VB;LOGW'AM"T MRN8&?)C_\S]FAK37YLG6 (X\-U+9C-;.M>LHLD4-#;,SW8+"G5*;ACFZ?C$_UKR!US.3 +=UK^$MS5&?U M"8>2==+M=?\-QGQN/:_0TH8GZ8?8Q8J2HK-.-Z,8'31"#6_V/-[#F0 YEP7) M*$B"[^&@X/(SZ)\=%(\X.0:E"C.:'\1WET!G<%ZEQ^C]?+P9#OAG&A M*K(QAJD*\-J=32.')_BXJ!AIVX&6O$);D >M7&W)%\6!_ZN/T-ED+SG9VR97 M@0_,S$CR\88D<;*\PEM,Z2X";_$*[U*:-^3P0NX5%T?!.R8O93U EY>AOF_6 MMF4%9!0;PX(Y LW?OIFOXD]7+"\GR\MK]'S?22#S^'#[;GYNFVRX;MW_ESS8 MO0XLF;1PR5AT5D8-F"HTBR6%[I0;*FI:G?IQ,Y3AW_"AF?&[54)9(J%$:3Q[ MC]5LA@89)DZWH2@/VF&)AV&-_Q0P/@#W2ZW=:>(/F/Y2^1]02P,$% @ MS92B6*J2_4(I P 1A( T !X;"]S='EL97,N>&ULW5A=:]LP%/TK1EU' M"Z-.XL6-UR2P!0J#;13:A[T5)983@2QYLM(E^_73E1SGH[JEZ\/6S"&U=(_. MN4?2=64RK,U:L-L%8R9:E4+6([(PIOH0Q_5LP4I:7ZB*28L42I?4V*Z>QW6E M&M'!=2V&2:?[TF[XJ17R MQ%.,=AF@V2Q;)G0P\N!9TWEB-DXX;C9D/"R4W.Y+0GS 9J8EBQZH&)$)%7RJ M.; *6G*Q]N$>!&9**!T96Q#62AVXP2[X"(J:]MVZL@[GFJZ[O3[9$MS-)IDJG3/= MINF236@\%*P .YK/%W WJHH!-$:5MI%S.E>2.@\;1M.PLC,FQ"T\2-^+/>U5 ML;.G'=A1V3:MH:;I97P']'?5O/:N[,MTHXH_*/-I::T@TO6BC-?]EL4"HS&V":1 ],&S[;C?S4 MM+IC*[,IIU6!>^X=H>>_N\YS)IFF8M>TK?W7O,HO=IQ<_BO+[K_*H>&@Q^9T M?.TF^\=@,CT&DT=1DX-7:3)NSL:= WCO^&VC$;SFC,@W>*$2VZ31=,F%X;+I M+7B>,_GH%+;RAD[M2_*>OAV?LX(NA;EKP1'9MK^RG"_+K!UU PO1C-JVO\#T MNFG[CF5S<9FS%!D%D@'(&*,>S0LC$?; \84YFK_!,LRQ)TA1;TLAGD#!I8',OW96N.[C5?(TW6 [>E3%8+-%*]$;*;X6@,27C=@9%EXM[$\ MP,!V :L=R!_. S45YB0)["KF#7N"<23+, 1J,5RC:8JL3@J?\/Y@3TF29%D8 M 2SL($DP!)Y&',$<@ <,21)W#AZ<1_'FG(JWOQR-?P-02P,$% @ S92B M6)>*NQS $P( L !?3T\$MP>:4#M.*2VBZD8_1!2:5K5 MN %(MB6/:(7->=I3W; M+T]!;X"O.DQQ0FE(2S,.\,W2?S+W\PPU1>5*(Y5;&GC3Y?YVX$G1H2)8%II% MR=.B':5_'A2\FMG=%TI!0,C403-@EHM2\KE[BM-2%!=F@[\^O'"5/VI,L> M[[V5E;WR M4.N-:.RA?AR:K9:B,$]2-IMRZ%QW9RWT$![4C5PWJJ[LR?;$ M2LD7\\_U]I ]*Z/N5:F:[]>#;K^4 [91E=JH'[*X'EP,F'FJ7VYKK7[452/* M;*WKLKP>C/875E(W:OVOTUD+F8M[TYUIQ'TJ+,CU(+BP#WQ0VC3='=WSA65\ MEO;F_=&NJ:>J;*2>B$;.=+W;JNJQ?8Q]BR%XC2X.;]M]$#_K_Q/&^N%!K>6D M7N\VLFKV<=2R; $K\Z2V9L JL9'7@[=;F*@*QJO&!HE%U?Y1]M[V3>U?1\7^ MK1N+"V*H/RM[04=%!TX'.4[B"8\S/F%V+TOFT23,[<%-. _C,6< TD$@G1-" M_NT 2!>!=$\"F>5V<\=C .DAD-X)(7N1]!%(_Y20+H ,$,B %C))9V$<_17F M41*S,)ZP9,'3[BACR11^.)<(Y"4M9,K'/,Y9.!XGRSB/XAE;I$EL]\=ME44-N>+QDF> YA-"\XF6)ELN%O,N.N&<3:/8MC"1W3OR&8\NL&;[@A9S MPM-H9:O;B@/(*,[R=/FN9$>H78CU,N$W.4MNYM%L_VE +DPH(V*CS'F8]6K< M"#/'B%P==W=1WI9;UC4EJS"-PILYMP6:\Y1#3,P=(V)Y9'QVUS4G%G'&DUD: M+FZC<5?OIDEZ!S$Q>XR(]1'%-IZ&?_1+&9#$BM@4/T]@VOQFSDF#9;9AR M=L87V6^0#_/$B%@45K2M'KAM1_I!P[PP(A9#MKS)^!_+MLJUBLA[8)@B1L2. M0-W?ZT4YF",<8D>\B96=V>RHE ;6-@>S@D-L!=2Q_?BA60>Q)%#']C$Q>SC$ M]GCOV*/%C7G#(?;&7K9'L3!/.,2>0'76+UY,' M9B&/V$('S+ HNH^[7^X0$[.01VRA V;:ID'ORQP.)_B8A7QB"QTPL]UV6\KV M;AO/L3!/;%K6+Q 3LY!/;*$#9K*U'WJCJL?]QV3LJ3O10$S,0OZ'3- VFC\[[DT_\(_-@_=4) MF(5\8@OAF+#W[F,6\JES(71\LX>)6:@@-A!4654(37+M2C:'G&HM:@>NU0#]N$N,0%==@(:=C>;KU\* M^: J6<3V^<:>7XMRO="LW>S7:'E^N]+B85>68WLNJ>:U*-Y64[^M!/_Z$U!+ M P04 " #-E*)8VW:P<3$" ")*0 &@ 'AL+U]R96QS+W=O#Z>RJG;CV/^JZ[+>Y6-; M[KH^G\Y'-MUP;,?SYEN4RZN%V1O7T>#MS\?K5Y_^9V&TV^W7^ MW:W_'/-I_,?@^J,;WLLNY[%:O+;#-H^KJOX\7'>7^K))=^?)U>+Y;54-SV^I MJN<.$@B2^8,4@G3^((,@FS_(((.AA_J"T M1!F7!$D3K FT3LAU(O Z(=B)0.R$9"<"LQ.BG0C43LAV(G [(=R)0.Z$="<" MNQ/BG0CT%M1;"/06U%L(]);)PS:!WH)Z"X'>@GH+@=Z">@N!WH)Z"X'>@GH+ M@=Z">@N!WH)Z"X'>BGHK@=Z*>BN!WHIZ*X'>.GE90J"WHMY*H+>BWDJ@MZ+> M2J"WHMY*H+>BWDJ@MZ+>2J"WH=Y&H+>AWD:@MZ'>1J"WH=Y&H+=-7G83Z&VH MMQ'H;:BW$>AMJ+<1Z&VHMQ'H;:BW$>CMJ+<3Z.VHMQ/H[:BW$^CMJ+<3Z.VH MMQ/H[9./E01Z.^KM!'H[ZNT$>COJ[01Z.^KM!'H'ZAT$>@?J'01Z!^H=!'H' MZAT$>@?J'01Z!^H=!'K'Y&<3 KT#]0X"O0/U#@*] _4. KT;U+OY2;W+^'7( MY=KSO<;K_R35X_G7M+2;-DVNMOGGV+A^7@1J8S&YV&T$ M,I\<]\15X^-1WE"P+Q.&E>\#7L_=/%((34V36QO2M>WR+K9M64S/+<5R?XDO M>G3+95-1[:I-EX^4T0>R=5P1I:XM=T6/]B>G?,.T^^0'YX]E]@7FG;?!^9@G M%NCW<6\C&4Y/?2Y$(37[7_$],9<^^/UHF'9-]0^S\_4^N; >YQ'9^#C\CC_. M^+W^+_L0('U(D#X42!\:I \#TL&PO=&AE;64O M=&AE;64Q+GAM;%!+ 0(4 Q0 ( ,V4HEA3^"_#^@4 -8? 8 M " @0X( !X;"]W;W)K&PO=V]R:W-H M965T&UL4$L! A0#% @ S92B6!1#7YIZ P &@T !@ M ("!?A4 'AL+W=O&PO=V]R:W-H965T&UL M4$L! A0#% @ S92B6'44')X3" N", !@ ("!6"< M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ S92B M6'8;.WVR% K4 !@ ("!4SP 'AL+W=O&UL4$L! A0#% M @ S92B6*1/]<$_!0 +@\ !D ("!^U@ 'AL+W=O[HX) ])0 &0 M@(%<=0 >&PO=V]R:W-H965T&UL4$L! A0#% @ S92B6%CE:\H+! O H !D M ("!X(8 'AL+W=O&PO=V]R M:W-H965T&UL M4$L! A0#% @ S92B6#C=ZSE8" C!< !D ("!R), M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ MS92B6"HH=$2B P E@H !D ("!A:4 'AL+W=O&PO=V]R:W-H965T$4\70( +@% 9 " @<:\ !X;"]W;W)K&UL4$L! A0#% @ S92B6,+5(1$5! 32$ !D M ("!6K\ 'AL+W=O%J'%S\" "6!0 &0 @(&FPP >&PO=V]R:W-H M965T&UL4$L! M A0#% @ S92B6, 0)&8: P 90L !D ("!A&PO=V]R:W-H965T&UL4$L! A0#% @ S92B M6-G.W[T( P *@D !D ("![=0 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ S92B6,=*V*J P HA( M !D ("!J=\ 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ S92B6+WI?TC8 @ 0D !D M ("!@>D 'AL+W=O,# !(#P &0 @(&0[ >&PO=V]R:W-H965T M&UL4$L! A0# M% @ S92B6"0'K+EW @ 308 !D ("!]?, 'AL+W=O M&PO=V]R:W-H965T&UL4$L! A0#% @ S92B6*74 MP0T. P E H !D ("!)?P 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ S92B6#]P GA" @ A04 !D M ("!0@8! 'AL+W=OB_L" [" &0 @(&[" $ >&PO M=V]R:W-H965TT+ 0!X;"]W;W)K&UL4$L! A0#% @ S92B6 ,0>4^W @ [0< !D ("! MJPX! 'AL+W=O&PO=V]R:W-H965T&OIJ@( .T' 9 M " @3@4 0!X;"]W;W)K&UL4$L! A0#% M @ S92B6+V9H&3F P D \ !D ("!&1&PO=V]R:W-H965T&UL4$L! A0#% @ S92B6(H0*FBD M!0 *AX !D ("!9B ! 'AL+W=O\&PO=V]R:W-H965T&UL4$L! A0#% @ S92B6.73<&,8 @ 3P0 !D M ("!%S(! 'AL+W=O&PO=V]R M:W-H965T&UL M4$L! A0#% @ S92B6.R%89=/ @ 0P4 !D ("!"CL! M 'AL+W=O&PO=V]R:W-H965T$L!K0, /L, 9 M " @25 0!X;"]W;W)K&UL4$L! A0#% @ MS92B6%_8;]J@ @ ^ 8 !D ("!"40! 'AL+W=O!0 &0 M @('@1@$ >&PO=V]R:W-H965T&UL4$L! A0#% @ S92B6*J2_4(I P M1A( T ( !J4L! 'AL+W-T>6QE&PO=V]R:V)O;VLN>&UL4$L! A0#% @ S92B6-MVL'$Q @ B2D M !H ( !ME4! 'AL+U]R96QS+W=O XML 82 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 83 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 85 FilingSummary.xml IDEA: XBRL DOCUMENT 3.24.1.u1 html 160 275 1 false 47 0 false 8 false false R1.htm 00090 - Document - Document and Entity Information Sheet http://www.willdan.com/role/DocumentDocumentAndEntityInformation Document and Entity Information Cover 1 false false R2.htm 00100 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS Sheet http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets CONDENSED CONSOLIDATED BALANCE SHEETS Statements 2 false false R3.htm 00105 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical) Sheet http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical) Statements 3 false false R4.htm 00200 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME Sheet http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME Statements 4 false false R5.htm 00300 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY Sheet http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY Statements 5 false false R6.htm 00400 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS Sheet http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS Statements 6 false false R7.htm 10101 - Disclosure - ORGANIZATION AND OPERATIONS OF THE COMPANY Sheet http://www.willdan.com/role/DisclosureOrganizationAndOperationsOfCompany ORGANIZATION AND OPERATIONS OF THE COMPANY Notes 7 false false R8.htm 10201 - Disclosure - RECENT ACCOUNTING PRONOUNCEMENTS Sheet http://www.willdan.com/role/DisclosureRecentAccountingPronouncements RECENT ACCOUNTING PRONOUNCEMENTS Notes 8 false false R9.htm 10301 - Disclosure - REVENUES Sheet http://www.willdan.com/role/DisclosureRevenues REVENUES Notes 9 false false R10.htm 10401 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA Sheet http://www.willdan.com/role/DisclosureSupplementalFinancialStatementData SUPPLEMENTAL FINANCIAL STATEMENT DATA Notes 10 false false R11.htm 10501 - Disclosure - DERIVATIVE FINANCIAL INSTRUMENTS Sheet http://www.willdan.com/role/DisclosureDerivativeFinancialInstruments DERIVATIVE FINANCIAL INSTRUMENTS Notes 11 false false R12.htm 10601 - Disclosure - DEBT OBLIGATIONS Sheet http://www.willdan.com/role/DisclosureDebtObligations DEBT OBLIGATIONS Notes 12 false false R13.htm 10701 - Disclosure - LEASES Sheet http://www.willdan.com/role/DisclosureLeases LEASES Notes 13 false false R14.htm 10801 - Disclosure - COMMITMENTS AND VARIABLE INTEREST ENTITIES Sheet http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntities COMMITMENTS AND VARIABLE INTEREST ENTITIES Notes 14 false false R15.htm 10901 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION Sheet http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformation SEGMENT AND GEOGRAPHICAL INFORMATION Notes 15 false false R16.htm 11001 - Disclosure - INCOME TAXES Sheet http://www.willdan.com/role/DisclosureIncomeTaxes INCOME TAXES Notes 16 false false R17.htm 11101 - Disclosure - EARNINGS PER SHARE (EPS) Sheet http://www.willdan.com/role/DisclosureEarningsPerShareEps EARNINGS PER SHARE (EPS) Notes 17 false false R18.htm 11201 - Disclosure - CONTINGENCIES Sheet http://www.willdan.com/role/DisclosureContingencies CONTINGENCIES Notes 18 false false R19.htm 11301 - Disclosure - SUBSEQUENT EVENTS Sheet http://www.willdan.com/role/DisclosureSubsequentEvents SUBSEQUENT EVENTS Notes 19 false false R20.htm 20102 - Disclosure - ORGANIZATION AND OPERATIONS OF THE COMPANY (Policies) Sheet http://www.willdan.com/role/DisclosureOrganizationAndOperationsOfCompanyPolicies ORGANIZATION AND OPERATIONS OF THE COMPANY (Policies) Policies 20 false false R21.htm 30303 - Disclosure - REVENUES (Tables) Sheet http://www.willdan.com/role/DisclosureRevenuesTables REVENUES (Tables) Tables http://www.willdan.com/role/DisclosureRevenues 21 false false R22.htm 30403 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA (Tables) Sheet http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataTables SUPPLEMENTAL FINANCIAL STATEMENT DATA (Tables) Tables http://www.willdan.com/role/DisclosureSupplementalFinancialStatementData 22 false false R23.htm 30503 - Disclosure - DERIVATIVE FINANCIAL INSTRUMENTS (Tables) Sheet http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsTables DERIVATIVE FINANCIAL INSTRUMENTS (Tables) Tables http://www.willdan.com/role/DisclosureDerivativeFinancialInstruments 23 false false R24.htm 30603 - Disclosure - DEBT OBLIGATIONS (Tables) Sheet http://www.willdan.com/role/DisclosureDebtObligationsTables DEBT OBLIGATIONS (Tables) Tables http://www.willdan.com/role/DisclosureDebtObligations 24 false false R25.htm 30703 - Disclosure - LEASES (Tables) Sheet http://www.willdan.com/role/DisclosureLeasesTables LEASES (Tables) Tables http://www.willdan.com/role/DisclosureLeases 25 false false R26.htm 30903 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION (Tables) Sheet http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationTables SEGMENT AND GEOGRAPHICAL INFORMATION (Tables) Tables http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformation 26 false false R27.htm 31103 - Disclosure - EARNINGS PER SHARE (EPS) (Tables) Sheet http://www.willdan.com/role/DisclosureEarningsPerShareEpsTables EARNINGS PER SHARE (EPS) (Tables) Tables http://www.willdan.com/role/DisclosureEarningsPerShareEps 27 false false R28.htm 40101 - Disclosure - ORGANIZATION AND OPERATIONS OF THE COMPANY - Segment Information (Details) Sheet http://www.willdan.com/role/DisclosureOrganizationAndOperationsOfCompanySegmentInformationDetails ORGANIZATION AND OPERATIONS OF THE COMPANY - Segment Information (Details) Details 28 false false R29.htm 40102 - Disclosure - ORGANIZATION AND OPERATIONS OF THE COMPANY - Fiscal Years (Details) Sheet http://www.willdan.com/role/DisclosureOrganizationAndOperationsOfCompanyFiscalYearsDetails ORGANIZATION AND OPERATIONS OF THE COMPANY - Fiscal Years (Details) Details 29 false false R30.htm 40301 - Disclosure - REVENUES - Segment Information (Details) Sheet http://www.willdan.com/role/DisclosureRevenuesSegmentInformationDetails REVENUES - Segment Information (Details) Details 30 false false R31.htm 40302 - Disclosure - REVENUES - General Information (Details) Sheet http://www.willdan.com/role/DisclosureRevenuesGeneralInformationDetails REVENUES - General Information (Details) Details 31 false false R32.htm 40401 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA - Restricted Cash (Details) Sheet http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataRestrictedCashDetails SUPPLEMENTAL FINANCIAL STATEMENT DATA - Restricted Cash (Details) Details 32 false false R33.htm 40402 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA - Equipment and Leasehold Improvements, Net - Tabular Disclosure (Details) Sheet http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetTabularDisclosureDetails SUPPLEMENTAL FINANCIAL STATEMENT DATA - Equipment and Leasehold Improvements, Net - Tabular Disclosure (Details) Details 33 false false R34.htm 40403 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA - Equipment and Leasehold Improvements, Net - Depreciation and Amortization Expense (Details) Sheet http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetDepreciationAndAmortizationExpenseDetails SUPPLEMENTAL FINANCIAL STATEMENT DATA - Equipment and Leasehold Improvements, Net - Depreciation and Amortization Expense (Details) Details 34 false false R35.htm 40404 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA - Accrued Liabilities (Details) Sheet http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataAccruedLiabilitiesDetails SUPPLEMENTAL FINANCIAL STATEMENT DATA - Accrued Liabilities (Details) Details 35 false false R36.htm 40405 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA - Goodwill (Details) Sheet http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataGoodwillDetails SUPPLEMENTAL FINANCIAL STATEMENT DATA - Goodwill (Details) Details 36 false false R37.htm 40406 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA - Finite-lived Intangible Assets - Gross Amounts and Accumulated Amortization (Details) Sheet http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsGrossAmountsAndAccumulatedAmortizationDetails SUPPLEMENTAL FINANCIAL STATEMENT DATA - Finite-lived Intangible Assets - Gross Amounts and Accumulated Amortization (Details) Details 37 false false R38.htm 40407 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA - Finite-lived Intangible Assets - Amortization Period (Details) Sheet http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsAmortizationPeriodDetails SUPPLEMENTAL FINANCIAL STATEMENT DATA - Finite-lived Intangible Assets - Amortization Period (Details) Details 38 false false R39.htm 40501 - Disclosure - DERIVATIVE FINANCIAL INSTRUMENTS - General Information (Details) Sheet http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsGeneralInformationDetails DERIVATIVE FINANCIAL INSTRUMENTS - General Information (Details) Details 39 false false R40.htm 40502 - Disclosure - DERIVATIVE FINANCIAL INSTRUMENTS - Cash Flow Hedge Effectiveness (Details) Sheet http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsCashFlowHedgeEffectivenessDetails DERIVATIVE FINANCIAL INSTRUMENTS - Cash Flow Hedge Effectiveness (Details) Details 40 false false R41.htm 40503 - Disclosure - DERIVATIVE FINANCIAL INSTRUMENTS - Fair Value (Details) Sheet http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsFairValueDetails DERIVATIVE FINANCIAL INSTRUMENTS - Fair Value (Details) Details 41 false false R42.htm 40504 - Disclosure - DERIVATIVE FINANCIAL INSTRUMENTS - Accumulated Other Comprehensive Income (Loss) (Details) Sheet http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsAccumulatedOtherComprehensiveIncomeLossDetails DERIVATIVE FINANCIAL INSTRUMENTS - Accumulated Other Comprehensive Income (Loss) (Details) Details 42 false false R43.htm 40601 - Disclosure - DEBT OBLIGATIONS - Composition (Details) Sheet http://www.willdan.com/role/DisclosureDebtObligationsCompositionDetails DEBT OBLIGATIONS - Composition (Details) Details 43 false false R44.htm 40602 - Disclosure - DEBT OBLIGATIONS - Classification (Details) Sheet http://www.willdan.com/role/DisclosureDebtObligationsClassificationDetails DEBT OBLIGATIONS - Classification (Details) Details 44 false false R45.htm 40603 - Disclosure - DEBT OBLIGATIONS - New Credit Facilities (Details) Sheet http://www.willdan.com/role/DisclosureDebtObligationsNewCreditFacilitiesDetails DEBT OBLIGATIONS - New Credit Facilities (Details) Details 45 false false R46.htm 40701 - Disclosure - LEASES - General Information (Details) Sheet http://www.willdan.com/role/DisclosureLeasesGeneralInformationDetails LEASES - General Information (Details) Details 46 false false R47.htm 40702 - Disclosure - LEASES - Lease Expense (Details) Sheet http://www.willdan.com/role/DisclosureLeasesLeaseExpenseDetails LEASES - Lease Expense (Details) Details 47 false false R48.htm 40703 - Disclosure - LEASES - Consolidated Balance Sheet (Details) Sheet http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails LEASES - Consolidated Balance Sheet (Details) Details 48 false false R49.htm 40704 - Disclosure - LEASES - Additional Information (Details) Sheet http://www.willdan.com/role/DisclosureLeasesAdditionalInformationDetails LEASES - Additional Information (Details) Details 49 false false R50.htm 40705 - Disclosure - LEASES - Rent Expense (Details) Sheet http://www.willdan.com/role/DisclosureLeasesRentExpenseDetails LEASES - Rent Expense (Details) Details 50 false false R51.htm 40706 - Disclosure - LEASES - Supplemental Cash Flow Information (Details) Sheet http://www.willdan.com/role/DisclosureLeasesSupplementalCashFlowInformationDetails LEASES - Supplemental Cash Flow Information (Details) Details 51 false false R52.htm 40707 - Disclosure - LEASES - Operating Leases - Maturities of Lease Liabilities (Details) Sheet http://www.willdan.com/role/DisclosureLeasesOperatingLeasesMaturitiesOfLeaseLiabilitiesDetails LEASES - Operating Leases - Maturities of Lease Liabilities (Details) Details 52 false false R53.htm 40708 - Disclosure - LEASES - Operating Leases - Gross Difference (Details) Sheet http://www.willdan.com/role/DisclosureLeasesOperatingLeasesGrossDifferenceDetails LEASES - Operating Leases - Gross Difference (Details) Details 53 false false R54.htm 40709 - Disclosure - LEASES - Finance Leases - Maturities of Lease Liabilities (Details) Sheet http://www.willdan.com/role/DisclosureLeasesFinanceLeasesMaturitiesOfLeaseLiabilitiesDetails LEASES - Finance Leases - Maturities of Lease Liabilities (Details) Details 54 false false R55.htm 40710 - Disclosure - LEASES - Finance Leases - Gross Difference (Details) Sheet http://www.willdan.com/role/DisclosureLeasesFinanceLeasesGrossDifferenceDetails LEASES - Finance Leases - Gross Difference (Details) Details 55 false false R56.htm 40801 - Disclosure - COMMITMENTS AND VARIABLE INTEREST ENTITIES - Employee Benefit Plans (Details) Sheet http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntitiesEmployeeBenefitPlansDetails COMMITMENTS AND VARIABLE INTEREST ENTITIES - Employee Benefit Plans (Details) Details 56 false false R57.htm 40802 - Disclosure - COMMITMENTS AND VARIABLE INTEREST ENTITIES - Variable Interest Entities (Details) Sheet http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntitiesVariableInterestEntitiesDetails COMMITMENTS AND VARIABLE INTEREST ENTITIES - Variable Interest Entities (Details) Details 57 false false R58.htm 40901 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION - Segment Information (Details) Sheet http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationSegmentInformationDetails SEGMENT AND GEOGRAPHICAL INFORMATION - Segment Information (Details) Details 58 false false R59.htm 40902 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION - Statement of Operations (Details) Sheet http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationStatementOfOperationsDetails SEGMENT AND GEOGRAPHICAL INFORMATION - Statement of Operations (Details) Details 59 false false R60.htm 40903 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION - Segment Assets (Details) Sheet http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationSegmentAssetsDetails SEGMENT AND GEOGRAPHICAL INFORMATION - Segment Assets (Details) Details 60 false false R61.htm 40904 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION - Disaggregation of Revenue (Details) Sheet http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationDisaggregationOfRevenueDetails SEGMENT AND GEOGRAPHICAL INFORMATION - Disaggregation of Revenue (Details) Details 61 false false R62.htm 40905 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION - Geographical Information (Details) Sheet http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationGeographicalInformationDetails SEGMENT AND GEOGRAPHICAL INFORMATION - Geographical Information (Details) Details 62 false false R63.htm 40906 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION - Concentration Risk (Details) Sheet http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails SEGMENT AND GEOGRAPHICAL INFORMATION - Concentration Risk (Details) Details 63 false false R64.htm 41001 - Disclosure - INCOME TAXES - Valuation Allowance (Details) Sheet http://www.willdan.com/role/DisclosureIncomeTaxesValuationAllowanceDetails INCOME TAXES - Valuation Allowance (Details) Details 64 false false R65.htm 41002 - Disclosure - INCOME TAXES - Uncertain Tax Positions (Details) Sheet http://www.willdan.com/role/DisclosureIncomeTaxesUncertainTaxPositionsDetails INCOME TAXES - Uncertain Tax Positions (Details) Details 65 false false R66.htm 41003 - Disclosure - INCOME TAXES - Income Tax Expense (Benefit) (Details) Sheet http://www.willdan.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails INCOME TAXES - Income Tax Expense (Benefit) (Details) Details 66 false false R67.htm 41101 - Disclosure - EARNINGS PER SHARE (EPS) - Computation (Details) Sheet http://www.willdan.com/role/DisclosureEarningsPerShareEpsComputationDetails EARNINGS PER SHARE (EPS) - Computation (Details) Details http://www.willdan.com/role/DisclosureEarningsPerShareEpsTables 67 false false R68.htm 41102 - Disclosure - EARNINGS PER SHARE (EPS) - Antidilutive Securities (Details) Sheet http://www.willdan.com/role/DisclosureEarningsPerShareEpsAntidilutiveSecuritiesDetails EARNINGS PER SHARE (EPS) - Antidilutive Securities (Details) Details http://www.willdan.com/role/DisclosureEarningsPerShareEpsTables 68 false false R69.htm 995410 - Disclosure - Pay vs Performance Disclosure Sheet http://xbrl.sec.gov/ecd/role/PvpDisclosure Pay vs Performance Disclosure Uncategorized 69 false false R70.htm 995445 - Disclosure - Insider Trading Arrangements Sheet http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements Insider Trading Arrangements Cover 70 false false All Reports Book All Reports [ix-0514-Hidden-Fact-Eligible-For-Transform] WARN: 1 fact(s) appearing in ix:hidden were eligible for transformation: us-gaap:LesseeOperatingLeaseRemainingLeaseTerm - wldn-20240329x10q.htm 9 [ix-0514-Hidden-Fact-Not-Referenced] WARN: 6 fact(s) appearing in ix:hidden were not referenced by any -sec-ix-hidden style property: us-gaap:CommitmentsAndContingencies, us-gaap:DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration, us-gaap:DerivativeLiabilityNoncurrentStatementOfFinancialPositionExtensibleEnumeration, us-gaap:FinanceLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList, us-gaap:RestrictedCashAssetStatementOfFinancialPositionExtensibleList - wldn-20240329x10q.htm 9 [dq-0712-Presentation-Base-Set-Order] Role '41102 - Disclosure - EARNINGS PER SHARE (EPS) - Antidilutive Securities (Details)', a level 4, Detail role, appears before '995410 - Disclosure - Pay vs Performance Disclosure', a level 1, Note role. https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd 30, wldn-20240329.xsd 339 wldn-20240329.xsd wldn-20240329_cal.xml wldn-20240329_def.xml wldn-20240329_lab.xml wldn-20240329_pre.xml wldn-20240329x10q.htm http://fasb.org/us-gaap/2023 http://xbrl.sec.gov/dei/2023 http://xbrl.sec.gov/ecd/2023 true true JSON 88 MetaLinks.json IDEA: XBRL DOCUMENT { "version": "2.2", "instance": { "wldn-20240329x10q.htm": { "nsprefix": "wldn", "nsuri": "http://www.willdan.com/20240329", "dts": { "schema": { "local": [ "wldn-20240329.xsd" ], "remote": [ "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd", "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd", "http://www.xbrl.org/2003/xl-2003-12-31.xsd", "http://www.xbrl.org/2003/xlink-2003-12-31.xsd", "http://www.xbrl.org/2005/xbrldt-2005.xsd", "http://www.xbrl.org/2006/ref-2006-02-27.xsd", "http://www.xbrl.org/lrr/arcrole/esma-arcrole-2018-11-21.xsd", "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/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/2022-03-31/types.xsd", "https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd", "https://xbrl.fasb.org/srt/2023/elts/srt-roles-2023.xsd", "https://xbrl.fasb.org/srt/2023/elts/srt-types-2023.xsd", "https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd", "https://xbrl.fasb.org/us-gaap/2023/elts/us-roles-2023.xsd", "https://xbrl.fasb.org/us-gaap/2023/elts/us-types-2023.xsd", "https://xbrl.sec.gov/country/2023/country-2023.xsd", "https://xbrl.sec.gov/dei/2023/dei-2023.xsd", "https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd", "https://xbrl.sec.gov/ecd/2023/ecd-sub-2023.xsd", "https://xbrl.sec.gov/stpr/2023/stpr-2023.xsd" ] }, "calculationLink": { "local": [ "wldn-20240329_cal.xml" ] }, "definitionLink": { "local": [ "wldn-20240329_def.xml" ] }, "labelLink": { "local": [ "wldn-20240329_lab.xml" ] }, "presentationLink": { "local": [ "wldn-20240329_pre.xml" ] }, "inline": { "local": [ "wldn-20240329x10q.htm" ] } }, "keyStandard": 248, "keyCustom": 27, "axisStandard": 18, "axisCustom": 0, "memberStandard": 32, "memberCustom": 15, "hidden": { "total": 17, "http://fasb.org/us-gaap/2023": 14, "http://xbrl.sec.gov/dei/2023": 3 }, "contextCount": 160, "entityCount": 1, "segmentCount": 47, "elementCount": 550, "unitCount": 8, "baseTaxonomies": { "http://fasb.org/us-gaap/2023": 638, "http://xbrl.sec.gov/dei/2023": 30, "http://xbrl.sec.gov/ecd/2023": 1 }, "report": { "R1": { "role": "http://www.willdan.com/role/DocumentDocumentAndEntityInformation", "longName": "00090 - Document - Document and Entity Information", "shortName": "Document and Entity Information", "isDefault": "true", "groupType": "document", "subGroupType": "", "menuCat": "Cover", "order": "1", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "dei:DocumentType", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "dei:DocumentType", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R2": { "role": "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets", "longName": "00100 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS", "shortName": "CONDENSED CONSOLIDATED BALANCE SHEETS", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "2", "firstAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:RestrictedCashCurrent", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "unique": true } }, "R3": { "role": "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical", "longName": "00105 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical)", "shortName": "CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical)", "isDefault": "false", "groupType": "statement", "subGroupType": "parenthetical", "menuCat": "Statements", "order": "3", "firstAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R4": { "role": "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome", "longName": "00200 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME", "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "4", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:CostDirectLabor", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "unique": true } }, "R5": { "role": "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity", "longName": "00300 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY", "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "5", "firstAnchor": { "contextRef": "As_Of_12_30_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_g6pB3lL9cUSXQL-myK22Ew", "name": "us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_12_30_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_g6pB3lL9cUSXQL-myK22Ew", "name": "us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R6": { "role": "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows", "longName": "00400 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS", "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "6", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:ProfitLoss", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:ProfitLoss", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R7": { "role": "http://www.willdan.com/role/DisclosureOrganizationAndOperationsOfCompany", "longName": "10101 - Disclosure - ORGANIZATION AND OPERATIONS OF THE COMPANY", "shortName": "ORGANIZATION AND OPERATIONS OF THE COMPANY", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "7", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R8": { "role": "http://www.willdan.com/role/DisclosureRecentAccountingPronouncements", "longName": "10201 - Disclosure - RECENT ACCOUNTING PRONOUNCEMENTS", "shortName": "RECENT ACCOUNTING PRONOUNCEMENTS", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "8", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R9": { "role": "http://www.willdan.com/role/DisclosureRevenues", "longName": "10301 - Disclosure - REVENUES", "shortName": "REVENUES", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "9", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R10": { "role": "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementData", "longName": "10401 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA", "shortName": "SUPPLEMENTAL FINANCIAL STATEMENT DATA", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "10", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R11": { "role": "http://www.willdan.com/role/DisclosureDerivativeFinancialInstruments", "longName": "10501 - Disclosure - DERIVATIVE FINANCIAL INSTRUMENTS", "shortName": "DERIVATIVE FINANCIAL INSTRUMENTS", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "11", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R12": { "role": "http://www.willdan.com/role/DisclosureDebtObligations", "longName": "10601 - Disclosure - DEBT OBLIGATIONS", "shortName": "DEBT OBLIGATIONS", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "12", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:DebtDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:DebtDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R13": { "role": "http://www.willdan.com/role/DisclosureLeases", "longName": "10701 - Disclosure - LEASES", "shortName": "LEASES", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "13", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "wldn:LesseeOperatingAndFinanceLeasesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "wldn:LesseeOperatingAndFinanceLeasesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R14": { "role": "http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntities", "longName": "10801 - Disclosure - COMMITMENTS AND VARIABLE INTEREST ENTITIES", "shortName": "COMMITMENTS AND VARIABLE INTEREST ENTITIES", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "14", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:CommitmentsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:CommitmentsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R15": { "role": "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformation", "longName": "10901 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION", "shortName": "SEGMENT AND GEOGRAPHICAL INFORMATION", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "15", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R16": { "role": "http://www.willdan.com/role/DisclosureIncomeTaxes", "longName": "11001 - Disclosure - INCOME TAXES", "shortName": "INCOME TAXES", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "16", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R17": { "role": "http://www.willdan.com/role/DisclosureEarningsPerShareEps", "longName": "11101 - Disclosure - EARNINGS PER SHARE (EPS)", "shortName": "EARNINGS PER SHARE (EPS)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "17", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:EarningsPerShareTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:EarningsPerShareTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R18": { "role": "http://www.willdan.com/role/DisclosureContingencies", "longName": "11201 - Disclosure - CONTINGENCIES", "shortName": "CONTINGENCIES", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "18", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:LegalMattersAndContingenciesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:LegalMattersAndContingenciesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R19": { "role": "http://www.willdan.com/role/DisclosureSubsequentEvents", "longName": "11301 - Disclosure - SUBSEQUENT EVENTS", "shortName": "SUBSEQUENT EVENTS", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "19", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:SubsequentEventsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:SubsequentEventsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R20": { "role": "http://www.willdan.com/role/DisclosureOrganizationAndOperationsOfCompanyPolicies", "longName": "20102 - Disclosure - ORGANIZATION AND OPERATIONS OF THE COMPANY (Policies)", "shortName": "ORGANIZATION AND OPERATIONS OF THE COMPANY (Policies)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "policies", "menuCat": "Policies", "order": "20", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R21": { "role": "http://www.willdan.com/role/DisclosureRevenuesTables", "longName": "30303 - Disclosure - REVENUES (Tables)", "shortName": "REVENUES (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "21", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "wldn:ScheduleOfByTypeAndReportableSegmentTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "wldn:ScheduleOfByTypeAndReportableSegmentTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R22": { "role": "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataTables", "longName": "30403 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA (Tables)", "shortName": "SUPPLEMENTAL FINANCIAL STATEMENT DATA (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "22", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R23": { "role": "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsTables", "longName": "30503 - Disclosure - DERIVATIVE FINANCIAL INSTRUMENTS (Tables)", "shortName": "DERIVATIVE FINANCIAL INSTRUMENTS (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "23", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:ScheduleOfCashFlowHedgingInstrumentsStatementsOfFinancialPerformanceAndFinancialPositionLocationTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:ScheduleOfCashFlowHedgingInstrumentsStatementsOfFinancialPerformanceAndFinancialPositionLocationTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R24": { "role": "http://www.willdan.com/role/DisclosureDebtObligationsTables", "longName": "30603 - Disclosure - DEBT OBLIGATIONS (Tables)", "shortName": "DEBT OBLIGATIONS (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "24", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:ScheduleOfDebtTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:ScheduleOfDebtTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R25": { "role": "http://www.willdan.com/role/DisclosureLeasesTables", "longName": "30703 - Disclosure - LEASES (Tables)", "shortName": "LEASES (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "25", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:LeaseCostTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:LeaseCostTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R26": { "role": "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationTables", "longName": "30903 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION (Tables)", "shortName": "SEGMENT AND GEOGRAPHICAL INFORMATION (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "26", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:SegmentReportingDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:SegmentReportingDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R27": { "role": "http://www.willdan.com/role/DisclosureEarningsPerShareEpsTables", "longName": "31103 - Disclosure - EARNINGS PER SHARE (EPS) (Tables)", "shortName": "EARNINGS PER SHARE (EPS) (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "27", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R28": { "role": "http://www.willdan.com/role/DisclosureOrganizationAndOperationsOfCompanySegmentInformationDetails", "longName": "40101 - Disclosure - ORGANIZATION AND OPERATIONS OF THE COMPANY - Segment Information (Details)", "shortName": "ORGANIZATION AND OPERATIONS OF THE COMPANY - Segment Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "28", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:NumberOfReportableSegments", "unitRef": "Unit_Standard_segment_i_KtcFLR3UmW95GxWigpoA", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "us-gaap:NumberOfReportableSegments", "us-gaap:NumberOfReportableSegments", "us-gaap:NumberOfReportableSegments", "p", "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true }, "uniqueAnchor": null }, "R29": { "role": "http://www.willdan.com/role/DisclosureOrganizationAndOperationsOfCompanyFiscalYearsDetails", "longName": "40102 - Disclosure - ORGANIZATION AND OPERATIONS OF THE COMPANY - Fiscal Years (Details)", "shortName": "ORGANIZATION AND OPERATIONS OF THE COMPANY - Fiscal Years (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "29", "firstAnchor": { "contextRef": "Duration_9_28_2024_To_12_27_2024_FRwXmIbYbEi_qRxjRFvKzA", "name": "us-gaap:FiscalPeriodDuration", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:FiscalPeriodDuration", "us-gaap:FiscalPeriodDuration", "us-gaap:FiscalPeriodDuration", "p", "us-gaap:FiscalPeriod", "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_9_28_2024_To_12_27_2024_FRwXmIbYbEi_qRxjRFvKzA", "name": "us-gaap:FiscalPeriodDuration", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:FiscalPeriodDuration", "us-gaap:FiscalPeriodDuration", "us-gaap:FiscalPeriodDuration", "p", "us-gaap:FiscalPeriod", "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R30": { "role": "http://www.willdan.com/role/DisclosureRevenuesSegmentInformationDetails", "longName": "40301 - Disclosure - REVENUES - Segment Information (Details)", "shortName": "REVENUES - Segment Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "30", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:NumberOfReportableSegments", "unitRef": "Unit_Standard_segment_i_KtcFLR3UmW95GxWigpoA", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "us-gaap:NumberOfReportableSegments", "us-gaap:NumberOfReportableSegments", "us-gaap:NumberOfReportableSegments", "p", "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true }, "uniqueAnchor": null }, "R31": { "role": "http://www.willdan.com/role/DisclosureRevenuesGeneralInformationDetails", "longName": "40302 - Disclosure - REVENUES - General Information (Details)", "shortName": "REVENUES - General Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "31", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "wldn:LaborAndRelatedExpenseExcludingStockBasedCompensation", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "wldn:RevenueOfTheEntityAsAnAgent", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "unique": true } }, "R32": { "role": "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataRestrictedCashDetails", "longName": "40401 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA - Restricted Cash (Details)", "shortName": "SUPPLEMENTAL FINANCIAL STATEMENT DATA - Restricted Cash (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "32", "firstAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:RestrictedCash", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "unique": true } }, "R33": { "role": "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetTabularDisclosureDetails", "longName": "40402 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA - Equipment and Leasehold Improvements, Net - Tabular Disclosure (Details)", "shortName": "SUPPLEMENTAL FINANCIAL STATEMENT DATA - Equipment and Leasehold Improvements, Net - Tabular Disclosure (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "33", "firstAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:FinanceLeaseRightOfUseAssetBeforeAccumulatedAmortization", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetBeforeAccumulatedDepreciationAndAmortization", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "unique": true } }, "R34": { "role": "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetDepreciationAndAmortizationExpenseDetails", "longName": "40403 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA - Equipment and Leasehold Improvements, Net - Depreciation and Amortization Expense (Details)", "shortName": "SUPPLEMENTAL FINANCIAL STATEMENT DATA - Equipment and Leasehold Improvements, Net - Depreciation and Amortization Expense (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "34", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:FinanceLeaseRightOfUseAssetAmortization", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LeaseCostTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true }, "uniqueAnchor": null }, "R35": { "role": "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataAccruedLiabilitiesDetails", "longName": "40404 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA - Accrued Liabilities (Details)", "shortName": "SUPPLEMENTAL FINANCIAL STATEMENT DATA - Accrued Liabilities (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "35", "firstAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "wldn:AccruedSubcontractorCosts", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "wldn:AccruedSubcontractorCosts", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R36": { "role": "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataGoodwillDetails", "longName": "40405 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA - Goodwill (Details)", "shortName": "SUPPLEMENTAL FINANCIAL STATEMENT DATA - Goodwill (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "36", "firstAnchor": { "contextRef": "As_Of_12_29_2023_MKY6nQfovUef0-ez3BLCKg", "name": "us-gaap:Goodwill", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_12_29_2023_us-gaap_StatementBusinessSegmentsAxis_wldn_EnergyMember_vBxrkC4d8EySCOPeO1qBCA", "name": "us-gaap:Goodwill", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfGoodwillTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "unique": true } }, "R37": { "role": "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsGrossAmountsAndAccumulatedAmortizationDetails", "longName": "40406 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA - Finite-lived Intangible Assets - Gross Amounts and Accumulated Amortization (Details)", "shortName": "SUPPLEMENTAL FINANCIAL STATEMENT DATA - Finite-lived Intangible Assets - Gross Amounts and Accumulated Amortization (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "37", "firstAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R38": { "role": "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsAmortizationPeriodDetails", "longName": "40407 - Disclosure - SUPPLEMENTAL FINANCIAL STATEMENT DATA - Finite-lived Intangible Assets - Amortization Period (Details)", "shortName": "SUPPLEMENTAL FINANCIAL STATEMENT DATA - Finite-lived Intangible Assets - Amortization Period (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "38", "firstAnchor": { "contextRef": "As_Of_3_29_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_t1YK5iYfYE2sjaSiFho5iA", "name": "us-gaap:FiniteLivedIntangibleAssetUsefulLife", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_29_2024_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_OrderOrProductionBacklogMember_t1YK5iYfYE2sjaSiFho5iA", "name": "us-gaap:FiniteLivedIntangibleAssetUsefulLife", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R39": { "role": "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsGeneralInformationDetails", "longName": "40501 - Disclosure - DERIVATIVE FINANCIAL INSTRUMENTS - General Information (Details)", "shortName": "DERIVATIVE FINANCIAL INSTRUMENTS - General Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "39", "firstAnchor": { "contextRef": "Duration_11_30_2023_To_11_30_2023_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis_us-gaap_CashFlowHedgingMember_F2Xih5Vh3EKW7xAWDlJz9g", "name": "us-gaap:DerivativeInceptionDates", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_11_30_2023_To_11_30_2023_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis_us-gaap_CashFlowHedgingMember_F2Xih5Vh3EKW7xAWDlJz9g", "name": "us-gaap:DerivativeInceptionDates", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R40": { "role": "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsCashFlowHedgeEffectivenessDetails", "longName": "40502 - Disclosure - DERIVATIVE FINANCIAL INSTRUMENTS - Cash Flow Hedge Effectiveness (Details)", "shortName": "DERIVATIVE FINANCIAL INSTRUMENTS - Cash Flow Hedge Effectiveness (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "40", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R41": { "role": "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsFairValueDetails", "longName": "40503 - Disclosure - DERIVATIVE FINANCIAL INSTRUMENTS - Fair Value (Details)", "shortName": "DERIVATIVE FINANCIAL INSTRUMENTS - Fair Value (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "41", "firstAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:DerivativeAssetsCurrent", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfCashFlowHedgingInstrumentsStatementsOfFinancialPerformanceAndFinancialPositionLocationTableTextBlock", "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:DerivativeAssetsCurrent", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfCashFlowHedgingInstrumentsStatementsOfFinancialPerformanceAndFinancialPositionLocationTableTextBlock", "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R42": { "role": "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsAccumulatedOtherComprehensiveIncomeLossDetails", "longName": "40504 - Disclosure - DERIVATIVE FINANCIAL INSTRUMENTS - Accumulated Other Comprehensive Income (Loss) (Details)", "shortName": "DERIVATIVE FINANCIAL INSTRUMENTS - Accumulated Other Comprehensive Income (Loss) (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "42", "firstAnchor": { "contextRef": "As_Of_12_29_2023_MKY6nQfovUef0-ez3BLCKg", "name": "us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_us-gaap_StatementEquityComponentsAxis_us-gaap_AccumulatedOtherComprehensiveIncomeMember_tuizORqSikaZXo6Xz8S38Q", "name": "us-gaap:OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock", "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "unique": true } }, "R43": { "role": "http://www.willdan.com/role/DisclosureDebtObligationsCompositionDetails", "longName": "40601 - Disclosure - DEBT OBLIGATIONS - Composition (Details)", "shortName": "DEBT OBLIGATIONS - Composition (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "43", "firstAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:DebtInstrumentCarryingAmount", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDebtTableTextBlock", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:DebtInstrumentCarryingAmount", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDebtTableTextBlock", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R44": { "role": "http://www.willdan.com/role/DisclosureDebtObligationsClassificationDetails", "longName": "40602 - Disclosure - DEBT OBLIGATIONS - Classification (Details)", "shortName": "DEBT OBLIGATIONS - Classification (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "44", "firstAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:LongTermDebt", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDebtTableTextBlock", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:LongTermDebtCurrent", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDebtTableTextBlock", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "unique": true } }, "R45": { "role": "http://www.willdan.com/role/DisclosureDebtObligationsNewCreditFacilitiesDetails", "longName": "40603 - Disclosure - DEBT OBLIGATIONS - New Credit Facilities (Details)", "shortName": "DEBT OBLIGATIONS - New Credit Facilities (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "45", "firstAnchor": { "contextRef": "As_Of_3_29_2024_us-gaap_DebtInstrumentAxis_wldn_CreditAgreement2023Member_us-gaap_LongtermDebtTypeAxis_us-gaap_NotesPayableToBanksMember_RmXuVLI3Ckio6gjU58hjXA", "name": "wldn:DebtInstrumentCompositeInterestRate", "unitRef": "Unit_Standard_pure_DXYe1O5q4ECK6wJsnXPghA", "xsiNil": "false", "lang": null, "decimals": "3", "ancestors": [ "span", "p", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_29_2024_us-gaap_DebtInstrumentAxis_wldn_CreditAgreement2023Member_us-gaap_LongtermDebtTypeAxis_us-gaap_NotesPayableToBanksMember_RmXuVLI3Ckio6gjU58hjXA", "name": "wldn:DebtInstrumentCompositeInterestRate", "unitRef": "Unit_Standard_pure_DXYe1O5q4ECK6wJsnXPghA", "xsiNil": "false", "lang": null, "decimals": "3", "ancestors": [ "span", "p", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R46": { "role": "http://www.willdan.com/role/DisclosureLeasesGeneralInformationDetails", "longName": "40701 - Disclosure - LEASES - General Information (Details)", "shortName": "LEASES - General Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "46", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:LesseeOperatingLeaseExistenceOfOptionToExtend", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "wldn:LesseeOperatingAndFinanceLeasesTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:LesseeOperatingLeaseExistenceOfOptionToExtend", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "wldn:LesseeOperatingAndFinanceLeasesTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R47": { "role": "http://www.willdan.com/role/DisclosureLeasesLeaseExpenseDetails", "longName": "40702 - Disclosure - LEASES - Lease Expense (Details)", "shortName": "LEASES - Lease Expense (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "47", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:OperatingLeaseCost", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LeaseCostTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:OperatingLeaseCost", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LeaseCostTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R48": { "role": "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails", "longName": "40703 - Disclosure - LEASES - Consolidated Balance Sheet (Details)", "shortName": "LEASES - Consolidated Balance Sheet (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "48", "firstAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:OperatingLeaseRightOfUseAsset", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:FinanceLeaseRightOfUseAssetAccumulatedAmortization", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "wldn:LesseeBalanceSheetAndOtherInformationOfLeasesTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "unique": true } }, "R49": { "role": "http://www.willdan.com/role/DisclosureLeasesAdditionalInformationDetails", "longName": "40704 - Disclosure - LEASES - Additional Information (Details)", "shortName": "LEASES - Additional Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "49", "firstAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "td", "tr", "table", "wldn:LesseeBalanceSheetAndOtherInformationOfLeasesTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "td", "tr", "table", "wldn:LesseeBalanceSheetAndOtherInformationOfLeasesTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R50": { "role": "http://www.willdan.com/role/DisclosureLeasesRentExpenseDetails", "longName": "40705 - Disclosure - LEASES - Rent Expense (Details)", "shortName": "LEASES - Rent Expense (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "50", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "wldn:OperatingLeaseRentExpenses", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "wldn:OperatingLeaseRentExpenses", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R51": { "role": "http://www.willdan.com/role/DisclosureLeasesSupplementalCashFlowInformationDetails", "longName": "40706 - Disclosure - LEASES - Supplemental Cash Flow Information (Details)", "shortName": "LEASES - Supplemental Cash Flow Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "51", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:OperatingLeasePayments", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "wldn:LesseeOtherInformationAndSupplementalCashFlowInformationOfLeasesTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:OperatingLeasePayments", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "wldn:LesseeOtherInformationAndSupplementalCashFlowInformationOfLeasesTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R52": { "role": "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesMaturitiesOfLeaseLiabilitiesDetails", "longName": "40707 - Disclosure - LEASES - Operating Leases - Maturities of Lease Liabilities (Details)", "shortName": "LEASES - Operating Leases - Maturities of Lease Liabilities (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "52", "firstAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "us-gaap:FinanceLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "us-gaap:FinanceLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R53": { "role": "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesGrossDifferenceDetails", "longName": "40708 - Disclosure - LEASES - Operating Leases - Gross Difference (Details)", "shortName": "LEASES - Operating Leases - Gross Difference (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "53", "firstAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "us-gaap:FinanceLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "us-gaap:FinanceLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "unique": true } }, "R54": { "role": "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesMaturitiesOfLeaseLiabilitiesDetails", "longName": "40709 - Disclosure - LEASES - Finance Leases - Maturities of Lease Liabilities (Details)", "shortName": "LEASES - Finance Leases - Maturities of Lease Liabilities (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "54", "firstAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:FinanceLeaseLiabilityPaymentsRemainderOfFiscalYear", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "us-gaap:FinanceLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:FinanceLeaseLiabilityPaymentsRemainderOfFiscalYear", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "us-gaap:FinanceLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R55": { "role": "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesGrossDifferenceDetails", "longName": "40710 - Disclosure - LEASES - Finance Leases - Gross Difference (Details)", "shortName": "LEASES - Finance Leases - Gross Difference (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "55", "firstAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:FinanceLeaseLiabilityPaymentsDue", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "us-gaap:FinanceLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:FinanceLeaseLiabilityUndiscountedExcessAmount", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "us-gaap:FinanceLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "unique": true } }, "R56": { "role": "http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntitiesEmployeeBenefitPlansDetails", "longName": "40801 - Disclosure - COMMITMENTS AND VARIABLE INTEREST ENTITIES - Employee Benefit Plans (Details)", "shortName": "COMMITMENTS AND VARIABLE INTEREST ENTITIES - Employee Benefit Plans (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "56", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_us-gaap_RetirementPlanNameAxis_wldn_QualifiedCashOrDeferredArrangementMember_zQJOiAUQPEGMYioT66yjjQ", "name": "us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent", "unitRef": "Unit_Standard_pure_DXYe1O5q4ECK6wJsnXPghA", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:CommitmentsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_us-gaap_RetirementPlanNameAxis_wldn_QualifiedCashOrDeferredArrangementMember_zQJOiAUQPEGMYioT66yjjQ", "name": "us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent", "unitRef": "Unit_Standard_pure_DXYe1O5q4ECK6wJsnXPghA", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:CommitmentsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R57": { "role": "http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntitiesVariableInterestEntitiesDetails", "longName": "40802 - Disclosure - COMMITMENTS AND VARIABLE INTEREST ENTITIES - Variable Interest Entities (Details)", "shortName": "COMMITMENTS AND VARIABLE INTEREST ENTITIES - Variable Interest Entities (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "57", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "wldn:VariableInterestEntityPercentageOfCostsReimbursed", "unitRef": "Unit_Standard_pure_DXYe1O5q4ECK6wJsnXPghA", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:CommitmentsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "wldn:VariableInterestEntityPercentageOfCostsReimbursed", "unitRef": "Unit_Standard_pure_DXYe1O5q4ECK6wJsnXPghA", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:CommitmentsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R58": { "role": "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationSegmentInformationDetails", "longName": "40901 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION - Segment Information (Details)", "shortName": "SEGMENT AND GEOGRAPHICAL INFORMATION - Segment Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "58", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:NumberOfReportableSegments", "unitRef": "Unit_Standard_segment_i_KtcFLR3UmW95GxWigpoA", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "us-gaap:NumberOfReportableSegments", "us-gaap:NumberOfReportableSegments", "us-gaap:NumberOfReportableSegments", "p", "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true }, "uniqueAnchor": null }, "R59": { "role": "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationStatementOfOperationsDetails", "longName": "40902 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION - Statement of Operations (Details)", "shortName": "SEGMENT AND GEOGRAPHICAL INFORMATION - Statement of Operations (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "59", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_srt_ConsolidationItemsAxis_us-gaap_OperatingSegmentsMember_us-gaap_StatementBusinessSegmentsAxis_wldn_EnergyMember_Lt47xLsUeU2C_bQzQa9H5g", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "us-gaap:SegmentReportingDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "unique": true } }, "R60": { "role": "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationSegmentAssetsDetails", "longName": "40903 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION - Segment Assets (Details)", "shortName": "SEGMENT AND GEOGRAPHICAL INFORMATION - Segment Assets (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "60", "firstAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:Assets", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_3_31_2023_zu4lEnHjkECFp9_dr0bmpA", "name": "us-gaap:Assets", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "us-gaap:SegmentReportingDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "unique": true } }, "R61": { "role": "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationDisaggregationOfRevenueDetails", "longName": "40904 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION - Disaggregation of Revenue (Details)", "shortName": "SEGMENT AND GEOGRAPHICAL INFORMATION - Disaggregation of Revenue (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "61", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_srt_StatementGeographicalAxis_country_US_D0Sncpu9k0OYn8e8RPvH9A", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:DisaggregationOfRevenueTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "unique": true } }, "R62": { "role": "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationGeographicalInformationDetails", "longName": "40905 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION - Geographical Information (Details)", "shortName": "SEGMENT AND GEOGRAPHICAL INFORMATION - Geographical Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "62", "firstAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:NumberOfStatesInWhichEntityOperates", "unitRef": "Unit_Standard_state_QWy7gPHFe0CJEMu3lhyJnQ", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:NumberOfStatesInWhichEntityOperates", "unitRef": "Unit_Standard_state_QWy7gPHFe0CJEMu3lhyJnQ", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R63": { "role": "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails", "longName": "40906 - Disclosure - SEGMENT AND GEOGRAPHICAL INFORMATION - Concentration Risk (Details)", "shortName": "SEGMENT AND GEOGRAPHICAL INFORMATION - Concentration Risk (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "63", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_srt_MajorCustomersAxis_wldn_TopTenCustomersMember_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_RevenueFromContractWithCustomerMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember_beVL4IejckGPBe3pj9Gwbg", "name": "us-gaap:ConcentrationRiskPercentage1", "unitRef": "Unit_Standard_pure_DXYe1O5q4ECK6wJsnXPghA", "xsiNil": "false", "lang": null, "decimals": "3", "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_srt_MajorCustomersAxis_wldn_TopTenCustomersMember_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_RevenueFromContractWithCustomerMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember_beVL4IejckGPBe3pj9Gwbg", "name": "us-gaap:ConcentrationRiskPercentage1", "unitRef": "Unit_Standard_pure_DXYe1O5q4ECK6wJsnXPghA", "xsiNil": "false", "lang": null, "decimals": "3", "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R64": { "role": "http://www.willdan.com/role/DisclosureIncomeTaxesValuationAllowanceDetails", "longName": "41001 - Disclosure - INCOME TAXES - Valuation Allowance (Details)", "shortName": "INCOME TAXES - Valuation Allowance (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "64", "firstAnchor": { "contextRef": "As_Of_12_29_2023_MKY6nQfovUef0-ez3BLCKg", "name": "us-gaap:DeferredTaxAssetsValuationAllowance", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_12_29_2023_MKY6nQfovUef0-ez3BLCKg", "name": "us-gaap:DeferredTaxAssetsValuationAllowance", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R65": { "role": "http://www.willdan.com/role/DisclosureIncomeTaxesUncertainTaxPositionsDetails", "longName": "41002 - Disclosure - INCOME TAXES - Uncertain Tax Positions (Details)", "shortName": "INCOME TAXES - Uncertain Tax Positions (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "65", "firstAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued", "us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued", "us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued", "p", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_29_2024_Mh7u1KriE06wsBk0YZV65g", "name": "us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued", "us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued", "us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued", "p", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R66": { "role": "http://www.willdan.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails", "longName": "41003 - Disclosure - INCOME TAXES - Income Tax Expense (Benefit) (Details)", "shortName": "INCOME TAXES - Income Tax Expense (Benefit) (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "66", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:IncomeTaxExpenseBenefit", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true }, "uniqueAnchor": null }, "R67": { "role": "http://www.willdan.com/role/DisclosureEarningsPerShareEpsComputationDetails", "longName": "41101 - Disclosure - EARNINGS PER SHARE (EPS) - Computation (Details)", "shortName": "EARNINGS PER SHARE (EPS) - Computation (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "67", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:NetIncomeLoss", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "unique": true } }, "R68": { "role": "http://www.willdan.com/role/DisclosureEarningsPerShareEpsAntidilutiveSecuritiesDetails", "longName": "41102 - Disclosure - EARNINGS PER SHARE (EPS) - Antidilutive Securities (Details)", "shortName": "EARNINGS PER SHARE (EPS) - Antidilutive Securities (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "68", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_StockCompensationPlanMember_kzA-mHr2HkqSDWjbThXJDg", "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "unitRef": "Unit_Standard_shares_0FmYASUws0ePtYiEHyCEFQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_StockCompensationPlanMember_kzA-mHr2HkqSDWjbThXJDg", "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "unitRef": "Unit_Standard_shares_0FmYASUws0ePtYiEHyCEFQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } }, "R69": { "role": "http://xbrl.sec.gov/ecd/role/PvpDisclosure", "longName": "995410 - Disclosure - Pay vs Performance Disclosure", "shortName": "Pay vs Performance Disclosure", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Uncategorized", "order": "69", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "us-gaap:NetIncomeLoss", "unitRef": "Unit_Standard_USD_3PolKLoTt0yRLBcXUqvlNA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true }, "uniqueAnchor": null }, "R70": { "role": "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "longName": "995445 - Disclosure - Insider Trading Arrangements", "shortName": "Insider Trading Arrangements", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Cover", "order": "70", "firstAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "ecd:Rule10b51ArrAdoptedFlag", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_12_30_2023_To_3_29_2024_hisFqwgkf0Ou-b-ZeazNUw", "name": "ecd:Rule10b51ArrAdoptedFlag", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "wldn-20240329x10q.htm", "first": true, "unique": true } } }, "tag": { "us-gaap_AccountsPayableCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsPayableCurrent", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accounts Payable, Current", "terseLabel": "Accounts payable", "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r14", "r667" ] }, "us-gaap_AccountsReceivableNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsReceivableNetCurrent", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable, Net, Current", "terseLabel": "Accounts receivable, net of allowance for doubtful accounts of $690 and $866 at March 29, 2024 and December 29, 2023, respectively", "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": [ "r265", "r266" ] }, "us-gaap_AccountsReceivableNetCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsReceivableNetCurrentAbstract", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable, after Allowance for Credit Loss, Current [Abstract]", "terseLabel": "Accounts Receivable, after Allowance for Credit Loss, Current" } } }, "auth_ref": [] }, "wldn_AccruedAccountingAndTaxesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "AccruedAccountingAndTaxesCurrent", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataAccruedLiabilitiesDetails": { "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataAccruedLiabilitiesDetails" ], "lang": { "en-us": { "role": { "documentation": "Accrued Accounting and Taxes, Current", "label": "Accrued Accounting and Taxes, Current", "terseLabel": "Accrued accounting costs and taxes" } } }, "auth_ref": [] }, "us-gaap_AccruedBonusesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccruedBonusesCurrent", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataAccruedLiabilitiesDetails": { "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataAccruedLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Accrued Bonuses, Current", "terseLabel": "Accrued bonuses", "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable for incentive compensation awarded to employees and directors or earned by them based on the terms of one or more relevant arrangements. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r17" ] }, "us-gaap_AccruedLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccruedLiabilitiesCurrent", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 2.0 }, "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataAccruedLiabilitiesDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataAccruedLiabilitiesDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accrued Liabilities, Current", "terseLabel": "Accrued liabilities", "totalLabel": "Total accrued liabilities", "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r17" ] }, "us-gaap_AccruedLiabilitiesCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccruedLiabilitiesCurrentAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataAccruedLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Accrued Liabilities, Current [Abstract]", "terseLabel": "Accrued Liabilities" } } }, "auth_ref": [] }, "wldn_AccruedRebatesAndOtherCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "AccruedRebatesAndOtherCurrent", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataAccruedLiabilitiesDetails": { "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataAccruedLiabilitiesDetails" ], "lang": { "en-us": { "role": { "documentation": "Accrued Rebates and Other, Current", "label": "Accrued Rebates and Other, Current", "terseLabel": "Rebate and other" } } }, "auth_ref": [] }, "wldn_AccruedSubcontractorCosts": { "xbrltype": "monetaryItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "AccruedSubcontractorCosts", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataAccruedLiabilitiesDetails": { "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataAccruedLiabilitiesDetails" ], "lang": { "en-us": { "role": { "documentation": "The aggregate costs related to Accrued Subcontractor Cost and services.", "label": "Accrued Subcontractor Costs", "terseLabel": "Accrued subcontractor costs" } } }, "auth_ref": [] }, "us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccumulatedGainLossNetCashFlowHedgeParentMember", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsAccumulatedOtherComprehensiveIncomeLossDetails" ], "lang": { "en-us": { "role": { "label": "Accumulated Gain (Loss), Net, Cash Flow Hedge, Parent [Member]", "terseLabel": "Gain (Loss) on Derivative Instruments", "documentation": "Accumulated other comprehensive income (loss) from gain (loss) of derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness, attributable to parent." } } }, "auth_ref": [ "r166", "r174", "r175", "r429", "r640", "r769" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccumulatedOtherComprehensiveIncomeLossLineItems", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsAccumulatedOtherComprehensiveIncomeLossDetails" ], "lang": { "en-us": { "role": { "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": [ "r173", "r174", "r457", "r459", "r460", "r461", "r462", "r463" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accumulated other comprehensive loss", "terseLabel": "Accumulated other comprehensive loss", "documentation": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source." } } }, "auth_ref": [ "r23", "r24", "r96", "r160", "r509", "r536", "r539" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccumulatedOtherComprehensiveIncomeLossTable", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsAccumulatedOtherComprehensiveIncomeLossDetails" ], "lang": { "en-us": { "role": { "label": "Accumulated Other Comprehensive Income (Loss) [Table]", "documentation": "Disclosure of information about components of accumulated other comprehensive income (loss)." } } }, "auth_ref": [ "r173", "r174", "r457", "r459", "r460", "r461", "r462", "r463" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccumulatedOtherComprehensiveIncomeMember", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsAccumulatedOtherComprehensiveIncomeLossDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "AOCI Attributable to Parent [Member]", "terseLabel": "Accumulated Other Comprehensive Income (Loss)", "verboseLabel": "Accumulated Other Comprehensive Loss", "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners." } } }, "auth_ref": [ "r2", "r7", "r24", "r438", "r441", "r486", "r532", "r533", "r769", "r770", "r771", "r778", "r779", "r780" ] }, "ecd_Additional402vDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "Additional402vDisclosureTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Additional 402(v) Disclosure [Text Block]", "terseLabel": "Additional 402(v) Disclosure" } } }, "auth_ref": [ "r719" ] }, "us-gaap_AdditionalPaidInCapitalCommonStock": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdditionalPaidInCapitalCommonStock", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Additional Paid in Capital, Common Stock", "terseLabel": "Additional paid-in capital", "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": [ "r91" ] }, "us-gaap_AdditionalPaidInCapitalMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdditionalPaidInCapitalMember", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Additional Paid-in Capital [Member]", "terseLabel": "Additional Paid-in Capital", "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders." } } }, "auth_ref": [ "r399", "r400", "r401", "r548", "r778", "r779", "r780", "r868", "r890" ] }, "ecd_AdjToCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AdjToCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment to Compensation Amount", "terseLabel": "Adjustment to Compensation, Amount" } } }, "auth_ref": [ "r725" ] }, "ecd_AdjToCompAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AdjToCompAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment to Compensation [Axis]", "terseLabel": "Adjustment to Compensation:" } } }, "auth_ref": [ "r725" ] }, "ecd_AdjToNonPeoNeoCompFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AdjToNonPeoNeoCompFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment to Non-PEO NEO Compensation Footnote [Text Block]", "terseLabel": "Adjustment to Non-PEO NEO Compensation Footnote" } } }, "auth_ref": [ "r725" ] }, "ecd_AdjToPeoCompFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AdjToPeoCompFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment To PEO Compensation, Footnote [Text Block]", "terseLabel": "Adjustment To PEO Compensation, Footnote" } } }, "auth_ref": [ "r725" ] }, "us-gaap_AdjustmentForAmortizationAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdjustmentForAmortizationAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetDepreciationAndAmortizationExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Amortization [Abstract]", "terseLabel": "Amortization Expense" } } }, "auth_ref": [] }, "us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation", "crdr": "debit", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Shares Used to Pay Taxes on Stock Grants, Value", "negatedLabel": "Shares used to pay taxes on stock grants", "documentation": "Amount of decrease to equity for grantee's tax withholding obligation for award under share-based payment arrangement." } } }, "auth_ref": [] }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue", "crdr": "credit", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Adjustments to Additional Paid in Capital, Share-based Compensation, Requisite Service Period Recognition", "terseLabel": "Stock-based compensation expense", "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement." } } }, "auth_ref": [ "r54", "r55", "r371" ] }, "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]", "terseLabel": "Adjustments to reconcile net income (loss) to net cash provided by (used in) operating activities:" } } }, "auth_ref": [] }, "ecd_AggtErrCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AggtErrCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Aggregate Erroneous Compensation Amount", "terseLabel": "Aggregate Erroneous Compensation Amount" } } }, "auth_ref": [ "r690", "r701", "r711", "r736" ] }, "ecd_AggtErrCompNotYetDeterminedTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AggtErrCompNotYetDeterminedTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Aggregate Erroneous Compensation Not Yet Determined [Text Block]", "terseLabel": "Aggregate Erroneous Compensation Not Yet Determined" } } }, "auth_ref": [ "r693", "r704", "r714", "r739" ] }, "ecd_AllAdjToCompMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AllAdjToCompMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "All Adjustments to Compensation [Member]", "terseLabel": "All Adjustments to Compensation" } } }, "auth_ref": [ "r725" ] }, "ecd_AllExecutiveCategoriesMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AllExecutiveCategoriesMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "All Executive Categories [Member]", "terseLabel": "All Executive Categories" } } }, "auth_ref": [ "r732" ] }, "ecd_AllIndividualsMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AllIndividualsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure", "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure", "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "All Individuals [Member]", "terseLabel": "All Individuals" } } }, "auth_ref": [ "r697", "r705", "r715", "r732", "r740", "r744", "r752" ] }, "ecd_AllTradingArrangementsMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AllTradingArrangementsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "All Trading Arrangements [Member]", "terseLabel": "All Trading Arrangements" } } }, "auth_ref": [ "r750" ] }, "wldn_AllocationOfFacilitiesCostsToDirectCostsOfContractRevenue": { "xbrltype": "monetaryItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "AllocationOfFacilitiesCostsToDirectCostsOfContractRevenue", "crdr": "debit", "presentation": [ "http://www.willdan.com/role/DisclosureRevenuesGeneralInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "The amount of facilities costs allocated to direct costs of contract revenue.", "label": "Allocation Of Facilities Costs To Direct Costs Of Contract Revenue", "terseLabel": "Allocation of facilities costs to contract revenue" } } }, "auth_ref": [] }, "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AllowanceForDoubtfulAccountsReceivableCurrent", "crdr": "credit", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "label": "Allowance for Doubtful Accounts Receivable, Current", "terseLabel": "Accounts receivable, allowance for doubtful accounts", "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current." } } }, "auth_ref": [ "r161", "r267", "r273" ] }, "dei_AmendmentFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "AmendmentFlag", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Amendment Flag", "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission." } } }, "auth_ref": [] }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "presentation": [ "http://www.willdan.com/role/DisclosureEarningsPerShareEpsAntidilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount", "terseLabel": "Antidilutive securities excluded from computation of earnings per share (in shares)", "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": [ "r226" ] }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis", "presentation": [ "http://www.willdan.com/role/DisclosureEarningsPerShareEpsAntidilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "label": "Antidilutive Securities [Axis]", "documentation": "Information by type of antidilutive security." } } }, "auth_ref": [ "r32" ] }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems", "presentation": [ "http://www.willdan.com/role/DisclosureEarningsPerShareEpsAntidilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share [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_AntidilutiveSecuritiesNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AntidilutiveSecuritiesNameDomain", "presentation": [ "http://www.willdan.com/role/DisclosureEarningsPerShareEpsAntidilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "label": "Antidilutive Securities, Name [Domain]", "documentation": "Incremental common shares attributable to securities that were not included in diluted earnings per share (EPS) because to do so would increase EPS amounts or decrease loss per share amounts for the period presented." } } }, "auth_ref": [ "r32" ] }, "us-gaap_Assets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "Assets", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationSegmentAssetsDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Assets", "terseLabel": "Segment assets", "totalLabel": "Total assets", "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events." } } }, "auth_ref": [ "r124", "r156", "r187", "r235", "r250", "r256", "r268", "r299", "r300", "r302", "r303", "r304", "r306", "r308", "r310", "r311", "r425", "r430", "r453", "r505", "r576", "r667", "r681", "r801", "r802", "r876" ] }, "us-gaap_AssetsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AssetsAbstract", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Assets [Abstract]" } } }, "auth_ref": [] }, "us-gaap_AssetsAndLiabilitiesLesseeAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AssetsAndLiabilitiesLesseeAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails" ], "lang": { "en-us": { "role": { "label": "Assets and Liabilities, Lessee [Abstract]", "verboseLabel": "Leases" } } }, "auth_ref": [] }, "us-gaap_AssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AssetsCurrent", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Assets, Current", "totalLabel": "Total current assets", "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events." } } }, "auth_ref": [ "r149", "r162", "r187", "r268", "r299", "r300", "r302", "r303", "r304", "r306", "r308", "r310", "r311", "r425", "r430", "r453", "r667", "r801", "r802", "r876" ] }, "us-gaap_AssetsCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AssetsCurrentAbstract", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Assets, Current [Abstract]", "terseLabel": "Current assets:" } } }, "auth_ref": [] }, "wldn_AutomobilesTrucksAndFieldEquipmentMember": { "xbrltype": "domainItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "AutomobilesTrucksAndFieldEquipmentMember", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetTabularDisclosureDetails" ], "lang": { "en-us": { "role": { "documentation": "Vehicles that are used primarily for transporting people, large vehicles primarily used for transporting cargo and long-lived, depreciable assets used for the primary purpose of field work.", "label": "Automobiles, Trucks and Field Equipment [Member]", "terseLabel": "Automobiles Trucks and Field Equipment" } } }, "auth_ref": [] }, "ecd_AwardExrcPrice": { "xbrltype": "perShareItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardExrcPrice", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Exercise Price", "terseLabel": "Exercise Price" } } }, "auth_ref": [ "r747" ] }, "ecd_AwardGrantDateFairValue": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardGrantDateFairValue", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Grant Date Fair Value", "terseLabel": "Fair Value as of Grant Date" } } }, "auth_ref": [ "r748" ] }, "ecd_AwardTmgDiscLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardTmgDiscLineItems", "lang": { "en-us": { "role": { "label": "Award Timing Disclosures [Line Items]", "terseLabel": "Award Timing Disclosures" } } }, "auth_ref": [ "r743" ] }, "ecd_AwardTmgHowMnpiCnsdrdTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardTmgHowMnpiCnsdrdTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing, How MNPI Considered [Text Block]", "terseLabel": "Award Timing, How MNPI Considered" } } }, "auth_ref": [ "r743" ] }, "ecd_AwardTmgMethodTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardTmgMethodTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing Method [Text Block]", "terseLabel": "Award Timing Method" } } }, "auth_ref": [ "r743" ] }, "ecd_AwardTmgMnpiCnsdrdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardTmgMnpiCnsdrdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing MNPI Considered [Flag]", "terseLabel": "Award Timing MNPI Considered" } } }, "auth_ref": [ "r743" ] }, "ecd_AwardTmgMnpiDiscTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardTmgMnpiDiscTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing MNPI Disclosure [Text Block]", "terseLabel": "Award Timing MNPI Disclosure" } } }, "auth_ref": [ "r743" ] }, "ecd_AwardTmgPredtrmndFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardTmgPredtrmndFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing Predetermined [Flag]", "terseLabel": "Award Timing Predetermined" } } }, "auth_ref": [ "r743" ] }, "us-gaap_AwardTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AwardTypeAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Type [Axis]", "terseLabel": "Award Type", "documentation": "Information by type of award under share-based payment arrangement." } } }, "auth_ref": [ "r373", "r374", "r375", "r376", "r377", "r378", "r379", "r380", "r381", "r382", "r383", "r384", "r385", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r393", "r394", "r395", "r396", "r397", "r398" ] }, "ecd_AwardUndrlygSecuritiesAmt": { "xbrltype": "decimalItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardUndrlygSecuritiesAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Underlying Securities Amount", "terseLabel": "Underlying Securities" } } }, "auth_ref": [ "r746" ] }, "ecd_AwardsCloseToMnpiDiscIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardsCloseToMnpiDiscIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Awards Close in Time to MNPI Disclosures, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r745" ] }, "ecd_AwardsCloseToMnpiDiscTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardsCloseToMnpiDiscTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Awards Close in Time to MNPI Disclosures [Table]", "terseLabel": "Awards Close in Time to MNPI Disclosures" } } }, "auth_ref": [ "r744" ] }, "ecd_AwardsCloseToMnpiDiscTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardsCloseToMnpiDiscTableTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Awards Close in Time to MNPI Disclosures [Table Text Block]", "terseLabel": "Awards Close in Time to MNPI Disclosures, Table" } } }, "auth_ref": [ "r744" ] }, "us-gaap_BalanceSheetRelatedDisclosuresAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BalanceSheetRelatedDisclosuresAbstract", "lang": { "en-us": { "role": { "label": "SUPPLEMENTAL FINANCIAL STATEMENT DATA" } } }, "auth_ref": [] }, "us-gaap_BasisOfAccountingPolicyPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BasisOfAccountingPolicyPolicyTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureOrganizationAndOperationsOfCompanyPolicies" ], "lang": { "en-us": { "role": { "label": "Basis of Accounting, Policy [Policy Text Block]", "terseLabel": "Basis of Presentation", "documentation": "Disclosure of accounting policy for basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS)." } } }, "auth_ref": [] }, "stpr_CA": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/stpr/2023", "localname": "CA", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails" ], "lang": { "en-us": { "role": { "label": "CALIFORNIA", "terseLabel": "California" } } }, "auth_ref": [] }, "us-gaap_CapitalLeaseObligationsIncurred": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CapitalLeaseObligationsIncurred", "crdr": "credit", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Capital Lease Obligations Incurred", "terseLabel": "Equipment acquired under finance leases", "documentation": "Amount of increase in lease obligation from new lease." } } }, "auth_ref": [ "r30", "r31" ] }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashAndCashEquivalentsAtCarryingValue", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 1.0 }, "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataRestrictedCashDetails": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataRestrictedCashDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Cash and Cash Equivalents, at Carrying Value", "terseLabel": "Cash and cash equivalents", "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation." } } }, "auth_ref": [ "r28", "r151", "r638" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "crdr": "debit", "calculation": { "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataRestrictedCashDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataRestrictedCashDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents", "periodEndLabel": "Cash, cash equivalents and restricted cash at end of period", "periodStartLabel": "Cash, cash equivalents and restricted cash at beginning of period", "totalLabel": "Total cash, cash equivalents, and restricted cash shown in the consolidated statement of cash flows", "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r28", "r107", "r185" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataRestrictedCashDetails" ], "lang": { "en-us": { "role": { "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents [Abstract]", "terseLabel": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents" } } }, "auth_ref": [] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect", "totalLabel": "Net increase (decrease) in cash, cash equivalents and restricted cash", "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r1", "r107" ] }, "us-gaap_CashFlowHedgingMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashFlowHedgingMember", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Cash Flow Hedging [Member]", "terseLabel": "Cash Flow Hedging", "documentation": "Hedge of the exposure to variability in the cash flows of a recognized asset or liability, or of a forecasted transaction, that is attributable to a particular risk." } } }, "auth_ref": [ "r67" ] }, "us-gaap_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Cash Flow, Noncash Investing and Financing Activities Disclosure [Abstract]", "terseLabel": "Supplemental disclosures of noncash investing and financing activities:" } } }, "auth_ref": [] }, "us-gaap_CashFlowOperatingActivitiesLesseeAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashFlowOperatingActivitiesLesseeAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesSupplementalCashFlowInformationDetails" ], "lang": { "en-us": { "role": { "label": "Cash Flow, Operating Activities, Lessee [Abstract]", "terseLabel": "Cash paid for amounts included in the measurement of lease liabilities:" } } }, "auth_ref": [] }, "ecd_ChangedPeerGroupFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ChangedPeerGroupFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Changed Peer Group, Footnote [Text Block]", "terseLabel": "Changed Peer Group, Footnote" } } }, "auth_ref": [ "r723" ] }, "dei_CityAreaCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "CityAreaCode", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "City Area Code", "documentation": "Area code of city" } } }, "auth_ref": [] }, "ecd_CoSelectedMeasureAmt": { "xbrltype": "decimalItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "CoSelectedMeasureAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Company Selected Measure Amount", "terseLabel": "Company Selected Measure Amount" } } }, "auth_ref": [ "r724" ] }, "ecd_CoSelectedMeasureName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "CoSelectedMeasureName", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Company Selected Measure Name", "terseLabel": "Company Selected Measure Name" } } }, "auth_ref": [ "r724" ] }, "wldn_CommercialMember": { "xbrltype": "domainItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "CommercialMember", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "documentation": "Commercial [Member]", "label": "Commercial [Member]", "terseLabel": "Commercial" } } }, "auth_ref": [] }, "us-gaap_CommitmentsAndContingencies": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommitmentsAndContingencies", "crdr": "credit", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Commitments and Contingencies", "terseLabel": "Commitments and contingencies", "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur." } } }, "auth_ref": [ "r21", "r84", "r506", "r563" ] }, "wldn_CommitmentsDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "CommitmentsDisclosureAbstract", "lang": { "en-us": { "role": { "label": "COMMITMENTS AND VARIABLE INTEREST ENTITIES" } } }, "auth_ref": [] }, "us-gaap_CommitmentsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommitmentsDisclosureTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntities" ], "lang": { "en-us": { "role": { "label": "Commitments Disclosure [Text Block]", "terseLabel": "COMMITMENTS AND VARIABLE INTEREST ENTITIES", "documentation": "The entire disclosure for significant arrangements with third parties, which includes operating lease arrangements and arrangements in which the entity has agreed to expend funds to procure goods or services, or has agreed to commit resources to supply goods or services, and operating lease arrangements. Descriptions may include identification of the specific goods and services, period of time covered, minimum quantities and amounts, and cancellation rights." } } }, "auth_ref": [ "r113" ] }, "us-gaap_CommonStockMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockMember", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Common Stock [Member]", "terseLabel": "Common Stock", "documentation": "Stock that is subordinate to all other stock of the issuer." } } }, "auth_ref": [ "r669", "r670", "r671", "r673", "r674", "r675", "r678", "r778", "r779", "r868", "r889", "r890" ] }, "us-gaap_CommonStockNumberOfSharesParValueAndOtherDisclosuresAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockNumberOfSharesParValueAndOtherDisclosuresAbstract", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "label": "Common Stock, Number of Shares, Par Value and Other Disclosures [Abstract]", "terseLabel": "Common stock" } } }, "auth_ref": [] }, "us-gaap_CommonStockParOrStatedValuePerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockParOrStatedValuePerShare", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "label": "Common Stock, Par or Stated Value Per Share", "terseLabel": "Common stock, par value (in dollars per share)", "documentation": "Face amount or stated value per share of common stock." } } }, "auth_ref": [ "r90" ] }, "us-gaap_CommonStockSharesAuthorized": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockSharesAuthorized", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "label": "Common Stock, Shares Authorized", "terseLabel": "Common stock, shares authorized (in shares)", "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws." } } }, "auth_ref": [ "r90", "r564" ] }, "us-gaap_CommonStockSharesIssued": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockSharesIssued", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Common Stock, Shares, Issued", "periodEndLabel": "Balance (in shares)", "periodStartLabel": "Balance (in shares)", "terseLabel": "Common stock, shares issued (in shares)", "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury." } } }, "auth_ref": [ "r90" ] }, "us-gaap_CommonStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockSharesOutstanding", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "label": "Common Stock, Shares, Outstanding", "terseLabel": "Common stock, shares outstanding (in shares)", "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation." } } }, "auth_ref": [ "r8", "r90", "r564", "r582", "r890", "r891" ] }, "us-gaap_CommonStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockValue", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Common Stock, Value, Issued", "verboseLabel": "Common stock, $0.01 par value, 40,000 shares authorized; 13,817 and 13,682 shares issued and outstanding at March 29, 2024 and December 29, 2023, respectively", "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity." } } }, "auth_ref": [ "r90", "r508", "r667" ] }, "ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "CompActuallyPaidVsCoSelectedMeasureTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Company Selected Measure [Text Block]", "terseLabel": "Compensation Actually Paid vs. Company Selected Measure" } } }, "auth_ref": [ "r729" ] }, "ecd_CompActuallyPaidVsNetIncomeTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "CompActuallyPaidVsNetIncomeTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Net Income [Text Block]", "terseLabel": "Compensation Actually Paid vs. Net Income" } } }, "auth_ref": [ "r728" ] }, "ecd_CompActuallyPaidVsOtherMeasureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "CompActuallyPaidVsOtherMeasureTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Other Measure [Text Block]", "terseLabel": "Compensation Actually Paid vs. Other Measure" } } }, "auth_ref": [ "r730" ] }, "ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "CompActuallyPaidVsTotalShareholderRtnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Total Shareholder Return [Text Block]", "terseLabel": "Compensation Actually Paid vs. Total Shareholder Return" } } }, "auth_ref": [ "r727" ] }, "wldn_CompensationAndPayrollTaxesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "CompensationAndPayrollTaxesCurrent", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataAccruedLiabilitiesDetails": { "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataAccruedLiabilitiesDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents the carrying value as of the balance sheet date of obligations incurred and payable for statutory payroll taxes incurred through that date and obligations and payables pertaining to compensation to employees.", "label": "Compensation and Payroll Taxes Current", "terseLabel": "Compensation and payroll taxes" } } }, "auth_ref": [] }, "us-gaap_ComprehensiveIncomeNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ComprehensiveIncomeNetOfTax", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent", "totalLabel": "Comprehensive income (loss)", "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners." } } }, "auth_ref": [ "r25", "r170", "r172", "r177", "r502", "r517" ] }, "us-gaap_ComprehensiveIncomeNetOfTaxAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ComprehensiveIncomeNetOfTaxAbstract", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent [Abstract]", "terseLabel": "Other comprehensive income (loss):" } } }, "auth_ref": [] }, "wldn_ComputerHardwareAndSoftwareMember": { "xbrltype": "domainItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "ComputerHardwareAndSoftwareMember", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetTabularDisclosureDetails" ], "lang": { "en-us": { "role": { "documentation": "Long-lived depreciable assets used as a part of information systems and capitalized costs of purchased software applications.", "label": "Computer Hardware and Software [Member]", "terseLabel": "Computer Hardware and Software" } } }, "auth_ref": [] }, "us-gaap_ConcentrationRiskBenchmarkDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskBenchmarkDomain", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Benchmark [Domain]", "documentation": "The denominator in a calculation of a disclosed concentration risk percentage." } } }, "auth_ref": [ "r34", "r37", "r78", "r79", "r264", "r624" ] }, "us-gaap_ConcentrationRiskByBenchmarkAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskByBenchmarkAxis", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Benchmark [Axis]", "documentation": "Information by benchmark of concentration risk." } } }, "auth_ref": [ "r34", "r37", "r78", "r79", "r264", "r540", "r624" ] }, "us-gaap_ConcentrationRiskByTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskByTypeAxis", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Type [Axis]", "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender." } } }, "auth_ref": [ "r34", "r37", "r78", "r79", "r264", "r624", "r762" ] }, "us-gaap_ConcentrationRiskLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskLineItems", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk [Line Items]", "terseLabel": "Concentration Risk", "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": [ "r624" ] }, "us-gaap_ConcentrationRiskPercentage1": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskPercentage1", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk, Percentage", "terseLabel": "Concentration risk (as a percent)", "documentation": "For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the \"benchmark\" (or denominator) in the equation, this concept represents the concentration percentage derived from the division." } } }, "auth_ref": [ "r34", "r37", "r78", "r79", "r264" ] }, "us-gaap_ConcentrationRiskTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskTable", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk [Table]", "documentation": "Describes the nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark." } } }, "auth_ref": [ "r33", "r34", "r37", "r38", "r78", "r123", "r624" ] }, "us-gaap_ConcentrationRiskTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskTypeDomain", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Type [Domain]", "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration." } } }, "auth_ref": [ "r34", "r37", "r78", "r79", "r264", "r624" ] }, "srt_ConsolidationItemsAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "ConsolidationItemsAxis", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationSegmentAssetsDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationStatementOfOperationsDetails" ], "lang": { "en-us": { "role": { "label": "Consolidation Items [Axis]" } } }, "auth_ref": [ "r189", "r237", "r248", "r249", "r250", "r251", "r252", "r254", "r258", "r299", "r300", "r301", "r302", "r304", "r305", "r307", "r309", "r310", "r801", "r802" ] }, "srt_ConsolidationItemsDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "ConsolidationItemsDomain", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationSegmentAssetsDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationStatementOfOperationsDetails" ], "lang": { "en-us": { "role": { "label": "Consolidation Items [Domain]" } } }, "auth_ref": [ "r189", "r237", "r248", "r249", "r250", "r251", "r252", "r254", "r258", "r299", "r300", "r301", "r302", "r304", "r305", "r307", "r309", "r310", "r801", "r802" ] }, "us-gaap_ConstructionContractorReceivableRetainage": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConstructionContractorReceivableRetainage", "crdr": "debit", "presentation": [ "http://www.willdan.com/role/DisclosureRevenuesGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Construction Contractor, Receivable, Retainage", "terseLabel": "Retained accounts receivable", "documentation": "Amount of right to consideration in exchange for good or service transferred to customer withheld under retainage provision in long-term contract or program when right to consideration is unconditional." } } }, "auth_ref": [ "r159", "r492" ] }, "wldn_ContractWithCustomerAssetAndConstructionContractorReceivableRetainageAfterAllowanceForCreditLossCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "ContractWithCustomerAssetAndConstructionContractorReceivableRetainageAfterAllowanceForCreditLossCurrent", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "documentation": "Contract with Customer, Asset, and Construction Contractor, Receivable, Retainage, after Allowance for Credit Loss, Current", "label": "Contract with Customer, Asset, and Construction Contractor, Receivable, Retainage, after Allowance for Credit Loss, Current", "terseLabel": "Contract assets" } } }, "auth_ref": [] }, "us-gaap_ContractWithCustomerBasisOfPricingAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ContractWithCustomerBasisOfPricingAxis", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Contract with Customer, Basis of Pricing [Axis]", "documentation": "Information by basis of pricing for contract representing right to consideration in exchange for good or service transferred to customer." } } }, "auth_ref": [ "r655", "r805" ] }, "us-gaap_ContractWithCustomerBasisOfPricingDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ContractWithCustomerBasisOfPricingDomain", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Contract with Customer, Basis of Pricing [Domain]", "documentation": "Basis of pricing for contract with customer. Includes, but is not limited to, fixed-price and time-and-materials contracts." } } }, "auth_ref": [ "r655", "r805" ] }, "us-gaap_ContractWithCustomerLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ContractWithCustomerLiabilityCurrent", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Contract with Customer, Liability, Current", "terseLabel": "Contract liabilities", "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current." } } }, "auth_ref": [ "r343", "r344", "r355" ] }, "us-gaap_CorporateNonSegmentMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CorporateNonSegmentMember", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationSegmentAssetsDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationStatementOfOperationsDetails" ], "lang": { "en-us": { "role": { "label": "Corporate, Non-Segment [Member]", "terseLabel": "Corporate, Non-Segment", "documentation": "Corporate headquarters or functional department that may not earn revenues or may earn revenues that are only incidental to the activities of the entity and is not considered an operating segment." } } }, "auth_ref": [ "r11", "r249", "r250", "r251", "r252", "r258", "r784" ] }, "us-gaap_CostDirectLabor": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CostDirectLabor", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": { "parentTag": "us-gaap_CostOfRevenue", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Cost of Services, Direct Labor", "terseLabel": "Salaries and wages", "documentation": "Cost of labor directly related to good produced and service rendered. Includes, but is not limited to, payroll cost and equity-based compensation." } } }, "auth_ref": [ "r772" ] }, "us-gaap_CostOfRevenue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CostOfRevenue", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": { "parentTag": "us-gaap_GrossProfit", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Cost of Revenue", "totalLabel": "Total direct costs of contract revenue", "documentation": "The aggregate cost of goods produced and sold and services rendered during the reporting period." } } }, "auth_ref": [ "r100", "r187", "r268", "r299", "r300", "r302", "r303", "r304", "r306", "r308", "r310", "r311", "r453", "r801" ] }, "us-gaap_CostOfRevenueAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CostOfRevenueAbstract", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Cost of Revenue [Abstract]", "terseLabel": "Direct costs of contract revenue (inclusive of directly related depreciation and amortization):" } } }, "auth_ref": [] }, "us-gaap_CostOfSalesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CostOfSalesMember", "presentation": [ "http://www.willdan.com/role/DisclosureRevenuesGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Cost of Sales [Member]", "terseLabel": "Cost of Sales", "documentation": "Primary financial statement caption encompassing cost of sales." } } }, "auth_ref": [] }, "wldn_CostOfSubcontractorServicesAndOtherDirectCosts": { "xbrltype": "monetaryItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "CostOfSubcontractorServicesAndOtherDirectCosts", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": { "parentTag": "us-gaap_CostOfRevenue", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "documentation": "Subcontractor service costs and other direct costs incurred directly related to services rendered by an entity during the reporting period.", "label": "Cost of Subcontractor Services and Other Direct Costs", "terseLabel": "Subcontractor services and other direct costs" } } }, "auth_ref": [] }, "dei_CoverAbstract": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "CoverAbstract", "lang": { "en-us": { "role": { "label": "Cover [Abstract]", "documentation": "Cover page." } } }, "auth_ref": [] }, "wldn_CreditAgreement2023Member": { "xbrltype": "domainItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "CreditAgreement2023Member", "presentation": [ "http://www.willdan.com/role/DisclosureDebtObligationsCompositionDetails", "http://www.willdan.com/role/DisclosureDebtObligationsNewCreditFacilitiesDetails" ], "lang": { "en-us": { "role": { "documentation": "Credit Agreement 2023 [Member]", "label": "Credit Agreement 2023 [Member]", "verboseLabel": "New Credit Facilities" } } }, "auth_ref": [] }, "dei_CurrentFiscalYearEndDate": { "xbrltype": "gMonthDayItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "CurrentFiscalYearEndDate", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Current Fiscal Year End Date", "documentation": "End date of current fiscal year in the format --MM-DD." } } }, "auth_ref": [] }, "us-gaap_CustomerConcentrationRiskMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CustomerConcentrationRiskMember", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails" ], "lang": { "en-us": { "role": { "label": "Customer Concentration Risk [Member]", "terseLabel": "Customer Concentration Risk", "documentation": "Reflects the percentage that revenues in the period from one or more significant customers is to net revenues, as defined by the entity, such as total net revenues, product line revenues, segment revenues. The risk is the materially adverse effects of loss of a significant customer." } } }, "auth_ref": [ "r35", "r264" ] }, "us-gaap_CustomerRelationshipsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CustomerRelationshipsMember", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsAmortizationPeriodDetails", "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsGrossAmountsAndAccumulatedAmortizationDetails" ], "lang": { "en-us": { "role": { "label": "Customer Relationships [Member]", "terseLabel": "Customer Relationships", "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships." } } }, "auth_ref": [ "r59" ] }, "us-gaap_DebtDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtDisclosureAbstract", "lang": { "en-us": { "role": { "label": "DEBT OBLIGATIONS" } } }, "auth_ref": [] }, "us-gaap_DebtDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtDisclosureTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureDebtObligations" ], "lang": { "en-us": { "role": { "label": "Debt Disclosure [Text Block]", "terseLabel": "DEBT OBLIGATIONS", "documentation": "The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants." } } }, "auth_ref": [ "r115", "r186", "r312", "r318", "r319", "r320", "r321", "r322", "r323", "r328", "r335", "r336", "r338" ] }, "us-gaap_DebtInstrumentAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtInstrumentAxis", "presentation": [ "http://www.willdan.com/role/DisclosureDebtObligationsCompositionDetails", "http://www.willdan.com/role/DisclosureDebtObligationsNewCreditFacilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Debt Instrument [Axis]", "documentation": "Information by type of debt instrument, including, but not limited to, draws against credit facilities." } } }, "auth_ref": [ "r13", "r87", "r88", "r125", "r126", "r189", "r313", "r314", "r315", "r316", "r317", "r319", "r324", "r325", "r326", "r327", "r329", "r330", "r331", "r332", "r333", "r334", "r464", "r646", "r647", "r648", "r649", "r650", "r775" ] }, "us-gaap_DebtInstrumentCarryingAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtInstrumentCarryingAmount", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureDebtObligationsCompositionDetails": { "parentTag": "us-gaap_LongTermDebt", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureDebtObligationsCompositionDetails" ], "lang": { "en-us": { "role": { "label": "Long-term Debt, Gross", "terseLabel": "Total debt", "documentation": "Amount, before unamortized (discount) premium and debt issuance costs, of long-term debt. Includes, but is not limited to, notes payable, bonds payable, commercial loans, mortgage loans, convertible debt, subordinated debt and other types of debt." } } }, "auth_ref": [ "r13", "r126", "r339" ] }, "wldn_DebtInstrumentCompositeInterestRate": { "xbrltype": "percentItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "DebtInstrumentCompositeInterestRate", "presentation": [ "http://www.willdan.com/role/DisclosureDebtObligationsNewCreditFacilitiesDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents the percentage of composite interest rate of debt instrument.", "label": "Debt Instrument Composite Interest Rate", "terseLabel": "Composite interest rate (as a percent)" } } }, "auth_ref": [] }, "us-gaap_DebtInstrumentLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtInstrumentLineItems", "presentation": [ "http://www.willdan.com/role/DisclosureDebtObligationsCompositionDetails", "http://www.willdan.com/role/DisclosureDebtObligationsNewCreditFacilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Debt Instrument [Line Items]", "terseLabel": "Debt Obligations", "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": [ "r189", "r313", "r314", "r315", "r316", "r317", "r319", "r324", "r325", "r326", "r327", "r329", "r330", "r331", "r332", "r333", "r334", "r337", "r464", "r646", "r647", "r648", "r649", "r650", "r775" ] }, "us-gaap_DebtInstrumentNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtInstrumentNameDomain", "presentation": [ "http://www.willdan.com/role/DisclosureDebtObligationsCompositionDetails", "http://www.willdan.com/role/DisclosureDebtObligationsNewCreditFacilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Debt Instrument, Name [Domain]", "documentation": "The name for the particular debt instrument or borrowing that distinguishes it from other debt instruments or borrowings, including draws against credit facilities." } } }, "auth_ref": [ "r19", "r189", "r313", "r314", "r315", "r316", "r317", "r319", "r324", "r325", "r326", "r327", "r329", "r330", "r331", "r332", "r333", "r334", "r464", "r646", "r647", "r648", "r649", "r650", "r775" ] }, "us-gaap_DebtInstrumentTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtInstrumentTable", "presentation": [ "http://www.willdan.com/role/DisclosureDebtObligationsCompositionDetails", "http://www.willdan.com/role/DisclosureDebtObligationsNewCreditFacilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Long-term Debt Instruments [Table]", "documentation": "A table or schedule providing information pertaining to long-term debt instruments or arrangements, including identification, terms, features, collateral requirements and other information necessary to a fair presentation. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the company, if longer." } } }, "auth_ref": [ "r19", "r52", "r53", "r80", "r81", "r83", "r85", "r116", "r117", "r189", "r313", "r314", "r315", "r316", "r317", "r319", "r324", "r325", "r326", "r327", "r329", "r330", "r331", "r332", "r333", "r334", "r337", "r464", "r646", "r647", "r648", "r649", "r650", "r775" ] }, "us-gaap_DeferredFinanceCostsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredFinanceCostsNet", "crdr": "debit", "calculation": { "http://www.willdan.com/role/DisclosureDebtObligationsCompositionDetails": { "parentTag": "us-gaap_LongTermDebt", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureDebtObligationsCompositionDetails" ], "lang": { "en-us": { "role": { "label": "Debt Issuance Costs, Net", "negatedLabel": "Issuance costs and debt discounts", "documentation": "Amount, after accumulated amortization, of debt issuance costs. Includes, but is not limited to, legal, accounting, underwriting, printing, and registration costs." } } }, "auth_ref": [ "r82", "r804" ] }, "us-gaap_DeferredIncomeTaxAssetsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredIncomeTaxAssetsNet", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 7.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Deferred Income Tax Assets, Net", "terseLabel": "Deferred income taxes, net", "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting." } } }, "auth_ref": [ "r403", "r404" ] }, "us-gaap_DeferredIncomeTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredIncomeTaxExpenseBenefit", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Deferred Income Tax Expense (Benefit)", "terseLabel": "Deferred income taxes, net", "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations." } } }, "auth_ref": [ "r5", "r119", "r138", "r419", "r420", "r777" ] }, "us-gaap_DeferredTaxAssetsValuationAllowance": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredTaxAssetsValuationAllowance", "crdr": "credit", "presentation": [ "http://www.willdan.com/role/DisclosureIncomeTaxesValuationAllowanceDetails" ], "lang": { "en-us": { "role": { "label": "Deferred Tax Assets, Valuation Allowance", "terseLabel": "Valuation allowance", "documentation": "Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized." } } }, "auth_ref": [ "r410" ] }, "us-gaap_DefinedBenefitPlanContributionsByEmployer": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DefinedBenefitPlanContributionsByEmployer", "crdr": "debit", "presentation": [ "http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntitiesEmployeeBenefitPlansDetails" ], "lang": { "en-us": { "role": { "label": "Defined Benefit Plan, Plan Assets, Contributions by Employer", "terseLabel": "Employer matching contributions", "documentation": "Amount of contribution received by defined benefit plan from employer which increases plan assets." } } }, "auth_ref": [ "r357", "r359", "r360", "r659", "r660", "r661", "r662" ] }, "us-gaap_DefinedContributionPlanDisclosureLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DefinedContributionPlanDisclosureLineItems", "presentation": [ "http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntitiesEmployeeBenefitPlansDetails" ], "lang": { "en-us": { "role": { "label": "Defined Contribution Plan Disclosure [Line Items]", "terseLabel": "Employee Benefit Plans", "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": [ "r361" ] }, "wldn_DefinedContributionPlanEmployerMatchingContributionAgeOfEmployees": { "xbrltype": "integerItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "DefinedContributionPlanEmployerMatchingContributionAgeOfEmployees", "presentation": [ "http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntitiesEmployeeBenefitPlansDetails" ], "lang": { "en-us": { "role": { "documentation": "Defined Contribution Plan, Employer Matching Contribution, Age of Employees", "label": "Defined Contribution Plan, Employer Matching Contribution, Age of Employees", "terseLabel": "Attained age" } } }, "auth_ref": [] }, "wldn_DefinedContributionPlanEmployerMatchingContributionMaximumAmountPerEmployee": { "xbrltype": "monetaryItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "DefinedContributionPlanEmployerMatchingContributionMaximumAmountPerEmployee", "crdr": "debit", "presentation": [ "http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntitiesEmployeeBenefitPlansDetails" ], "lang": { "en-us": { "role": { "documentation": "Defined Contribution Plan, Employer Matching Contribution, Maximum Amount Per Employee", "label": "Defined Contribution Plan, Employer Matching Contribution, Maximum Amount Per Employee", "terseLabel": "Maximum employer contribution per employee" } } }, "auth_ref": [] }, "us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DefinedContributionPlanEmployerMatchingContributionPercent", "presentation": [ "http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntitiesEmployeeBenefitPlansDetails" ], "lang": { "en-us": { "role": { "label": "Defined Contribution Plan, Employer Matching Contribution, Percent of Employees' Gross Pay", "terseLabel": "Defined contribution plan, employer matching contribution, percent of employees' gross pay (as a percent)", "documentation": "Percentage of employees' gross pay for which the employer contributes a matching contribution to a defined contribution plan." } } }, "auth_ref": [] }, "us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DefinedContributionPlanEmployerMatchingContributionPercentOfMatch", "presentation": [ "http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntitiesEmployeeBenefitPlansDetails" ], "lang": { "en-us": { "role": { "label": "Defined Contribution Plan, Employer Matching Contribution, Percent of Match", "terseLabel": "Defined contribution plan, employer matching contribution, percent of match (as a percent)", "documentation": "Percentage employer matches of the employee's percentage contribution matched." } } }, "auth_ref": [] }, "wldn_DefinedContributionPlanEmployerMatchingContributionServicePeriod": { "xbrltype": "durationItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "DefinedContributionPlanEmployerMatchingContributionServicePeriod", "presentation": [ "http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntitiesEmployeeBenefitPlansDetails" ], "lang": { "en-us": { "role": { "documentation": "Period of services eligible to participate in defined contribution plan.", "label": "Defined Contribution Plan, Employer Matching Contribution, Service Period", "terseLabel": "Service period" } } }, "auth_ref": [] }, "us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent", "presentation": [ "http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntitiesEmployeeBenefitPlansDetails" ], "lang": { "en-us": { "role": { "label": "Defined Contribution Plan, Maximum Annual Contributions Per Employee, Percent", "terseLabel": "Maximum employee contribution as a percentage of compensation under 401(k) Plan (as a percent)", "documentation": "Maximum percentage of employee gross pay the employee may contribute to a defined contribution plan." } } }, "auth_ref": [] }, "wldn_DefinedContributionPlanMember": { "xbrltype": "domainItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "DefinedContributionPlanMember", "presentation": [ "http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntitiesEmployeeBenefitPlansDetails" ], "lang": { "en-us": { "role": { "documentation": "Defined Contribution Plan [Member]", "label": "Defined Contribution Plan [Member]", "terseLabel": "Defined Contribution Plan" } } }, "auth_ref": [] }, "us-gaap_DefinedContributionPlanTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DefinedContributionPlanTable", "presentation": [ "http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntitiesEmployeeBenefitPlansDetails" ], "lang": { "en-us": { "role": { "label": "Defined Contribution Plan [Table]", "documentation": "Disclosure of information about defined contribution pension plans or defined contribution other postretirement plans, separately for pension plans and other postretirement benefit plans." } } }, "auth_ref": [ "r361" ] }, "us-gaap_DefinedContributionPlanTaxStatusExtensibleList": { "xbrltype": "enumerationSetItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DefinedContributionPlanTaxStatusExtensibleList", "presentation": [ "http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntitiesEmployeeBenefitPlansDetails" ], "lang": { "en-us": { "role": { "label": "Defined Contribution Plan, Tax Status [Extensible Enumeration]", "terseLabel": "Defined Contribution Plan, Tax Status", "documentation": "Indicates tax status of defined contribution plan designed to provide retirement benefits." } } }, "auth_ref": [] }, "us-gaap_DepreciationAndAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DepreciationAndAmortization", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": { "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationStatementOfOperationsDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Depreciation, Depletion and Amortization, Nonproduction", "terseLabel": "Depreciation and amortization", "documentation": "The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production." } } }, "auth_ref": [ "r5", "r50" ] }, "us-gaap_DepreciationAndAmortizationAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DepreciationAndAmortizationAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetDepreciationAndAmortizationExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Depreciation, Depletion and Amortization [Abstract]" } } }, "auth_ref": [] }, "us-gaap_DepreciationDepletionAndAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DepreciationDepletionAndAmortization", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Depreciation, Depletion and Amortization", "terseLabel": "Depreciation and amortization", "documentation": "The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets." } } }, "auth_ref": [ "r5", "r240" ] }, "us-gaap_DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration": { "xbrltype": "enumerationSetItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsFairValueDetails" ], "lang": { "en-us": { "role": { "label": "Derivative Asset, Current, Statement of Financial Position [Extensible Enumeration]", "terseLabel": "Derivative Asset, Current, Statement of Financial Position", "documentation": "Indicates line item in statement of financial position that includes derivative asset classified as current." } } }, "auth_ref": [ "r432" ] }, "us-gaap_DerivativeAssetsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DerivativeAssetsAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsFairValueDetails" ], "lang": { "en-us": { "role": { "label": "Derivative Asset [Abstract]", "terseLabel": "Derivative Assets" } } }, "auth_ref": [] }, "us-gaap_DerivativeAssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DerivativeAssetsCurrent", "crdr": "debit", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsFairValueDetails" ], "lang": { "en-us": { "role": { "label": "Derivative Asset, Current", "terseLabel": "Derivative asset, current", "documentation": "Fair value, after the effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset, expected to be settled within one year or normal operating cycle, if longer. Includes assets not subject to a master netting arrangement and not elected to be offset." } } }, "auth_ref": [ "r163" ] }, "us-gaap_DerivativeAssetsLiabilitiesAtFairValueNetByBalanceSheetClassificationAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DerivativeAssetsLiabilitiesAtFairValueNetByBalanceSheetClassificationAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsFairValueDetails" ], "lang": { "en-us": { "role": { "label": "Derivative Assets (Liabilities), at Fair Value, Net, by Balance Sheet Classification [Abstract]" } } }, "auth_ref": [] }, "us-gaap_DerivativeContractTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DerivativeContractTypeDomain", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Derivative Contract [Domain]", "documentation": "Financial instrument or contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset." } } }, "auth_ref": [ "r553", "r555", "r569", "r570", "r571", "r572", "r573", "r574", "r575", "r577", "r578", "r579", "r580", "r590", "r591", "r592", "r593", "r596", "r597", "r598", "r599", "r612", "r614", "r617", "r619", "r669", "r671" ] }, "us-gaap_DerivativeFixedInterestRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DerivativeFixedInterestRate", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Derivative, Fixed Interest Rate", "terseLabel": "Fixed rate (as a percent)", "documentation": "Fixed interest rate related to the interest rate derivative." } } }, "auth_ref": [] }, "us-gaap_DerivativeInceptionDates": { "xbrltype": "dateItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DerivativeInceptionDates", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Derivative, Inception Date", "terseLabel": "Derivative, inception date", "documentation": "Date the entity entered into the derivative contract, in YYYY-MM-DD format." } } }, "auth_ref": [] }, "us-gaap_DerivativeInstrumentRiskAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DerivativeInstrumentRiskAxis", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Derivative Instrument [Axis]", "documentation": "Information by type of derivative contract." } } }, "auth_ref": [ "r69", "r71", "r72", "r74", "r553", "r555", "r569", "r570", "r571", "r572", "r573", "r574", "r575", "r577", "r578", "r579", "r580", "r590", "r591", "r592", "r593", "r596", "r597", "r598", "r599", "r612", "r614", "r617", "r619", "r639", "r669", "r671" ] }, "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract", "lang": { "en-us": { "role": { "label": "DERIVATIVE FINANCIAL INSTRUMENTS" } } }, "auth_ref": [] }, "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstruments" ], "lang": { "en-us": { "role": { "label": "Derivative Instruments and Hedging Activities Disclosure [Text Block]", "terseLabel": "DERIVATIVE FINANCIAL INSTRUMENTS", "documentation": "The entire disclosure for derivative instruments and hedging activities including, but not limited to, risk management strategies, non-hedging derivative instruments, assets, liabilities, revenue and expenses, and methodologies and assumptions used in determining the amounts." } } }, "auth_ref": [ "r122", "r435", "r445" ] }, "us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DerivativeInstrumentsGainLossByHedgingRelationshipAxis", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Hedging Relationship [Axis]", "documentation": "Information by type of hedging relationship." } } }, "auth_ref": [ "r9", "r69", "r72" ] }, "us-gaap_DerivativeInstrumentsGainLossReclassificationFromAccumulatedOCIToIncomeEstimateOfTimeToTransfer1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DerivativeInstrumentsGainLossReclassificationFromAccumulatedOCIToIncomeEstimateOfTimeToTransfer1", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsCashFlowHedgeEffectivenessDetails" ], "lang": { "en-us": { "role": { "label": "Derivative Instruments, Gain (Loss) Reclassification from Accumulated OCI to Income, Estimate of Time to Transfer", "terseLabel": "Derivative instruments, gain (loss) reclassification from accumulated OCI to income, estimate of time to transfer", "documentation": "Estimated period for the anticipated transfer of gain (loss), net, from accumulated other comprehensive income into earnings, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [] }, "us-gaap_DerivativeInstrumentsGainLossReclassificationFromAccumulatedOCIToIncomeEstimatedNetAmountToBeTransferred": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DerivativeInstrumentsGainLossReclassificationFromAccumulatedOCIToIncomeEstimatedNetAmountToBeTransferred", "crdr": "credit", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsCashFlowHedgeEffectivenessDetails" ], "lang": { "en-us": { "role": { "label": "Derivative Instruments, Gain (Loss) Reclassification from Accumulated OCI to Income, Estimated Net Amount to be Transferred", "terseLabel": "Derivative instruments, gain (loss) reclassification from accumulated OCI to income, estimated net amount to be transferred", "documentation": "The estimated value of gains (losses), net anticipated to be transferred in the future from accumulated other comprehensive income into earnings." } } }, "auth_ref": [ "r444" ] }, "us-gaap_DerivativeLiabilitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DerivativeLiabilitiesAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsFairValueDetails" ], "lang": { "en-us": { "role": { "label": "Derivative Liability [Abstract]", "terseLabel": "Derivative Liabilities" } } }, "auth_ref": [] }, "us-gaap_DerivativeLiabilitiesNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DerivativeLiabilitiesNoncurrent", "crdr": "credit", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsFairValueDetails" ], "lang": { "en-us": { "role": { "label": "Derivative Liability, Noncurrent", "negatedLabel": "Derivative liability, noncurrent", "documentation": "Fair value, after the effects of master netting arrangements, of a financial liability or contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset, expected to be settled after one year or the normal operating cycle, if longer. Includes assets not subject to a master netting arrangement and not elected to be offset." } } }, "auth_ref": [ "r163" ] }, "us-gaap_DerivativeLiabilityNoncurrentStatementOfFinancialPositionExtensibleEnumeration": { "xbrltype": "enumerationSetItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DerivativeLiabilityNoncurrentStatementOfFinancialPositionExtensibleEnumeration", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsFairValueDetails" ], "lang": { "en-us": { "role": { "label": "Derivative Liability, Noncurrent, Statement of Financial Position [Extensible Enumeration]", "terseLabel": "Derivative Liability, Noncurrent, Statement of Financial Position", "documentation": "Indicates line item in statement of financial position that includes derivative liability classified as noncurrent." } } }, "auth_ref": [ "r432" ] }, "us-gaap_DerivativeLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DerivativeLineItems", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Derivative [Line Items]", "terseLabel": "Derivative Financial Instruments", "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": [ "r445" ] }, "us-gaap_DerivativeMaturityDates": { "xbrltype": "dateItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DerivativeMaturityDates", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Derivative, Contract End Date", "terseLabel": "Derivative, contract end date", "documentation": "Date derivative contract ends, in YYYY-MM-DD format." } } }, "auth_ref": [ "r554", "r555", "r612", "r613", "r615", "r616", "r618", "r671" ] }, "us-gaap_DerivativeNotionalAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DerivativeNotionalAmount", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Derivative, Notional Amount", "terseLabel": "Notional amount", "documentation": "Nominal or face amount used to calculate payment on derivative." } } }, "auth_ref": [ "r866", "r867" ] }, "us-gaap_DerivativeTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DerivativeTable", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Derivative [Table]", "documentation": "Schedule that describes and identifies a derivative or group of derivatives on a disaggregated basis, such as for individual instruments, or small groups of similar instruments. May include a combination of the type of instrument, risks being hedged, notional amount, hedge designation, related hedged item, inception date, maturity date, or other relevant item." } } }, "auth_ref": [ "r9", "r64", "r65", "r66", "r68", "r70", "r72", "r75", "r76", "r77", "r445" ] }, "us-gaap_DevelopedTechnologyRightsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DevelopedTechnologyRightsMember", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsAmortizationPeriodDetails", "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsGrossAmountsAndAccumulatedAmortizationDetails" ], "lang": { "en-us": { "role": { "label": "Developed Technology Rights [Member]", "terseLabel": "Developed Technology Rights", "documentation": "Rights to developed technology, which can include the right to develop, use, market, sell, or offer for sale products, compounds, or intellectual property." } } }, "auth_ref": [ "r120" ] }, "us-gaap_DisaggregationOfRevenueLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DisaggregationOfRevenueLineItems", "presentation": [ "http://www.willdan.com/role/DisclosureRevenuesGeneralInformationDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Disaggregation of Revenue [Line Items]", "terseLabel": "Revenue", "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": [ "r354", "r652", "r653", "r654", "r655", "r656", "r657", "r658" ] }, "us-gaap_DisaggregationOfRevenueTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DisaggregationOfRevenueTable", "presentation": [ "http://www.willdan.com/role/DisclosureRevenuesGeneralInformationDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Disaggregation of Revenue [Table]", "documentation": "Disclosure of information about disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor." } } }, "auth_ref": [ "r354", "r652", "r653", "r654", "r655", "r656", "r657", "r658" ] }, "us-gaap_DisaggregationOfRevenueTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DisaggregationOfRevenueTableTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationTables" ], "lang": { "en-us": { "role": { "label": "Schedule of disaggregation of revenue", "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": [ "r805" ] }, "dei_DocumentFiscalPeriodFocus": { "xbrltype": "fiscalPeriodItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentFiscalPeriodFocus", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Fiscal Period Focus", "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY." } } }, "auth_ref": [] }, "dei_DocumentFiscalYearFocus": { "xbrltype": "gYearItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentFiscalYearFocus", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Fiscal Year Focus", "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006." } } }, "auth_ref": [] }, "dei_DocumentPeriodEndDate": { "xbrltype": "dateItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentPeriodEndDate", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Period End Date", "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD." } } }, "auth_ref": [] }, "dei_DocumentQuarterlyReport": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentQuarterlyReport", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Quarterly Report", "documentation": "Boolean flag that is true only for a form used as an quarterly report." } } }, "auth_ref": [ "r685" ] }, "dei_DocumentTransitionReport": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentTransitionReport", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Transition Report", "documentation": "Boolean flag that is true only for a form used as a transition report." } } }, "auth_ref": [ "r718" ] }, "dei_DocumentType": { "xbrltype": "submissionTypeItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentType", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Type", "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'." } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareAbstract", "lang": { "en-us": { "role": { "label": "EARNINGS PER SHARE (EPS)" } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareBasic": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareBasic", "presentation": [ "http://www.willdan.com/role/DisclosureEarningsPerShareEpsComputationDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share, Basic", "terseLabel": "Basic (in dollars per share)", "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": [ "r178", "r199", "r200", "r201", "r202", "r203", "r210", "r213", "r223", "r224", "r225", "r229", "r448", "r449", "r503", "r518", "r641" ] }, "us-gaap_EarningsPerShareDiluted": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareDiluted", "presentation": [ "http://www.willdan.com/role/DisclosureEarningsPerShareEpsComputationDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share, Diluted", "terseLabel": "Diluted (in dollars per share)", "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": [ "r178", "r199", "r200", "r201", "r202", "r203", "r213", "r223", "r224", "r225", "r229", "r448", "r449", "r503", "r518", "r641" ] }, "us-gaap_EarningsPerShareDilutedAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareDilutedAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureEarningsPerShareEpsComputationDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share, Diluted [Abstract]", "terseLabel": "Earnings (Loss) per share:" } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareDilutedOtherDisclosuresAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareDilutedOtherDisclosuresAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureEarningsPerShareEpsAntidilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share, Diluted, Other Disclosure [Abstract]", "terseLabel": "Antidilutive securities" } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureEarningsPerShareEps" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share [Text Block]", "terseLabel": "EARNINGS PER SHARE (EPS)", "documentation": "The entire disclosure for earnings per share." } } }, "auth_ref": [ "r209", "r226", "r227", "r228" ] }, "us-gaap_EmployeeStockOptionMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EmployeeStockOptionMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Employee Stock Option [Member]", "terseLabel": "Employee Stock Option", "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time." } } }, "auth_ref": [] }, "wldn_EmployeeWithholdings": { "xbrltype": "monetaryItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "EmployeeWithholdings", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataAccruedLiabilitiesDetails": { "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataAccruedLiabilitiesDetails" ], "lang": { "en-us": { "role": { "documentation": "The carrying value as of the balance sheet of the withholding of payables of employees.", "label": "Employee Withholdings", "terseLabel": "Employee withholdings" } } }, "auth_ref": [] }, "wldn_EnergyMember": { "xbrltype": "domainItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "EnergyMember", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationDisaggregationOfRevenueDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationSegmentAssetsDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationStatementOfOperationsDetails", "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataGoodwillDetails" ], "lang": { "en-us": { "role": { "documentation": "Energy [Member]", "label": "Energy [Member]", "terseLabel": "Energy" } } }, "auth_ref": [] }, "wldn_EngineeringConsultingServicesMember": { "xbrltype": "domainItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "EngineeringConsultingServicesMember", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationDisaggregationOfRevenueDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationSegmentAssetsDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationStatementOfOperationsDetails", "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataGoodwillDetails" ], "lang": { "en-us": { "role": { "documentation": "Engineering Consulting Services [Member]", "label": "Engineering Consulting Services [Member]", "terseLabel": "Engineering and Consulting" } } }, "auth_ref": [] }, "dei_EntitiesTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntitiesTable", "presentation": [ "http://www.willdan.com/role/DisclosureOrganizationAndOperationsOfCompanyFiscalYearsDetails" ], "lang": { "en-us": { "role": { "label": "Entities [Table]", "documentation": "Container to assemble all relevant information about each entity associated with the document instance" } } }, "auth_ref": [] }, "dei_EntityAddressAddressLine1": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressAddressLine1", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, Address Line One", "documentation": "Address Line 1 such as Attn, Building Name, Street Name" } } }, "auth_ref": [] }, "dei_EntityAddressAddressLine2": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressAddressLine2", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, Address Line Two", "documentation": "Address Line 2 such as Street or Suite number" } } }, "auth_ref": [] }, "dei_EntityAddressCityOrTown": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressCityOrTown", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, City or Town", "documentation": "Name of the City or Town" } } }, "auth_ref": [] }, "dei_EntityAddressPostalZipCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressPostalZipCode", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, Postal Zip Code", "documentation": "Code for the postal or zip code" } } }, "auth_ref": [] }, "dei_EntityAddressStateOrProvince": { "xbrltype": "stateOrProvinceItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressStateOrProvince", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, State or Province", "documentation": "Name of the state or province." } } }, "auth_ref": [] }, "dei_EntityCentralIndexKey": { "xbrltype": "centralIndexKeyItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityCentralIndexKey", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Central Index Key", "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK." } } }, "auth_ref": [ "r683" ] }, "dei_EntityCommonStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityCommonStockSharesOutstanding", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Common Stock, Shares Outstanding", "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument." } } }, "auth_ref": [] }, "dei_EntityCurrentReportingStatus": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityCurrentReportingStatus", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Current Reporting Status", "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure." } } }, "auth_ref": [] }, "dei_EntityEmergingGrowthCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityEmergingGrowthCompany", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Emerging Growth Company", "documentation": "Indicate if registrant meets the emerging growth company criteria." } } }, "auth_ref": [ "r683" ] }, "dei_EntityFileNumber": { "xbrltype": "fileNumberItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityFileNumber", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity File Number", "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen." } } }, "auth_ref": [] }, "dei_EntityFilerCategory": { "xbrltype": "filerCategoryItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityFilerCategory", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Filer Category", "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure." } } }, "auth_ref": [ "r683" ] }, "dei_EntityIncorporationStateCountryCode": { "xbrltype": "edgarStateCountryItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityIncorporationStateCountryCode", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Incorporation, State or Country Code", "documentation": "Two-character EDGAR code representing the state or country of incorporation." } } }, "auth_ref": [] }, "dei_EntityInformationLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityInformationLineItems", "presentation": [ "http://www.willdan.com/role/DisclosureOrganizationAndOperationsOfCompanyFiscalYearsDetails" ], "lang": { "en-us": { "role": { "label": "Entity Information [Line Items]", "terseLabel": "Entity Information", "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": [] }, "dei_EntityInteractiveDataCurrent": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityInteractiveDataCurrent", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Interactive Data Current", "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files)." } } }, "auth_ref": [ "r757" ] }, "dei_EntityRegistrantName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityRegistrantName", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Registrant Name", "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC." } } }, "auth_ref": [ "r683" ] }, "dei_EntityShellCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityShellCompany", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Shell Company", "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act." } } }, "auth_ref": [ "r683" ] }, "dei_EntitySmallBusiness": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntitySmallBusiness", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Small Business", "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)." } } }, "auth_ref": [ "r683" ] }, "dei_EntityTaxIdentificationNumber": { "xbrltype": "employerIdItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityTaxIdentificationNumber", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Tax Identification Number", "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS." } } }, "auth_ref": [ "r683" ] }, "us-gaap_EquityComponentDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EquityComponentDomain", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsAccumulatedOtherComprehensiveIncomeLossDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Equity Component [Domain]", "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc." } } }, "auth_ref": [ "r8", "r144", "r173", "r174", "r175", "r190", "r191", "r192", "r196", "r204", "r206", "r230", "r269", "r272", "r342", "r399", "r400", "r401", "r412", "r413", "r437", "r438", "r439", "r440", "r441", "r443", "r447", "r457", "r459", "r460", "r461", "r462", "r463", "r486", "r532", "r533", "r534", "r548", "r602" ] }, "ecd_EquityValuationAssumptionDifferenceFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "EquityValuationAssumptionDifferenceFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Equity Valuation Assumption Difference, Footnote [Text Block]", "terseLabel": "Equity Valuation Assumption Difference, Footnote" } } }, "auth_ref": [ "r726" ] }, "ecd_ErrCompAnalysisTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ErrCompAnalysisTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Erroneous Compensation Analysis [Text Block]", "terseLabel": "Erroneous Compensation Analysis" } } }, "auth_ref": [ "r690", "r701", "r711", "r736" ] }, "ecd_ErrCompRecoveryTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ErrCompRecoveryTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Erroneously Awarded Compensation Recovery [Table]", "terseLabel": "Erroneously Awarded Compensation Recovery" } } }, "auth_ref": [ "r687", "r698", "r708", "r733" ] }, "ecd_ExecutiveCategoryAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ExecutiveCategoryAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Executive Category [Axis]", "terseLabel": "Executive Category:" } } }, "auth_ref": [ "r732" ] }, "us-gaap_FinanceLeaseInterestExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseInterestExpense", "crdr": "debit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesLeaseExpenseDetails": { "parentTag": "us-gaap_LeaseCost", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesLeaseExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Finance Lease, Interest Expense", "verboseLabel": "Interest on lease liabilities", "documentation": "Amount of interest expense on finance lease liability." } } }, "auth_ref": [ "r470", "r477", "r666" ] }, "us-gaap_FinanceLeaseInterestPaymentOnLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseInterestPaymentOnLiability", "crdr": "credit", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesSupplementalCashFlowInformationDetails" ], "lang": { "en-us": { "role": { "label": "Finance Lease, Interest Payment on Liability", "terseLabel": "Operating cash flow from finance leases", "documentation": "Amount of interest paid on finance lease liability." } } }, "auth_ref": [ "r472", "r480" ] }, "us-gaap_FinanceLeaseLiabilitiesGrossDifferenceAmountAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilitiesGrossDifferenceAmountAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesGrossDifferenceDetails" ], "lang": { "en-us": { "role": { "label": "Finance Lease Liabilities, Gross Difference, Amount [Abstract]", "terseLabel": "Finance" } } }, "auth_ref": [] }, "us-gaap_FinanceLeaseLiabilitiesPaymentsDueAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilitiesPaymentsDueAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Finance Lease Liabilities, Payments, Due [Abstract]", "terseLabel": "Finance" } } }, "auth_ref": [] }, "us-gaap_FinanceLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiability", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesGrossDifferenceDetails": { "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 2.0 }, "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails", "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesGrossDifferenceDetails" ], "lang": { "en-us": { "role": { "label": "Finance Lease, Liability", "totalLabel": "Total finance lease obligations", "verboseLabel": "Total finance lease obligations", "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease." } } }, "auth_ref": [ "r468", "r484" ] }, "us-gaap_FinanceLeaseLiabilityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilityAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails" ], "lang": { "en-us": { "role": { "label": "Finance Lease Liability [Abstract]", "terseLabel": "Finance lease obligations" } } }, "auth_ref": [] }, "us-gaap_FinanceLeaseLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilityCurrent", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails": { "parentTag": "us-gaap_FinanceLeaseLiability", "weight": 1.0, "order": 1.0 }, "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails", "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesGrossDifferenceDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Finance Lease, Liability, Current", "netLabel": "Less: Current obligations", "terseLabel": "Finance lease obligations", "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as current." } } }, "auth_ref": [ "r468" ] }, "us-gaap_FinanceLeaseLiabilityMaturityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilityMaturityTableTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "label": "Finance Lease, Liability, Maturity [Table Text Block]", "terseLabel": "Summary of the Maturities of Finance Lease Liabilities", "documentation": "Tabular disclosure of undiscounted cash flows of finance lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to finance lease liability recognized in statement of financial position." } } }, "auth_ref": [ "r875" ] }, "us-gaap_FinanceLeaseLiabilityNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilityNoncurrent", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails": { "parentTag": "us-gaap_FinanceLeaseLiability", "weight": 1.0, "order": 2.0 }, "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails", "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesGrossDifferenceDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Finance Lease, Liability, Noncurrent", "netLabel": "Noncurrent lease obligations", "terseLabel": "Finance lease obligations, less current portion", "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as noncurrent." } } }, "auth_ref": [ "r468" ] }, "us-gaap_FinanceLeaseLiabilityPaymentsDue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilityPaymentsDue", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesMaturitiesOfLeaseLiabilitiesDetails": { "parentTag": null, "weight": null, "order": null, "root": true }, "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesGrossDifferenceDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesGrossDifferenceDetails", "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Finance Lease, Liability, Payments, Due", "totalLabel": "Total lease payments", "documentation": "Amount of lessee's undiscounted obligation for lease payments for finance lease." } } }, "auth_ref": [ "r484" ] }, "us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilityPaymentsDueNextTwelveMonths", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesMaturitiesOfLeaseLiabilitiesDetails": { "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Finance Lease, Liability, Payments, Due Next Twelve Months", "terseLabel": "2025", "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r484" ] }, "us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilityPaymentsDueYearFour", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesMaturitiesOfLeaseLiabilitiesDetails": { "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Finance Lease, Liability, Payments, Due Year Four", "terseLabel": "2028", "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r484" ] }, "us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilityPaymentsDueYearThree", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesMaturitiesOfLeaseLiabilitiesDetails": { "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Finance Lease, Liability, Payments, Due Year Three", "terseLabel": "2027", "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r484" ] }, "us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilityPaymentsDueYearTwo", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesMaturitiesOfLeaseLiabilitiesDetails": { "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Finance Lease, Liability, Payments, Due Year Two", "terseLabel": "2026", "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r484" ] }, "us-gaap_FinanceLeaseLiabilityPaymentsRemainderOfFiscalYear": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilityPaymentsRemainderOfFiscalYear", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesMaturitiesOfLeaseLiabilitiesDetails": { "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Finance Lease, Liability, Payments, Remainder of Fiscal Year", "terseLabel": "Remainder of 2024", "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in remainder of current fiscal year." } } }, "auth_ref": [ "r875" ] }, "us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilityUndiscountedExcessAmount", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesGrossDifferenceDetails": { "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesFinanceLeasesGrossDifferenceDetails" ], "lang": { "en-us": { "role": { "label": "Finance Lease, Liability, Undiscounted Excess Amount", "negatedLabel": "Less: Imputed interest", "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for finance lease." } } }, "auth_ref": [ "r484" ] }, "us-gaap_FinanceLeasePrincipalPayments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeasePrincipalPayments", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 5.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesSupplementalCashFlowInformationDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Repayments of Long-term Capital Lease Obligations", "negatedLabel": "Principal payments on finance leases", "terseLabel": "Financing cash flow from finance leases", "documentation": "Amount of cash outflow for principal payment on finance lease." } } }, "auth_ref": [ "r471", "r480" ] }, "us-gaap_FinanceLeaseRightOfUseAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseRightOfUseAsset", "crdr": "debit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails" ], "lang": { "en-us": { "role": { "label": "Finance Lease, Right-of-Use Asset", "totalLabel": "Total equipment and leasehold improvements, net", "documentation": "Amount, after accumulated amortization, of right-of-use asset from finance lease." } } }, "auth_ref": [ "r467" ] }, "us-gaap_FinanceLeaseRightOfUseAssetAccumulatedAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseRightOfUseAssetAccumulatedAmortization", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails": { "parentTag": "us-gaap_FinanceLeaseRightOfUseAsset", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails" ], "lang": { "en-us": { "role": { "label": "Finance Lease, Right-of-Use Asset, Accumulated Amortization", "negatedLabel": "Accumulated depreciation", "documentation": "Amount of accumulated amortization of right-of-use asset from finance lease." } } }, "auth_ref": [ "r759", "r763" ] }, "us-gaap_FinanceLeaseRightOfUseAssetAfterAccumulatedAmortizationAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseRightOfUseAssetAfterAccumulatedAmortizationAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails" ], "lang": { "en-us": { "role": { "label": "Finance Lease, Right-of-Use Asset, after Accumulated Amortization [Abstract]", "terseLabel": "Finance leases (included in equipment and leasehold improvements, net):" } } }, "auth_ref": [] }, "us-gaap_FinanceLeaseRightOfUseAssetAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseRightOfUseAssetAmortization", "crdr": "debit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesLeaseExpenseDetails": { "parentTag": "us-gaap_LeaseCost", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesLeaseExpenseDetails", "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetDepreciationAndAmortizationExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Finance Lease, Right-of-Use Asset, Amortization", "terseLabel": "Amortization expense", "verboseLabel": "Amortization of assets", "documentation": "Amount of amortization expense attributable to right-of-use asset from finance lease." } } }, "auth_ref": [ "r470", "r477", "r666" ] }, "us-gaap_FinanceLeaseRightOfUseAssetBeforeAccumulatedAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseRightOfUseAssetBeforeAccumulatedAmortization", "crdr": "debit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails": { "parentTag": "us-gaap_FinanceLeaseRightOfUseAsset", "weight": 1.0, "order": 1.0 }, "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetTabularDisclosureDetails": { "parentTag": "us-gaap_PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetBeforeAccumulatedDepreciationAndAmortization", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails", "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetTabularDisclosureDetails" ], "lang": { "en-us": { "role": { "label": "Finance Lease, Right-of-Use Asset, before Accumulated Amortization", "terseLabel": "Equipment under finance leases", "verboseLabel": "Equipment and leasehold improvements, net", "documentation": "Amount, before accumulated amortization, of right-of-use asset from finance lease." } } }, "auth_ref": [ "r758" ] }, "us-gaap_FinanceLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList": { "xbrltype": "enumerationSetItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails" ], "lang": { "en-us": { "role": { "label": "Finance Lease, Right-of-Use Asset, Statement of Financial Position [Extensible Enumeration]", "terseLabel": "Finance Lease, Right-of-Use Asset, Statement of Financial Position", "documentation": "Indicates line item in statement of financial position that includes finance lease right-of-use asset." } } }, "auth_ref": [ "r469" ] }, "us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseWeightedAverageDiscountRatePercent", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Finance Lease, Weighted Average Discount Rate, Percent", "terseLabel": "Finance leases, weighted average discount rate", "documentation": "Weighted average discount rate for finance lease calculated at point in time." } } }, "auth_ref": [ "r483", "r666" ] }, "us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseWeightedAverageRemainingLeaseTerm1", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Finance Lease, Weighted Average Remaining Lease Term", "verboseLabel": "Finance leases, weighted average remaining lease term", "documentation": "Weighted average remaining lease term for finance lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r482", "r666" ] }, "us-gaap_FiniteLivedIntangibleAssetUsefulLife": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetUsefulLife", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsAmortizationPeriodDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Asset, Useful Life", "terseLabel": "Amortization Period", "documentation": "Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [] }, "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization", "crdr": "credit", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsGrossAmountsAndAccumulatedAmortizationDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Accumulated Amortization", "terseLabel": "Accumulated Amortization", "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r154", "r288" ] }, "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsAmortizationPeriodDetails", "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsGrossAmountsAndAccumulatedAmortizationDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets by Major Class [Axis]", "documentation": "Information by major type or class of finite-lived intangible assets." } } }, "auth_ref": [ "r286", "r287", "r288", "r289", "r495", "r499" ] }, "us-gaap_FiniteLivedIntangibleAssetsGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsGross", "crdr": "debit", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsGrossAmountsAndAccumulatedAmortizationDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Gross", "terseLabel": "Total finite intangible assets", "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r111", "r499" ] }, "us-gaap_FiniteLivedIntangibleAssetsLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsLineItems", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsAmortizationPeriodDetails", "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsGrossAmountsAndAccumulatedAmortizationDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets [Line Items]", "terseLabel": "Finite-Lived Intangible Assets", "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": [ "r495" ] }, "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsAmortizationPeriodDetails", "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsGrossAmountsAndAccumulatedAmortizationDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]", "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company." } } }, "auth_ref": [ "r48", "r49" ] }, "us-gaap_FiniteLivedIntangibleAssetsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsNet", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Net", "terseLabel": "Other intangible assets, net", "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r111", "r495" ] }, "us-gaap_FiniteLivedIntangibleAssetsNetAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsNetAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsGrossAmountsAndAccumulatedAmortizationDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Net [Abstract]", "terseLabel": "Finite-Lived Intangible Assets" } } }, "auth_ref": [] }, "us-gaap_FiscalPeriod": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiscalPeriod", "presentation": [ "http://www.willdan.com/role/DisclosureOrganizationAndOperationsOfCompanyPolicies" ], "lang": { "en-us": { "role": { "label": "Fiscal Period, Policy [Policy Text Block]", "terseLabel": "Fiscal Years", "documentation": "Disclosure of accounting policy for determining an entity's fiscal year or other fiscal period. This disclosure may include identification of the fiscal period end-date, the length of the fiscal period, any reporting period lag between the entity and its subsidiaries, or equity investees. If a reporting lag exists, the closing date of the entity having a different period end is generally noted, along with an explanation of the necessity for using different closing dates. Any intervening events that materially affect the entity's financial position or results of operations are generally also disclosed." } } }, "auth_ref": [ "r60" ] }, "us-gaap_FiscalPeriodDuration": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiscalPeriodDuration", "presentation": [ "http://www.willdan.com/role/DisclosureOrganizationAndOperationsOfCompanyFiscalYearsDetails" ], "lang": { "en-us": { "role": { "label": "Fiscal Period Duration", "terseLabel": "Length of fiscal period", "documentation": "Duration of a fiscal period, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Includes, but not limited to, weeks in a year or quarter." } } }, "auth_ref": [] }, "us-gaap_FixedPriceContractMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FixedPriceContractMember", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Fixed-Price Contract [Member]", "terseLabel": "Fixed-Price Contract", "documentation": "Contract with customer in which amount of consideration is fixed." } } }, "auth_ref": [ "r655" ] }, "ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery due to Disqualification of Tax Benefits, Amount", "terseLabel": "Forgone Recovery due to Disqualification of Tax Benefits, Amount" } } }, "auth_ref": [ "r694", "r705", "r715", "r740" ] }, "ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ForgoneRecoveryDueToExpenseOfEnforcementAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery due to Expense of Enforcement, Amount", "terseLabel": "Forgone Recovery due to Expense of Enforcement, Amount" } } }, "auth_ref": [ "r694", "r705", "r715", "r740" ] }, "ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ForgoneRecoveryDueToViolationOfHomeCountryLawAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery due to Violation of Home Country Law, Amount", "terseLabel": "Forgone Recovery due to Violation of Home Country Law, Amount" } } }, "auth_ref": [ "r694", "r705", "r715", "r740" ] }, "ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ForgoneRecoveryExplanationOfImpracticabilityTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery, Explanation of Impracticability [Text Block]", "terseLabel": "Forgone Recovery, Explanation of Impracticability" } } }, "auth_ref": [ "r694", "r705", "r715", "r740" ] }, "ecd_ForgoneRecoveryIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ForgoneRecoveryIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r694", "r705", "r715", "r740" ] }, "us-gaap_FurnitureAndFixturesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FurnitureAndFixturesMember", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetTabularDisclosureDetails" ], "lang": { "en-us": { "role": { "label": "Furniture and Fixtures [Member]", "terseLabel": "Furniture and Fixtures", "documentation": "Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases." } } }, "auth_ref": [] }, "us-gaap_GainLossOnSaleOfPropertyPlantEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GainLossOnSaleOfPropertyPlantEquipment", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 5.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Gain (Loss) on Disposition of Property Plant Equipment", "negatedLabel": "(Gain) loss on sale/disposal of 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": [ "r5" ] }, "us-gaap_GeographicConcentrationRiskMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GeographicConcentrationRiskMember", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails" ], "lang": { "en-us": { "role": { "label": "Geographic Concentration Risk [Member]", "terseLabel": "Geographic Concentration Risk", "documentation": "Reflects the percentage that a specified dollar value on the balance sheet or income statement in the period from one or more specified geographic areas is to a corresponding consolidated, segment, or product line amount. Risk is the materially adverse effects of economic decline or antagonistic political actions resulting in loss of assets, sales volume, labor supply, or source of materials and supplies in a US state or a specified country, continent, or region such as EMEA (Europe, Middle East, Africa)." } } }, "auth_ref": [ "r36", "r624" ] }, "us-gaap_Goodwill": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "Goodwill", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataGoodwillDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Goodwill", "periodEndLabel": "Goodwill at end of period", "periodStartLabel": "Goodwill at beginning of period", "terseLabel": "Goodwill", "documentation": "Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized." } } }, "auth_ref": [ "r153", "r274", "r500", "r645", "r667", "r787", "r794" ] }, "us-gaap_GoodwillLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GoodwillLineItems", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataGoodwillDetails" ], "lang": { "en-us": { "role": { "label": "Goodwill [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": [ "r275", "r276", "r277", "r278", "r279", "r280", "r281", "r282", "r283", "r284", "r285", "r645" ] }, "us-gaap_GoodwillRollForward": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GoodwillRollForward", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataGoodwillDetails" ], "lang": { "en-us": { "role": { "label": "Goodwill [Roll Forward]", "terseLabel": "Changes in carrying value of goodwill", "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period." } } }, "auth_ref": [] }, "wldn_GovernmentsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "GovernmentsMember", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "documentation": "Government [Member]", "label": "Government [Member]", "terseLabel": "Government" } } }, "auth_ref": [] }, "us-gaap_GrossProfit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GrossProfit", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": { "parentTag": "us-gaap_OperatingIncomeLoss", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Gross Profit", "totalLabel": "Gross profit", "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity." } } }, "auth_ref": [ "r99", "r187", "r235", "r249", "r255", "r258", "r268", "r299", "r300", "r302", "r303", "r304", "r306", "r308", "r310", "r311", "r453", "r643", "r801" ] }, "us-gaap_HedgingRelationshipDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "HedgingRelationshipDomain", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Hedging Relationship [Domain]", "documentation": "Nature or intent of a hedge." } } }, "auth_ref": [ "r9" ] }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": { "parentTag": "us-gaap_NetIncomeLoss", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationStatementOfOperationsDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Income (Loss) from Continuing Operations before Income Taxes, Extraordinary Items, Noncontrolling Interest", "terseLabel": "Segment profit (loss) before income tax expense", "totalLabel": "Income (Loss) before income taxes", "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest." } } }, "auth_ref": [ "r0", "r97", "r128", "r235", "r249", "r255", "r258", "r504", "r513", "r643" ] }, "us-gaap_IncomeStatementAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeStatementAbstract", "lang": { "en-us": { "role": { "label": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (LOSS)" } } }, "auth_ref": [] }, "us-gaap_IncomeStatementLocationAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeStatementLocationAxis", "presentation": [ "http://www.willdan.com/role/DisclosureRevenuesGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Income Statement Location [Axis]", "documentation": "Information by location in the income statement." } } }, "auth_ref": [ "r290", "r292", "r587" ] }, "us-gaap_IncomeStatementLocationDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeStatementLocationDomain", "presentation": [ "http://www.willdan.com/role/DisclosureRevenuesGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Income Statement Location [Domain]", "documentation": "Location in the income statement." } } }, "auth_ref": [ "r292", "r587" ] }, "us-gaap_IncomeTaxDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxDisclosureAbstract", "lang": { "en-us": { "role": { "label": "INCOME TAXES" } } }, "auth_ref": [] }, "us-gaap_IncomeTaxDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxDisclosureTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureIncomeTaxes" ], "lang": { "en-us": { "role": { "label": "Income Tax Disclosure [Text Block]", "terseLabel": "INCOME TAXES", "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information." } } }, "auth_ref": [ "r188", "r402", "r406", "r408", "r411", "r417", "r421", "r422", "r423", "r545" ] }, "us-gaap_IncomeTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxExpenseBenefit", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": { "parentTag": "us-gaap_NetIncomeLoss", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureIncomeTaxesIncomeTaxExpenseBenefitDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationStatementOfOperationsDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Income Tax Expense (Benefit)", "terseLabel": "Income tax expense (benefit)", "verboseLabel": "Income tax (benefit) expense", "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations." } } }, "auth_ref": [ "r132", "r141", "r205", "r206", "r243", "r405", "r418", "r519" ] }, "us-gaap_IncomeTaxesPaidNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxesPaidNet", "crdr": "credit", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Income Taxes Paid, Net", "terseLabel": "Income taxes", "documentation": "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes." } } }, "auth_ref": [ "r29" ] }, "us-gaap_IncreaseDecreaseInAccountsPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInAccountsPayable", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 13.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Accounts Payable", "terseLabel": "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": [ "r4" ] }, "us-gaap_IncreaseDecreaseInAccountsReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInAccountsReceivable", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 8.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Accounts Receivable", "negatedLabel": "Accounts receivable", "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services." } } }, "auth_ref": [ "r4" ] }, "us-gaap_IncreaseDecreaseInAccruedLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInAccruedLiabilities", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 14.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Accrued Liabilities", "terseLabel": "Accrued liabilities", "documentation": "The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid." } } }, "auth_ref": [ "r4" ] }, "us-gaap_IncreaseDecreaseInContractWithCustomerAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInContractWithCustomerAsset", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 9.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Contract with Customer, Asset", "negatedLabel": "Contract assets", "documentation": "Amount of increase (decrease) in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time." } } }, "auth_ref": [ "r773" ] }, "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInContractWithCustomerLiability", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 15.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Contract with Customer, Liability", "terseLabel": "Contract liabilities", "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable." } } }, "auth_ref": [ "r493", "r773" ] }, "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInOperatingCapitalAbstract", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Operating Capital [Abstract]", "verboseLabel": "Changes in operating assets and liabilities, net of effects from business acquisitions:" } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInOtherOperatingAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInOtherOperatingAssets", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 12.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Other Operating Assets", "negatedLabel": "Other assets", "documentation": "Amount of increase (decrease) in operating assets classified as other." } } }, "auth_ref": [ "r4" ] }, "us-gaap_IncreaseDecreaseInOtherReceivables": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInOtherReceivables", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 10.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Other Receivables", "negatedLabel": "Other receivables", "documentation": "Amount of increase (decrease) in receivables classified as other." } } }, "auth_ref": [ "r4" ] }, "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 11.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Prepaid Expense and Other Assets", "negatedLabel": "Prepaid expenses and other current assets", "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other." } } }, "auth_ref": [ "r4" ] }, "wldn_IncreaseDecreaseInRightOfUseAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "IncreaseDecreaseInRightOfUseAssets", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 16.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in right of use assets.", "label": "Increase (Decrease) in Right-of-Use Assets", "negatedLabel": "Right-of-use assets" } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInStockholdersEquityRollForward": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInStockholdersEquityRollForward", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Stockholders' Equity [Roll Forward]", "terseLabel": "Increase (Decrease) in Stockholders' Equity", "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/2023", "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements", "calculation": { "http://www.willdan.com/role/DisclosureEarningsPerShareEpsComputationDetails": { "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureEarningsPerShareEpsComputationDetails" ], "lang": { "en-us": { "role": { "label": "Incremental Common Shares Attributable to Dilutive Effect of Share-based Payment Arrangements", "verboseLabel": "Effect of dilutive stock options and restricted stock awards (in shares)", "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": [ "r214", "r215", "r216", "r225", "r372" ] }, "ecd_IndividualAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "IndividualAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure", "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure", "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Individual [Axis]", "terseLabel": "Individual:" } } }, "auth_ref": [ "r697", "r705", "r715", "r732", "r740", "r744", "r752" ] }, "ecd_InsiderTradingArrLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "InsiderTradingArrLineItems", "lang": { "en-us": { "role": { "label": "Insider Trading Arrangements [Line Items]", "terseLabel": "Insider Trading Arrangements:" } } }, "auth_ref": [ "r750" ] }, "ecd_InsiderTradingPoliciesProcLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "InsiderTradingPoliciesProcLineItems", "lang": { "en-us": { "role": { "label": "Insider Trading Policies and Procedures [Line Items]", "terseLabel": "Insider Trading Policies and Procedures:" } } }, "auth_ref": [ "r686", "r756" ] }, "ecd_InsiderTrdPoliciesProcAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "InsiderTrdPoliciesProcAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" ], "lang": { "en-us": { "role": { "label": "Insider Trading Policies and Procedures Adopted [Flag]", "terseLabel": "Insider Trading Policies and Procedures Adopted" } } }, "auth_ref": [ "r686", "r756" ] }, "ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "InsiderTrdPoliciesProcNotAdoptedTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" ], "lang": { "en-us": { "role": { "label": "Insider Trading Policies and Procedures Not Adopted [Text Block]", "terseLabel": "Insider Trading Policies and Procedures Not Adopted" } } }, "auth_ref": [ "r686", "r756" ] }, "us-gaap_InterestIncomeExpenseNonoperatingNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "InterestIncomeExpenseNonoperatingNet", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": { "parentTag": "us-gaap_NonoperatingIncomeExpense", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationStatementOfOperationsDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Interest Income (Expense), Nonoperating, Net", "negatedLabel": "Interest expense, net", "terseLabel": "Interest expense, net", "documentation": "The net amount of nonoperating interest income (expense)." } } }, "auth_ref": [] }, "us-gaap_InterestPaidNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "InterestPaidNet", "crdr": "credit", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Interest Paid, Net", "terseLabel": "Interest", "documentation": "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount." } } }, "auth_ref": [ "r180", "r183", "r184" ] }, "us-gaap_InterestRateSwapMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "InterestRateSwapMember", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Interest Rate Swap [Member]", "terseLabel": "Interest Rate Swap", "documentation": "Forward based contracts in which two parties agree to swap periodic payments that are fixed at the outset of the swap contract with variable payments based on a market interest rate (index rate) over a specified period." } } }, "auth_ref": [ "r636", "r676", "r677" ] }, "us-gaap_IntersegmentEliminationMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IntersegmentEliminationMember", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationSegmentAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Intersegment Eliminations [Member]", "terseLabel": "Intersegment Eliminations", "documentation": "Eliminating entries used in operating segment consolidation." } } }, "auth_ref": [ "r237", "r248", "r249", "r250", "r251", "r252", "r254", "r258" ] }, "wldn_LaborAndRelatedExpenseExcludingStockBasedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "LaborAndRelatedExpenseExcludingStockBasedCompensation", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": { "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureRevenuesGeneralInformationDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "documentation": "The aggregate amount of expenditures for salaries and wages (excluding the portion of technical and nontechnical salaries and wages incurred in connection with revenue producing projects) and payroll taxes, bonuses and employee benefit costs for all company personnel, excluding equity-based compensation.", "label": "Labor and Related Expense Excluding Stock Based Compensation", "terseLabel": "Salaries and wages, payroll taxes and employee benefits", "verboseLabel": "Payroll taxes, bonuses and employee benefit costs for all Company personnel" } } }, "auth_ref": [] }, "us-gaap_LeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LeaseCost", "crdr": "debit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesLeaseExpenseDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesLeaseExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Lease, Cost", "totalLabel": "Total net lease cost", "documentation": "Amount of lease cost recognized by lessee for lease contract." } } }, "auth_ref": [ "r476", "r666" ] }, "us-gaap_LeaseCostAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LeaseCostAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesLeaseExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Lease, Cost [Abstract]", "terseLabel": "Lease cost" } } }, "auth_ref": [] }, "us-gaap_LeaseCostTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LeaseCostTableTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "label": "Lease, Cost [Table Text Block]", "terseLabel": "Summary of the Lease Expense", "documentation": "Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income." } } }, "auth_ref": [ "r874" ] }, "us-gaap_LeaseholdImprovementsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LeaseholdImprovementsMember", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetTabularDisclosureDetails" ], "lang": { "en-us": { "role": { "label": "Leasehold Improvements [Member]", "terseLabel": "Leasehold Improvements", "documentation": "Additions or improvements to assets held under a lease arrangement." } } }, "auth_ref": [ "r112" ] }, "us-gaap_LeasesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LeasesAbstract", "lang": { "en-us": { "role": { "label": "LEASES" } } }, "auth_ref": [] }, "us-gaap_LegalMattersAndContingenciesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LegalMattersAndContingenciesTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureContingencies" ], "lang": { "en-us": { "role": { "label": "Legal Matters and Contingencies [Text Block]", "terseLabel": "CONTINGENCIES", "documentation": "The entire disclosure for legal proceedings, legal contingencies, litigation, regulatory and environmental matters and other contingencies." } } }, "auth_ref": [ "r114" ] }, "wldn_LesseeBalanceSheetAndOtherInformationOfLeasesTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "LesseeBalanceSheetAndOtherInformationOfLeasesTableTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of impact of leases adoption on balance sheet information.", "label": "Lessee Balance Sheet And Other Information Of Leases [Table Text Block]", "terseLabel": "Summary of Lease Information Presented on the Condensed Consolidated Balance Sheet" } } }, "auth_ref": [] }, "us-gaap_LesseeDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeDisclosureAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Lessee Disclosure [Abstract]", "terseLabel": "Leases" } } }, "auth_ref": [] }, "us-gaap_LesseeLeaseDescriptionLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeLeaseDescriptionLineItems", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Lease, Description [Line Items]", "terseLabel": "Leases", "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": [ "r474" ] }, "us-gaap_LesseeLeaseDescriptionTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeLeaseDescriptionTable", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Lease, Description [Table]", "documentation": "Disclosure of information about lessee's leases." } } }, "auth_ref": [ "r474" ] }, "wldn_LesseeOperatingAndFinanceLeasesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "LesseeOperatingAndFinanceLeasesTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureLeases" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure of operating and finance leases.", "label": "Lessee Operating And Finance Leases [Text Block]", "terseLabel": "LEASES" } } }, "auth_ref": [] }, "us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend": { "xbrltype": "booleanItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseExistenceOfOptionToExtend", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Existence of Option to Extend [true false]", "terseLabel": "Operating lease, option to extend", "documentation": "Indicates (true false) whether lessee has option to extend operating lease." } } }, "auth_ref": [ "r475" ] }, "us-gaap_LesseeOperatingLeaseExistenceOfOptionToTerminate": { "xbrltype": "booleanItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseExistenceOfOptionToTerminate", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Existence of Option to Terminate [true false]", "terseLabel": "Operating lease, option to terminate", "documentation": "Indicates (true false) whether lessee has option to terminate operating lease." } } }, "auth_ref": [ "r475" ] }, "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, Maturity [Table Text Block]", "terseLabel": "Summary of the Maturities of Operating Lease Liabilities", "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position." } } }, "auth_ref": [ "r875" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDue", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesMaturitiesOfLeaseLiabilitiesDetails": { "parentTag": null, "weight": null, "order": null, "root": true }, "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesGrossDifferenceDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesGrossDifferenceDetails", "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, Payments, Due", "totalLabel": "Total lease payments", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease." } } }, "auth_ref": [ "r484" ] }, "wldn_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour": { "xbrltype": "monetaryItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesMaturitiesOfLeaseLiabilitiesDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease due 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).", "label": "Lessee Operating Lease Liability Payments Due After Year Four", "terseLabel": "2029 and thereafter" } } }, "auth_ref": [] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesMaturitiesOfLeaseLiabilitiesDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, Payments, Due Next Twelve Months", "terseLabel": "2025", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r484" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesMaturitiesOfLeaseLiabilitiesDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, Payments, Due Year Four", "terseLabel": "2028", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r484" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesMaturitiesOfLeaseLiabilitiesDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, Payments, Due Year Three", "terseLabel": "2027", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r484" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesMaturitiesOfLeaseLiabilitiesDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, Payments, Due Year Two", "terseLabel": "2026", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r484" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesMaturitiesOfLeaseLiabilitiesDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, Payments, Remainder of Fiscal Year", "terseLabel": "Remainder of 2024", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease having initial or remaining lease term in excess of one year to be paid in remainder of current fiscal year." } } }, "auth_ref": [ "r875" ] }, "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesGrossDifferenceDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesGrossDifferenceDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, Undiscounted Excess Amount", "negatedLabel": "Less: Imputed interest", "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease." } } }, "auth_ref": [ "r484" ] }, "us-gaap_LesseeOperatingLeaseRemainingLeaseTerm": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseRemainingLeaseTerm", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Remaining Lease Term", "terseLabel": "Operating lease, remaining lease term", "documentation": "Remaining lease term of operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r872" ] }, "us-gaap_LesseeOperatingLeaseRenewalTerm": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseRenewalTerm", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Renewal Term", "terseLabel": "Operating lease, extension term", "documentation": "Term of lessee's operating lease renewal, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r873" ] }, "wldn_LesseeOperatingLeaseTerminateTerm": { "xbrltype": "durationItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "LesseeOperatingLeaseTerminateTerm", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesGeneralInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents the term in which the operating lease can be terminated.", "label": "Lessee Operating Lease, Terminate Term", "terseLabel": "Operating lease, terminate term" } } }, "auth_ref": [] }, "wldn_LesseeOtherInformationAndSupplementalCashFlowInformationOfLeasesTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "LesseeOtherInformationAndSupplementalCashFlowInformationOfLeasesTableTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of other information and supplemental cash flow information related to leases.", "label": "Lessee Other Information And Supplemental Cash Flow Information Of Leases [Table Text Block]", "terseLabel": "Summary of Other Information and Supplemental Cash Flow Information Related to Finance and Operating Leases" } } }, "auth_ref": [] }, "us-gaap_Liabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "Liabilities", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Liabilities", "totalLabel": "Total liabilities", "documentation": "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future." } } }, "auth_ref": [ "r16", "r187", "r268", "r299", "r300", "r302", "r303", "r304", "r306", "r308", "r310", "r311", "r426", "r430", "r431", "r453", "r562", "r642", "r681", "r801", "r876", "r877" ] }, "us-gaap_LiabilitiesAndStockholdersEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LiabilitiesAndStockholdersEquity", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Liabilities and Equity", "totalLabel": "Total liabilities and stockholders' equity", "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any." } } }, "auth_ref": [ "r95", "r127", "r511", "r667", "r776", "r785", "r869" ] }, "us-gaap_LiabilitiesAndStockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LiabilitiesAndStockholdersEquityAbstract", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Liabilities and Equity [Abstract]" } } }, "auth_ref": [] }, "us-gaap_LiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LiabilitiesCurrent", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Liabilities, Current", "totalLabel": "Total current liabilities", "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer." } } }, "auth_ref": [ "r18", "r150", "r187", "r268", "r299", "r300", "r302", "r303", "r304", "r306", "r308", "r310", "r311", "r426", "r430", "r431", "r453", "r667", "r801", "r876", "r877" ] }, "us-gaap_LiabilitiesCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LiabilitiesCurrentAbstract", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Liabilities, Current [Abstract]", "terseLabel": "Current liabilities:" } } }, "auth_ref": [] }, "dei_LocalPhoneNumber": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "LocalPhoneNumber", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Local Phone Number", "documentation": "Local phone number for entity." } } }, "auth_ref": [] }, "us-gaap_LongTermDebt": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LongTermDebt", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureDebtObligationsCompositionDetails": { "parentTag": null, "weight": null, "order": null, "root": true }, "http://www.willdan.com/role/DisclosureDebtObligationsClassificationDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.willdan.com/role/DisclosureDebtObligationsClassificationDetails", "http://www.willdan.com/role/DisclosureDebtObligationsCompositionDetails" ], "lang": { "en-us": { "role": { "label": "Long-term Debt", "terseLabel": "Subtotal", "totalLabel": "Subtotal - long term debt", "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt. Excludes lease obligation." } } }, "auth_ref": [ "r13", "r126", "r325", "r340", "r647", "r648", "r885" ] }, "us-gaap_LongTermDebtCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LongTermDebtCurrent", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureDebtObligationsClassificationDetails": { "parentTag": "us-gaap_LongTermDebt", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureDebtObligationsClassificationDetails" ], "lang": { "en-us": { "role": { "label": "Long-term Debt, Current Maturities", "terseLabel": "Less current portion of long-term debt", "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as current. Excludes lease obligation." } } }, "auth_ref": [ "r157" ] }, "us-gaap_LongTermDebtNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LongTermDebtNoncurrent", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureDebtObligationsClassificationDetails": { "parentTag": "us-gaap_LongTermDebt", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureDebtObligationsClassificationDetails" ], "lang": { "en-us": { "role": { "label": "Long-term Debt, Excluding Current Maturities", "terseLabel": "Long-term debt portion", "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as noncurrent. Excludes lease obligation." } } }, "auth_ref": [ "r158" ] }, "us-gaap_LongTermNotesPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LongTermNotesPayable", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Notes Payable, Noncurrent", "terseLabel": "Notes payable, less current portion", "documentation": "Carrying value as of the balance sheet date of notes payable (with maturities initially due after one year or beyond the operating cycle if longer), excluding current portion." } } }, "auth_ref": [ "r19" ] }, "us-gaap_LongtermDebtCurrentAndNoncurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LongtermDebtCurrentAndNoncurrentAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureDebtObligationsClassificationDetails" ], "lang": { "en-us": { "role": { "label": "Long-term Debt, Current and Noncurrent [Abstract]", "terseLabel": "Debt Obligations" } } }, "auth_ref": [] }, "us-gaap_LongtermDebtTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LongtermDebtTypeAxis", "presentation": [ "http://www.willdan.com/role/DisclosureDebtObligationsCompositionDetails", "http://www.willdan.com/role/DisclosureDebtObligationsNewCreditFacilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Long-term Debt, Type [Axis]", "documentation": "Information by type of long-term debt." } } }, "auth_ref": [ "r19" ] }, "us-gaap_LongtermDebtTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LongtermDebtTypeDomain", "presentation": [ "http://www.willdan.com/role/DisclosureDebtObligationsCompositionDetails", "http://www.willdan.com/role/DisclosureDebtObligationsNewCreditFacilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Long-term Debt, Type [Domain]", "documentation": "Type of long-term debt arrangement, such as notes, line of credit, commercial paper, asset-based financing, project financing, letter of credit financing. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the company, if longer." } } }, "auth_ref": [ "r19", "r51" ] }, "wldn_LosAngelesDepartmentOfWaterAndPowerMember": { "xbrltype": "domainItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "LosAngelesDepartmentOfWaterAndPowerMember", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails" ], "lang": { "en-us": { "role": { "documentation": "Los Angeles Department of Water and Power [Member]", "label": "Los Angeles Department of Water and Power [Member]", "terseLabel": "Los Angeles Department of Water and Power" } } }, "auth_ref": [] }, "us-gaap_LossContingencyAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LossContingencyAbstract", "lang": { "en-us": { "role": { "label": "CONTINGENCIES" } } }, "auth_ref": [] }, "srt_MajorCustomersAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "MajorCustomersAxis", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Customer [Axis]" } } }, "auth_ref": [ "r264", "r654", "r805", "r887", "r888" ] }, "srt_MaximumMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "MaximumMember", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesGeneralInformationDetails", "http://www.willdan.com/role/DisclosureOrganizationAndOperationsOfCompanyFiscalYearsDetails", "http://www.willdan.com/role/DisclosureRevenuesGeneralInformationDetails", "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsAmortizationPeriodDetails" ], "lang": { "en-us": { "role": { "label": "Maximum [Member]", "terseLabel": "Maximum" } } }, "auth_ref": [ "r295", "r296", "r297", "r298", "r365", "r491", "r531", "r554", "r555", "r605", "r607", "r609", "r610", "r620", "r634", "r635", "r644", "r651", "r663", "r668", "r803", "r878", "r879", "r880", "r881", "r882", "r883" ] }, "ecd_MeasureAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "MeasureAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Measure [Axis]", "terseLabel": "Measure:" } } }, "auth_ref": [ "r724" ] }, "ecd_MeasureName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "MeasureName", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Measure Name", "terseLabel": "Name" } } }, "auth_ref": [ "r724" ] }, "srt_MinimumMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "MinimumMember", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesGeneralInformationDetails", "http://www.willdan.com/role/DisclosureOrganizationAndOperationsOfCompanyFiscalYearsDetails", "http://www.willdan.com/role/DisclosureRevenuesGeneralInformationDetails", "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsAmortizationPeriodDetails" ], "lang": { "en-us": { "role": { "label": "Minimum [Member]", "terseLabel": "Minimum" } } }, "auth_ref": [ "r295", "r296", "r297", "r298", "r365", "r491", "r531", "r554", "r555", "r605", "r607", "r609", "r610", "r620", "r634", "r635", "r644", "r651", "r663", "r668", "r803", "r878", "r879", "r880", "r881", "r882", "r883" ] }, "ecd_MnpiDiscTimedForCompValFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "MnpiDiscTimedForCompValFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "MNPI Disclosure Timed for Compensation Value [Flag]", "terseLabel": "MNPI Disclosure Timed for Compensation Value" } } }, "auth_ref": [ "r743" ] }, "ecd_MtrlTermsOfTrdArrTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "MtrlTermsOfTrdArrTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Material Terms of Trading Arrangement [Text Block]", "terseLabel": "Material Terms of Trading Arrangement" } } }, "auth_ref": [ "r751" ] }, "stpr_NY": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/stpr/2023", "localname": "NY", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails" ], "lang": { "en-us": { "role": { "label": "NEW YORK", "terseLabel": "New York" } } }, "auth_ref": [] }, "srt_NameOfMajorCustomerDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "NameOfMajorCustomerDomain", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Customer [Domain]" } } }, "auth_ref": [ "r264", "r654", "r805", "r887", "r888" ] }, "ecd_NamedExecutiveOfficersFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NamedExecutiveOfficersFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Named Executive Officers, Footnote [Text Block]", "terseLabel": "Named Executive Officers, Footnote" } } }, "auth_ref": [ "r725" ] }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInFinancingActivities", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Financing Activities", "totalLabel": "Net cash (used in) provided by financing activities", "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit." } } }, "auth_ref": [ "r182" ] }, "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Financing Activities, Continuing Operations [Abstract]", "terseLabel": "Cash flows from financing activities:" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInInvestingActivities", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Investing Activities", "totalLabel": "Net cash used in investing activities", "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets." } } }, "auth_ref": [ "r182" ] }, "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Investing Activities, Continuing Operations [Abstract]", "terseLabel": "Cash flows from investing activities:" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInOperatingActivities", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Operating Activities", "totalLabel": "Net cash (used in) provided by operating activities", "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities." } } }, "auth_ref": [ "r107", "r108", "r109" ] }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Operating Activities, Continuing Operations [Abstract]", "terseLabel": "Cash flows from operating activities:" } } }, "auth_ref": [] }, "us-gaap_NetIncomeLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetIncomeLoss", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": { "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0, "order": 1.0 }, "http://www.willdan.com/role/DisclosureEarningsPerShareEpsComputationDetails": { "parentTag": "us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureEarningsPerShareEpsComputationDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationStatementOfOperationsDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity", "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "totalLabel": "Net income (loss)", "label": "Net Income (Loss)", "terseLabel": "Net Income (Loss)", "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent." } } }, "auth_ref": [ "r98", "r109", "r129", "r148", "r168", "r171", "r175", "r187", "r195", "r199", "r200", "r201", "r202", "r205", "r206", "r221", "r235", "r249", "r255", "r258", "r268", "r299", "r300", "r302", "r303", "r304", "r306", "r308", "r310", "r311", "r449", "r453", "r515", "r584", "r600", "r601", "r643", "r679", "r801" ] }, "us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetIncomeLossAvailableToCommonStockholdersBasic", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureEarningsPerShareEpsComputationDetails": { "parentTag": "us-gaap_NetIncomeLossAvailableToCommonStockholdersDiluted", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureEarningsPerShareEpsComputationDetails" ], "lang": { "en-us": { "role": { "label": "Net Income (Loss) Available to Common Stockholders, Basic", "totalLabel": "Net income (loss) - basic", "documentation": "Amount, after deduction of tax, noncontrolling interests, dividends on preferred stock and participating securities; of income (loss) available to common shareholders." } } }, "auth_ref": [ "r179", "r199", "r200", "r201", "r202", "r210", "r211", "r222", "r225", "r235", "r249", "r255", "r258", "r643" ] }, "us-gaap_NetIncomeLossAvailableToCommonStockholdersDiluted": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetIncomeLossAvailableToCommonStockholdersDiluted", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureEarningsPerShareEpsComputationDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.willdan.com/role/DisclosureEarningsPerShareEpsComputationDetails" ], "lang": { "en-us": { "role": { "label": "Net Income (Loss) Available to Common Stockholders, Diluted", "totalLabel": "Net income (loss) - diluted", "documentation": "Amount, after deduction of tax, noncontrolling interests, dividends on preferred stock and participating securities, and addition from assumption of issuance of common shares for dilutive potential common shares; of income (loss) available to common shareholders." } } }, "auth_ref": [ "r179", "r212", "r217", "r218", "r219", "r220", "r222", "r225" ] }, "us-gaap_NetIncomeLossAvailableToCommonStockholdersDilutedAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetIncomeLossAvailableToCommonStockholdersDilutedAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureEarningsPerShareEpsComputationDetails" ], "lang": { "en-us": { "role": { "label": "Net Income (Loss) Available to Common Stockholders, Diluted [Abstract]", "terseLabel": "Net income (loss)" } } }, "auth_ref": [] }, "us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NewAccountingPronouncementsAndChangesInAccountingPrinciplesAbstract", "lang": { "en-us": { "role": { "label": "RECENT ACCOUNTING PRONOUNCEMENTS" } } }, "auth_ref": [] }, "us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureRecentAccountingPronouncements" ], "lang": { "en-us": { "role": { "label": "New Accounting Pronouncements and Changes in Accounting Principles [Text Block]", "terseLabel": "RECENT ACCOUNTING PRONOUNCEMENTS", "documentation": "The entire disclosure for change in accounting principle. Includes, but is not limited to, nature, reason, and method of adopting amendment to accounting standards or other change in accounting principle." } } }, "auth_ref": [ "r139", "r140", "r142", "r146", "r193", "r194", "r197", "r198", "r207", "r208", "r270", "r271", "r414", "r415", "r416", "r442", "r446", "r450", "r451", "r452", "r454", "r455", "r456", "r465", "r466", "r487", "r496", "r497", "r498", "r535", "r536", "r537", "r538", "r539" ] }, "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureOrganizationAndOperationsOfCompanyPolicies" ], "lang": { "en-us": { "role": { "label": "New Accounting Pronouncements, Policy [Policy Text Block]", "terseLabel": "Accounting Pronouncements Recently Issued", "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact." } } }, "auth_ref": [] }, "ecd_NonGaapMeasureDescriptionTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NonGaapMeasureDescriptionTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-GAAP Measure Description [Text Block]", "terseLabel": "Non-GAAP Measure Description" } } }, "auth_ref": [ "r724" ] }, "ecd_NonNeosMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NonNeosMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-NEOs [Member]", "terseLabel": "Non-NEOs" } } }, "auth_ref": [ "r694", "r705", "r715", "r732", "r740" ] }, "ecd_NonPeoNeoAvgCompActuallyPaidAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NonPeoNeoAvgCompActuallyPaidAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-PEO NEO Average Compensation Actually Paid Amount", "terseLabel": "Non-PEO NEO Average Compensation Actually Paid Amount" } } }, "auth_ref": [ "r722" ] }, "ecd_NonPeoNeoAvgTotalCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NonPeoNeoAvgTotalCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-PEO NEO Average Total Compensation Amount", "terseLabel": "Non-PEO NEO Average Total Compensation Amount" } } }, "auth_ref": [ "r721" ] }, "ecd_NonPeoNeoMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NonPeoNeoMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-PEO NEO [Member]", "terseLabel": "Non-PEO NEO" } } }, "auth_ref": [ "r732" ] }, "ecd_NonRule10b51ArrAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NonRule10b51ArrAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Non-Rule 10b5-1 Arrangement Adopted [Flag]", "terseLabel": "Non-Rule 10b5-1 Arrangement Adopted" } } }, "auth_ref": [ "r751" ] }, "ecd_NonRule10b51ArrTrmntdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NonRule10b51ArrTrmntdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Non-Rule 10b5-1 Arrangement Terminated [Flag]", "terseLabel": "Non-Rule 10b5-1 Arrangement Terminated" } } }, "auth_ref": [ "r751" ] }, "us-gaap_NoncompeteAgreementsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NoncompeteAgreementsMember", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsAmortizationPeriodDetails", "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsGrossAmountsAndAccumulatedAmortizationDetails" ], "lang": { "en-us": { "role": { "label": "Noncompete Agreements [Member]", "terseLabel": "Noncompete Agreements", "documentation": "Agreement in which one party agrees not to pursue a similar trade in competition with another party." } } }, "auth_ref": [ "r57" ] }, "us-gaap_NonoperatingIncomeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NonoperatingIncomeExpense", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Nonoperating Income (Expense)", "totalLabel": "Total other expense, net", "documentation": "The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business)." } } }, "auth_ref": [ "r103" ] }, "us-gaap_NonoperatingIncomeExpenseAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NonoperatingIncomeExpenseAbstract", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Nonoperating Income (Expense) [Abstract]", "terseLabel": "Other income (expense):" } } }, "auth_ref": [] }, "us-gaap_NotesPayableCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NotesPayableCurrent", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Notes Payable, Current", "terseLabel": "Notes payable", "documentation": "Sum of the carrying values as of the balance sheet date of the portions of long-term notes payable due within one year or the operating cycle if longer." } } }, "auth_ref": [ "r15" ] }, "us-gaap_NotesPayableOtherPayablesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NotesPayableOtherPayablesMember", "presentation": [ "http://www.willdan.com/role/DisclosureDebtObligationsCompositionDetails" ], "lang": { "en-us": { "role": { "label": "Notes Payable, Other Payables [Member]", "terseLabel": "Notes Payable, Other Payables", "documentation": "A written promise to pay a note to a third party." } } }, "auth_ref": [] }, "us-gaap_NotesPayableToBanksMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NotesPayableToBanksMember", "presentation": [ "http://www.willdan.com/role/DisclosureDebtObligationsCompositionDetails", "http://www.willdan.com/role/DisclosureDebtObligationsNewCreditFacilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Notes Payable to Banks [Member]", "terseLabel": "Notes Payable to Banks", "documentation": "A written promise to pay a note to a bank." } } }, "auth_ref": [] }, "us-gaap_NumberOfReportableSegments": { "xbrltype": "integerItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NumberOfReportableSegments", "presentation": [ "http://www.willdan.com/role/DisclosureOrganizationAndOperationsOfCompanySegmentInformationDetails", "http://www.willdan.com/role/DisclosureRevenuesSegmentInformationDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationSegmentInformationDetails" ], "lang": { "en-us": { "role": { "label": "Number of Reportable Segments", "terseLabel": "Number of reporting segments", "documentation": "Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements." } } }, "auth_ref": [ "r783" ] }, "us-gaap_NumberOfStatesInWhichEntityOperates": { "xbrltype": "integerItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NumberOfStatesInWhichEntityOperates", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationGeographicalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Number of States in which Entity Operates", "terseLabel": "Number of states in which entity operates", "documentation": "The number of states the entity operates in as of the balance sheet date." } } }, "auth_ref": [] }, "wldn_NumberOfVariableInterestEntity": { "xbrltype": "integerItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "NumberOfVariableInterestEntity", "presentation": [ "http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntitiesVariableInterestEntitiesDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents the information pertaining to number of variable entities.", "label": "Number of Variable Interest Entity", "terseLabel": "Number of VIEs" } } }, "auth_ref": [] }, "us-gaap_OccupancyNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OccupancyNet", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": { "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Occupancy, Net", "terseLabel": "Facilities and facility related", "documentation": "Amount of net occupancy expense that may include items, such as depreciation of facilities and equipment, lease expenses, property taxes and property and casualty insurance expense." } } }, "auth_ref": [ "r102", "r130", "r131" ] }, "us-gaap_OperatingExpenses": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingExpenses", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": { "parentTag": "us-gaap_OperatingIncomeLoss", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Operating Expenses", "totalLabel": "Total general and administrative 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": [] }, "us-gaap_OperatingExpensesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingExpensesAbstract", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Operating Expenses [Abstract]", "terseLabel": "General and administrative expenses:" } } }, "auth_ref": [] }, "us-gaap_OperatingIncomeLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingIncomeLoss", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Operating Income (Loss)", "totalLabel": "Income (Loss) from operations", "documentation": "The net result for the period of deducting operating expenses from operating revenues." } } }, "auth_ref": [ "r235", "r249", "r255", "r258", "r643" ] }, "us-gaap_OperatingLeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseCost", "crdr": "debit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesLeaseExpenseDetails": { "parentTag": "us-gaap_LeaseCost", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesLeaseExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Cost", "verboseLabel": "Operating lease cost", "documentation": "Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability." } } }, "auth_ref": [ "r478", "r666" ] }, "us-gaap_OperatingLeaseLiabilitiesGrossDifferenceAmountAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseLiabilitiesGrossDifferenceAmountAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesGrossDifferenceDetails" ], "lang": { "en-us": { "role": { "label": "Operating Lease Liabilities, Gross Difference, Amount [Abstract]", "terseLabel": "Operating" } } }, "auth_ref": [] }, "us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseLiabilitiesPaymentsDueAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Operating Lease Liabilities, Payments Due [Abstract]", "terseLabel": "Operating" } } }, "auth_ref": [] }, "us-gaap_OperatingLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseLiability", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesGrossDifferenceDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 2.0 }, "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails", "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesGrossDifferenceDetails" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Liability", "totalLabel": "Total lease liabilities", "verboseLabel": "Total lease liabilities", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease." } } }, "auth_ref": [ "r468" ] }, "us-gaap_OperatingLeaseLiabilityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseLiabilityAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Liability [Abstract]", "terseLabel": "Operating leases, lease liabilities" } } }, "auth_ref": [] }, "us-gaap_OperatingLeaseLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseLiabilityCurrent", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails": { "parentTag": "us-gaap_OperatingLeaseLiability", "weight": 1.0, "order": 1.0 }, "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails", "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesGrossDifferenceDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Liability, Current", "terseLabel": "Lease liability", "verboseLabel": "Less: Current obligations", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current." } } }, "auth_ref": [ "r468" ] }, "us-gaap_OperatingLeaseLiabilityNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseLiabilityNoncurrent", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails": { "parentTag": "us-gaap_OperatingLeaseLiability", "weight": 1.0, "order": 2.0 }, "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails", "http://www.willdan.com/role/DisclosureLeasesOperatingLeasesGrossDifferenceDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Liability, Noncurrent", "terseLabel": "Noncurrent lease obligations", "verboseLabel": "Lease liability, less current portion", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent." } } }, "auth_ref": [ "r468" ] }, "us-gaap_OperatingLeasePayments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeasePayments", "crdr": "credit", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesSupplementalCashFlowInformationDetails" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Payments", "terseLabel": "Operating cash flow from operating leases", "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use." } } }, "auth_ref": [ "r473", "r480" ] }, "wldn_OperatingLeaseRentExpenses": { "xbrltype": "monetaryItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "OperatingLeaseRentExpenses", "crdr": "debit", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesRentExpenseDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of operating lease expense. Excludes sublease income.", "label": "Operating Lease Rent Expenses", "terseLabel": "Rent expenses" } } }, "auth_ref": [] }, "us-gaap_OperatingLeaseRightOfUseAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseRightOfUseAsset", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesConsolidatedBalanceSheetDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Right-of-Use Asset", "terseLabel": "Right-of-use assets", "documentation": "Amount of lessee's right to use underlying asset under operating lease." } } }, "auth_ref": [ "r467" ] }, "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseWeightedAverageDiscountRatePercent", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Weighted Average Discount Rate, Percent", "terseLabel": "Operating leases, weighted average discount rate", "documentation": "Weighted average discount rate for operating lease calculated at point in time." } } }, "auth_ref": [ "r483", "r666" ] }, "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Weighted Average Remaining Lease Term", "terseLabel": "Operating leases, weighted average remaining lease term", "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r482", "r666" ] }, "us-gaap_OperatingSegmentsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingSegmentsMember", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationSegmentAssetsDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationStatementOfOperationsDetails" ], "lang": { "en-us": { "role": { "label": "Operating Segments [Member]", "terseLabel": "Operating Segments", "documentation": "Identifies components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity." } } }, "auth_ref": [ "r248", "r249", "r250", "r251", "r252", "r258" ] }, "us-gaap_OrderOrProductionBacklogMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OrderOrProductionBacklogMember", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsAmortizationPeriodDetails", "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsGrossAmountsAndAccumulatedAmortizationDetails" ], "lang": { "en-us": { "role": { "label": "Order or Production Backlog [Member]", "terseLabel": "Order or Production Backlog", "documentation": "Orders, production or production backlog arising from contracts such as purchase or sales orders acquired in a business combination." } } }, "auth_ref": [ "r58" ] }, "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract", "lang": { "en-us": { "role": { "label": "ORGANIZATION AND OPERATIONS OF THE COMPANY" } } }, "auth_ref": [] }, "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureOrganizationAndOperationsOfCompany" ], "lang": { "en-us": { "role": { "label": "Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block]", "terseLabel": "ORGANIZATION AND OPERATIONS OF THE COMPANY", "documentation": "The entire disclosure for organization, consolidation and basis of presentation of financial statements disclosure." } } }, "auth_ref": [ "r86", "r121", "r541", "r542" ] }, "us-gaap_OtherAssetsNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherAssetsNoncurrent", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Other Assets, Noncurrent", "terseLabel": "Other assets", "documentation": "Amount of noncurrent assets classified as other." } } }, "auth_ref": [ "r155" ] }, "us-gaap_OtherComprehensiveIncomeDerivativesQualifyingAsHedgesBeforeTaxPeriodIncreaseDecreaseAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherComprehensiveIncomeDerivativesQualifyingAsHedgesBeforeTaxPeriodIncreaseDecreaseAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsCashFlowHedgeEffectivenessDetails" ], "lang": { "en-us": { "role": { "label": "Other Comprehensive Income (Loss), Cash Flow Hedge, Gain (Loss), after Reclassification, before Tax [Abstract]", "terseLabel": "Derivative Financial Instruments" } } }, "auth_ref": [] }, "us-gaap_OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherComprehensiveIncomeLossBeforeReclassificationsNetOfTax", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsAccumulatedOtherComprehensiveIncomeLossDetails": { "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTax", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsAccumulatedOtherComprehensiveIncomeLossDetails" ], "lang": { "en-us": { "role": { "label": "Other Comprehensive Income (Loss), before Reclassifications, Net of Tax", "terseLabel": "Other comprehensive income (loss) before reclassifications", "documentation": "Amount after tax, before reclassification adjustments of other comprehensive income (loss)." } } }, "auth_ref": [ "r12", "r24", "r174", "r457", "r460", "r463", "r769" ] }, "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": { "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Other Comprehensive Income (Loss), Cash Flow Hedge, Gain (Loss), after Reclassification and Tax", "verboseLabel": "Unrealized gain (loss) on derivative contracts, net of tax", "documentation": "Amount, after tax and reclassification, of gain (loss) from derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness." } } }, "auth_ref": [ "r164", "r165" ] }, "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationBeforeTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationBeforeTax", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsCashFlowHedgeEffectivenessDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsCashFlowHedgeEffectivenessDetails" ], "lang": { "en-us": { "role": { "label": "Other Comprehensive Income (Loss), Cash Flow Hedge, Gain (Loss), after Reclassification, before Tax", "totalLabel": "Other comprehensive income (loss), cash flow hedge, gain (loss), after reclassification, before tax, total", "documentation": "Amount, before tax and after reclassification, of gain (loss) from derivative instrument designated and qualifying cash flow hedge included in assessment of hedge effectiveness." } } }, "auth_ref": [ "r164", "r165" ] }, "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsCashFlowHedgeEffectivenessDetails": { "parentTag": "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationBeforeTax", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsCashFlowHedgeEffectivenessDetails" ], "lang": { "en-us": { "role": { "label": "Other Comprehensive Income (Loss), Cash Flow Hedge, Gain (Loss), before Reclassification and Tax", "terseLabel": "Other comprehensive income (loss), cash flow hedge, gain (loss), before reclassification and tax", "documentation": "Amount, before tax and reclassification, of gain (loss) from derivative instrument designated and qualifying cash flow hedge included in assessment of hedge effectiveness." } } }, "auth_ref": [ "r164", "r165", "r433", "r434", "r436" ] }, "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationBeforeTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationBeforeTax", "crdr": "debit", "calculation": { "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsCashFlowHedgeEffectivenessDetails": { "parentTag": "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationBeforeTax", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsCashFlowHedgeEffectivenessDetails" ], "lang": { "en-us": { "role": { "label": "Other Comprehensive Income (Loss), Cash Flow Hedge, Gain (Loss), Reclassification, before Tax", "terseLabel": "Other comprehensive income (loss), cash flow hedge, gain (loss), reclassification, before tax", "documentation": "Amount, before tax, of reclassification of gain (loss) from accumulated other comprehensive income (AOCI) for derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness." } } }, "auth_ref": [ "r137", "r165", "r167" ] }, "us-gaap_OtherComprehensiveIncomeLossNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherComprehensiveIncomeLossNetOfTax", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsAccumulatedOtherComprehensiveIncomeLossDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsAccumulatedOtherComprehensiveIncomeLossDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Other Comprehensive Income (Loss), Net of Tax", "totalLabel": "Other comprehensive income (loss)", "verboseLabel": "Net unrealized gain on derivative contracts", "documentation": "Amount after tax and reclassification adjustments of other comprehensive income (loss)." } } }, "auth_ref": [ "r8", "r12", "r169", "r172", "r176", "r457", "r458", "r463", "r501", "r516", "r769", "r770" ] }, "wldn_OtherDebtMember": { "xbrltype": "domainItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "OtherDebtMember", "presentation": [ "http://www.willdan.com/role/DisclosureDebtObligationsCompositionDetails" ], "lang": { "en-us": { "role": { "documentation": "Other Debt [Member]", "label": "Other Debt [Member]", "terseLabel": "Other Debt" } } }, "auth_ref": [] }, "us-gaap_OtherLiabilitiesNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherLiabilitiesNoncurrent", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Other Liabilities, Noncurrent", "terseLabel": "Other noncurrent liabilities", "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r20" ] }, "us-gaap_OtherNoncashIncomeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherNoncashIncomeExpense", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 3.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Other Noncash Income (Expense)", "negatedLabel": "Other non-cash items", "documentation": "Amount of income (expense) included in net income that results in no cash inflow (outflow), classified as other." } } }, "auth_ref": [ "r109" ] }, "us-gaap_OtherNonoperatingIncomeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherNonoperatingIncomeExpense", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": { "parentTag": "us-gaap_NonoperatingIncomeExpense", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Other Nonoperating Income (Expense)", "terseLabel": "Other, net", "documentation": "Amount of income (expense) related to nonoperating activities, classified as other." } } }, "auth_ref": [ "r104" ] }, "ecd_OtherPerfMeasureAmt": { "xbrltype": "decimalItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "OtherPerfMeasureAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Other Performance Measure, Amount", "terseLabel": "Other Performance Measure, Amount" } } }, "auth_ref": [ "r724" ] }, "us-gaap_OtherReceivablesNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherReceivablesNetCurrent", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Other Receivables, Net, Current", "terseLabel": "Other receivables", "documentation": "Amount, after allowance, of receivables classified as other, due within one year or the operating cycle, if longer." } } }, "auth_ref": [] }, "us-gaap_OtherSellingGeneralAndAdministrativeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherSellingGeneralAndAdministrativeExpense", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": { "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Other Selling, General and Administrative Expense", "terseLabel": "Other", "documentation": "Amount of selling, general and administrative expense classified as other." } } }, "auth_ref": [ "r101" ] }, "ecd_OutstandingAggtErrCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "OutstandingAggtErrCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Outstanding Aggregate Erroneous Compensation Amount", "terseLabel": "Outstanding Aggregate Erroneous Compensation Amount" } } }, "auth_ref": [ "r692", "r703", "r713", "r738" ] }, "ecd_OutstandingRecoveryCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "OutstandingRecoveryCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Outstanding Recovery Compensation Amount", "terseLabel": "Compensation Amount" } } }, "auth_ref": [ "r695", "r706", "r716", "r741" ] }, "ecd_OutstandingRecoveryIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "OutstandingRecoveryIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Outstanding Recovery, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r695", "r706", "r716", "r741" ] }, "us-gaap_ParentMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ParentMember", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsAccumulatedOtherComprehensiveIncomeLossDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Parent [Member]", "documentation": "Portion of equity, or net assets, in the consolidated entity attributable, directly or indirectly, to the parent. Excludes noncontrolling interests." } } }, "auth_ref": [] }, "ecd_PayVsPerformanceDisclosureLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PayVsPerformanceDisclosureLineItems", "lang": { "en-us": { "role": { "label": "Pay vs Performance Disclosure [Line Items]", "terseLabel": "Pay vs Performance Disclosure" } } }, "auth_ref": [ "r720" ] }, "wldn_PaymentsForCashDepositsHeldInTrustForEnergyIncentiveRebatePaymentsRestrictedCashFinancingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "PaymentsForCashDepositsHeldInTrustForEnergyIncentiveRebatePaymentsRestrictedCashFinancingActivities", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "documentation": "Payments for Cash Deposits Held in Trust for Energy Incentive Rebate Payments, Restricted Cash, Financing Activities", "label": "Payments for Cash Deposits Held in Trust for Energy Incentive Rebate Payments, Restricted Cash, Financing Activities", "negatedLabel": "Payment on restricted cash" } } }, "auth_ref": [] }, "us-gaap_PaymentsForRepurchaseOfOtherEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PaymentsForRepurchaseOfOtherEquity", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 3.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Payments for Repurchase of Other Equity", "negatedLabel": "Cash used to pay taxes on stock grants", "documentation": "Amount of cash outflow to reacquire equity classified as other." } } }, "auth_ref": [ "r26" ] }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Payments to Acquire Property, Plant, and Equipment", "negatedLabel": "Purchase of equipment, software, and leasehold improvements", "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": [ "r106" ] }, "ecd_PeerGroupIssuersFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PeerGroupIssuersFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Peer Group Issuers, Footnote [Text Block]", "terseLabel": "Peer Group Issuers, Footnote" } } }, "auth_ref": [ "r723" ] }, "ecd_PeerGroupTotalShareholderRtnAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PeerGroupTotalShareholderRtnAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Peer Group Total Shareholder Return Amount", "terseLabel": "Peer Group Total Shareholder Return Amount" } } }, "auth_ref": [ "r723" ] }, "ecd_PeoActuallyPaidCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PeoActuallyPaidCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO Actually Paid Compensation Amount", "terseLabel": "PEO Actually Paid Compensation Amount" } } }, "auth_ref": [ "r722" ] }, "ecd_PeoMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PeoMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO [Member]", "terseLabel": "PEO" } } }, "auth_ref": [ "r732" ] }, "ecd_PeoName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PeoName", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO Name", "terseLabel": "PEO Name" } } }, "auth_ref": [ "r725" ] }, "ecd_PeoTotalCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PeoTotalCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO Total Compensation Amount", "terseLabel": "PEO Total Compensation Amount" } } }, "auth_ref": [ "r721" ] }, "wldn_PercentOfTotalRevenueComprisedOfContractsWhichIncludeSeparatePhasesOrElements": { "xbrltype": "percentItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "PercentOfTotalRevenueComprisedOfContractsWhichIncludeSeparatePhasesOrElements", "presentation": [ "http://www.willdan.com/role/DisclosureRevenuesGeneralInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "The percentage of total revenue comprised of contracts which include separate phases or elements.", "label": "Percent Of Total Revenue Comprised Of Contracts Which Include Separate Phases Or Elements", "terseLabel": "Percent of revenue (as a percent)" } } }, "auth_ref": [] }, "us-gaap_PreferredStockNumberOfSharesParValueAndOtherDisclosuresAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PreferredStockNumberOfSharesParValueAndOtherDisclosuresAbstract", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "label": "Preferred Stock, Number of Shares, Par Value and Other Disclosures [Abstract]", "terseLabel": "Preferred stock" } } }, "auth_ref": [] }, "us-gaap_PreferredStockParOrStatedValuePerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PreferredStockParOrStatedValuePerShare", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "label": "Preferred Stock, Par or Stated Value Per Share", "terseLabel": "Preferred stock, par value (in dollars per share)", "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer." } } }, "auth_ref": [ "r89", "r341" ] }, "us-gaap_PreferredStockSharesAuthorized": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PreferredStockSharesAuthorized", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "label": "Preferred Stock, Shares Authorized", "terseLabel": "Preferred stock, shares authorized (in shares)", "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws." } } }, "auth_ref": [ "r89", "r564" ] }, "us-gaap_PreferredStockSharesIssued": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PreferredStockSharesIssued", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "label": "Preferred Stock, Shares Issued", "terseLabel": "Preferred stock, shares issued (in shares)", "documentation": "Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt." } } }, "auth_ref": [ "r89", "r341" ] }, "us-gaap_PreferredStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PreferredStockSharesOutstanding", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "label": "Preferred Stock, Shares Outstanding", "terseLabel": "Preferred stock, shares outstanding (in shares)", "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased." } } }, "auth_ref": [ "r89", "r564", "r582", "r890", "r891" ] }, "us-gaap_PreferredStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PreferredStockValue", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Preferred Stock, Value, Issued", "verboseLabel": "Preferred stock, $0.01 par value, 10,000 shares authorized, no shares issued and outstanding", "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity." } } }, "auth_ref": [ "r89", "r507", "r667" ] }, "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PrepaidExpenseAndOtherAssetsCurrent", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Prepaid Expense and Other Assets, Current", "terseLabel": "Prepaid expenses and other current assets", "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r768" ] }, "us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProceedsFromSaleOfPropertyPlantAndEquipment", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Proceeds from Sale of Property, Plant, and Equipment", "terseLabel": "Proceeds from sale of equipment", "documentation": "The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale." } } }, "auth_ref": [ "r105" ] }, "us-gaap_ProceedsFromStockOptionsExercised": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProceedsFromStockOptionsExercised", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Proceeds from Stock Options Exercised", "terseLabel": "Proceeds from stock option exercise", "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement." } } }, "auth_ref": [ "r3", "r10" ] }, "us-gaap_ProceedsFromStockPlans": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProceedsFromStockPlans", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0, "order": 7.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Proceeds from Stock Plans", "terseLabel": "Proceeds from sales of common stock under employee stock purchase plan", "documentation": "The cash inflow associated with the amount received from the stock plan during the period." } } }, "auth_ref": [ "r3" ] }, "us-gaap_ProfitLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProfitLoss", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Income (Loss), Including Portion Attributable to Noncontrolling Interest", "verboseLabel": "Net income (loss)", "documentation": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest." } } }, "auth_ref": [ "r148", "r168", "r171", "r181", "r187", "r195", "r205", "r206", "r235", "r249", "r255", "r258", "r268", "r299", "r300", "r302", "r303", "r304", "r306", "r308", "r310", "r311", "r424", "r427", "r428", "r449", "r453", "r504", "r514", "r547", "r584", "r600", "r601", "r643", "r664", "r665", "r680", "r771", "r801" ] }, "us-gaap_PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAccumulatedDepreciationAndAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAccumulatedDepreciationAndAmortization", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetTabularDisclosureDetails": { "parentTag": "us-gaap_PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetTabularDisclosureDetails" ], "lang": { "en-us": { "role": { "label": "Property, Plant, and Equipment and Finance Lease Right-of-Use Asset, Accumulated Depreciation and Amortization", "negatedLabel": "Accumulated depreciation and amortization", "documentation": "Amount of accumulated depreciation and amortization from plant, property, and equipment and right-of-use asset from finance lease." } } }, "auth_ref": [ "r759", "r763", "r799" ] }, "us-gaap_PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 2.0 }, "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetTabularDisclosureDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetTabularDisclosureDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Property, Plant, and Equipment and Finance Lease Right-of-Use Asset, after Accumulated Depreciation and Amortization", "terseLabel": "Equipment and leasehold improvements, net", "totalLabel": "Total equipment and leasehold improvements, net", "documentation": "Amount, after accumulated depreciation and amortization, of property, plant, and equipment and finance lease right-of-use asset." } } }, "auth_ref": [ "r763", "r797" ] }, "us-gaap_PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortizationAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortizationAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetTabularDisclosureDetails" ], "lang": { "en-us": { "role": { "label": "Property, Plant, and Equipment and Finance Lease Right-of-Use Asset, after Accumulated Depreciation and Amortization [Abstract]", "terseLabel": "Equipment and Leasehold Improvements" } } }, "auth_ref": [] }, "us-gaap_PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetBeforeAccumulatedDepreciationAndAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetBeforeAccumulatedDepreciationAndAmortization", "crdr": "debit", "calculation": { "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetTabularDisclosureDetails": { "parentTag": "us-gaap_PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetTabularDisclosureDetails" ], "lang": { "en-us": { "role": { "label": "Property, Plant, and Equipment and Finance Lease Right-of-Use Asset, before Accumulated Depreciation and Amortization", "totalLabel": "Equipment and leasehold improvements, gross", "documentation": "Amount, before accumulated depreciation and amortization, of property, plant, and equipment and finance lease right-of-use asset." } } }, "auth_ref": [ "r758", "r767", "r798" ] }, "us-gaap_PropertyPlantAndEquipmentByTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentByTypeAxis", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetTabularDisclosureDetails" ], "lang": { "en-us": { "role": { "label": "Long-Lived Tangible Asset [Axis]", "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale." } } }, "auth_ref": [ "r6" ] }, "us-gaap_PropertyPlantAndEquipmentGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentGross", "crdr": "debit", "calculation": { "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetTabularDisclosureDetails": { "parentTag": "us-gaap_PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetBeforeAccumulatedDepreciationAndAmortization", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetTabularDisclosureDetails" ], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment, Gross", "terseLabel": "Equipment and leasehold improvements", "documentation": "Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures." } } }, "auth_ref": [ "r112", "r152", "r512" ] }, "us-gaap_PropertyPlantAndEquipmentLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentLineItems", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetTabularDisclosureDetails" ], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment [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_PropertyPlantAndEquipmentTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataTables" ], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment [Table Text Block]", "terseLabel": "Schedule of equipment and leasehold improvements", "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation." } } }, "auth_ref": [ "r6" ] }, "us-gaap_PropertyPlantAndEquipmentTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentTypeDomain", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetTabularDisclosureDetails" ], "lang": { "en-us": { "role": { "label": "Long-Lived Tangible Asset [Domain]", "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software." } } }, "auth_ref": [ "r112" ] }, "wldn_ProvisionForDoubtfulAccountsCashFlowImpact": { "xbrltype": "monetaryItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "ProvisionForDoubtfulAccountsCashFlowImpact", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "documentation": "The cash flow impact of the provision for doubtful accounts.", "label": "Provision for Doubtful Accounts Cash Flow Impact", "terseLabel": "Provision for doubtful accounts" } } }, "auth_ref": [] }, "wldn_PublicUtilityMember": { "xbrltype": "domainItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "PublicUtilityMember", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "documentation": "Public Utility [Member]", "label": "Public Utility [Member]", "terseLabel": "Utilities" } } }, "auth_ref": [] }, "ecd_PvpTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PvpTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Pay vs Performance Disclosure [Table]", "terseLabel": "Pay vs Performance Disclosure" } } }, "auth_ref": [ "r720" ] }, "ecd_PvpTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PvpTableTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Pay vs Performance [Table Text Block]", "terseLabel": "Pay vs Performance Disclosure, Table" } } }, "auth_ref": [ "r720" ] }, "wldn_QualifiedCashOrDeferredArrangementMember": { "xbrltype": "domainItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "QualifiedCashOrDeferredArrangementMember", "presentation": [ "http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntitiesEmployeeBenefitPlansDetails" ], "lang": { "en-us": { "role": { "documentation": "Qualified Cash or Deferred Arrangement [Member]", "label": "Qualified Cash or Deferred Arrangement [Member]", "terseLabel": "Qualified Cash or Deferred Arrangement" } } }, "auth_ref": [] }, "srt_RangeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "RangeAxis", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesGeneralInformationDetails", "http://www.willdan.com/role/DisclosureOrganizationAndOperationsOfCompanyFiscalYearsDetails", "http://www.willdan.com/role/DisclosureRevenuesGeneralInformationDetails", "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsAmortizationPeriodDetails" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Axis]" } } }, "auth_ref": [ "r295", "r296", "r297", "r298", "r358", "r365", "r395", "r396", "r397", "r490", "r491", "r531", "r554", "r555", "r605", "r607", "r609", "r610", "r620", "r634", "r635", "r644", "r651", "r663", "r668", "r671", "r800", "r803", "r879", "r880", "r881", "r882", "r883" ] }, "srt_RangeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "RangeMember", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesGeneralInformationDetails", "http://www.willdan.com/role/DisclosureOrganizationAndOperationsOfCompanyFiscalYearsDetails", "http://www.willdan.com/role/DisclosureRevenuesGeneralInformationDetails", "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsAmortizationPeriodDetails" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Domain]" } } }, "auth_ref": [ "r295", "r296", "r297", "r298", "r358", "r365", "r395", "r396", "r397", "r490", "r491", "r531", "r554", "r555", "r605", "r607", "r609", "r610", "r620", "r634", "r635", "r644", "r651", "r663", "r668", "r671", "r800", "r803", "r879", "r880", "r881", "r882", "r883" ] }, "us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax", "crdr": "debit", "calculation": { "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsAccumulatedOtherComprehensiveIncomeLossDetails": { "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTax", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsAccumulatedOtherComprehensiveIncomeLossDetails" ], "lang": { "en-us": { "role": { "label": "Reclassification from Accumulated Other Comprehensive Income, Current Period, Net of Tax", "terseLabel": "Amounts reclassified from accumulated other comprehensive income: income tax benefit (expense) related to derivative instruments", "documentation": "Amount after tax of reclassification adjustments of other comprehensive income (loss)." } } }, "auth_ref": [ "r12", "r24", "r174", "r457", "r462", "r463", "r769" ] }, "us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTaxAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTaxAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsAccumulatedOtherComprehensiveIncomeLossDetails" ], "lang": { "en-us": { "role": { "label": "AOCI Including Portion Attributable to Noncontrolling Interest, 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_ReconciliationFromSegmentTotalsToConsolidatedAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ReconciliationFromSegmentTotalsToConsolidatedAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationStatementOfOperationsDetails" ], "lang": { "en-us": { "role": { "label": "Segment Reconciliation [Abstract]", "terseLabel": "Segment reconciliation" } } }, "auth_ref": [] }, "us-gaap_ReconciliationOfAssetsFromSegmentToConsolidatedTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ReconciliationOfAssetsFromSegmentToConsolidatedTable", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationSegmentAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Reconciliation of Assets from Segment to Consolidated [Table]", "documentation": "Identification, description, and amounts of all significant reconciling items in the reconciliation of total assets from reportable segments to the entity's consolidated assets." } } }, "auth_ref": [ "r45", "r46" ] }, "ecd_RecoveryOfErrCompDisclosureLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "RecoveryOfErrCompDisclosureLineItems", "lang": { "en-us": { "role": { "label": "Recovery of Erroneously Awarded Compensation Disclosure [Line Items]", "terseLabel": "Recovery of Erroneously Awarded Compensation Disclosure" } } }, "auth_ref": [ "r687", "r698", "r708", "r733" ] }, "us-gaap_RepaymentsOfLinesOfCredit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RepaymentsOfLinesOfCredit", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 4.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Repayments of Lines of Credit", "negatedLabel": "Repayments under term loan facility and line of credit", "documentation": "Amount of cash outflow for payment of an obligation from a lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements." } } }, "auth_ref": [ "r27", "r775" ] }, "us-gaap_RepaymentsOfNotesPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RepaymentsOfNotesPayable", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Repayments of Notes Payable", "negatedLabel": "Payments on notes payable", "documentation": "The cash outflow for a borrowing supported by a written promise to pay an obligation." } } }, "auth_ref": [ "r27" ] }, "us-gaap_ResidualValueOfLeasedAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ResidualValueOfLeasedAsset", "crdr": "debit", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesGeneralInformationDetails" ], "lang": { "en-us": { "role": { "label": "Residual Value of Leased Asset", "terseLabel": "Residual value guarantee", "documentation": "Amount of residual asset covered by residual value guarantee. Excludes guarantee considered to be lease payments for lessor." } } }, "auth_ref": [ "r485" ] }, "ecd_RestatementDateAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "RestatementDateAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Restatement Determination Date [Axis]", "terseLabel": "Restatement Determination Date:" } } }, "auth_ref": [ "r688", "r699", "r709", "r734" ] }, "ecd_RestatementDeterminationDate": { "xbrltype": "dateItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "RestatementDeterminationDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Restatement Determination Date", "terseLabel": "Restatement Determination Date" } } }, "auth_ref": [ "r689", "r700", "r710", "r735" ] }, "ecd_RestatementDoesNotRequireRecoveryTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "RestatementDoesNotRequireRecoveryTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Restatement Does Not Require Recovery [Text Block]", "terseLabel": "Restatement does not require Recovery" } } }, "auth_ref": [ "r696", "r707", "r717", "r742" ] }, "us-gaap_RestrictedCash": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RestrictedCash", "crdr": "debit", "calculation": { "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataRestrictedCashDetails": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataRestrictedCashDetails" ], "lang": { "en-us": { "role": { "label": "Restricted Cash", "terseLabel": "Restricted cash", "documentation": "Amount of cash restricted as to withdrawal or usage. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits." } } }, "auth_ref": [ "r766", "r774", "r884", "r886" ] }, "us-gaap_RestrictedCashAssetStatementOfFinancialPositionExtensibleList": { "xbrltype": "enumerationSetItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RestrictedCashAssetStatementOfFinancialPositionExtensibleList", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataRestrictedCashDetails" ], "lang": { "en-us": { "role": { "label": "Restricted Cash, Statement of Financial Position [Extensible Enumeration]", "terseLabel": "Restricted Cash, Statement of Financial Position", "documentation": "Indicates line item in statement of financial position that includes cash restricted to withdrawal or usage." } } }, "auth_ref": [ "r774" ] }, "us-gaap_RestrictedCashCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RestrictedCashCurrent", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Restricted Cash, Current", "terseLabel": "Restricted cash", "documentation": "Amount of cash restricted as to withdrawal or usage, classified as current. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits." } } }, "auth_ref": [ "r766", "r774" ] }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RetainedEarningsAccumulatedDeficit", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Retained Earnings (Accumulated Deficit)", "terseLabel": "Retained earnings", "documentation": "Amount of accumulated undistributed earnings (deficit)." } } }, "auth_ref": [ "r92", "r118", "r510", "r535", "r539", "r544", "r565", "r667" ] }, "us-gaap_RetainedEarningsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RetainedEarningsMember", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Retained Earnings [Member]", "terseLabel": "Retained Earnings", "documentation": "Accumulated undistributed earnings (deficit)." } } }, "auth_ref": [ "r144", "r190", "r191", "r192", "r196", "r204", "r206", "r269", "r272", "r399", "r400", "r401", "r412", "r413", "r437", "r439", "r440", "r443", "r447", "r532", "r534", "r548", "r890" ] }, "us-gaap_RetirementPlanNameAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RetirementPlanNameAxis", "presentation": [ "http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntitiesEmployeeBenefitPlansDetails" ], "lang": { "en-us": { "role": { "label": "Retirement Plan Name [Axis]", "documentation": "Information by name of plan designed to provide retirement benefits. Includes, but is not limited to, legal name of defined benefit and defined contribution plans." } } }, "auth_ref": [ "r362", "r363", "r364", "r365", "r366", "r367", "r368", "r369", "r370", "r663", "r760", "r806", "r807", "r808", "r809", "r810", "r811", "r812", "r813", "r814", "r815", "r816", "r817", "r818", "r819", "r820", "r821", "r822", "r823", "r824", "r825", "r826", "r827", "r828", "r829", "r830", "r831", "r832", "r833", "r834", "r835", "r836", "r837", "r838", "r839", "r840", "r841", "r842", "r843", "r844", "r845", "r846", "r847", "r848", "r849", "r850", "r851", "r852", "r853", "r854", "r855", "r856", "r857", "r858", "r859", "r860", "r861", "r862", "r863", "r864", "r865" ] }, "us-gaap_RetirementPlanNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RetirementPlanNameDomain", "presentation": [ "http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntitiesEmployeeBenefitPlansDetails" ], "lang": { "en-us": { "role": { "label": "Retirement Plan Name [Domain]", "documentation": "Name of plan designed to provide retirement benefits. Includes, but is not limited to, legal name of defined benefit and defined contribution plans." } } }, "auth_ref": [ "r362", "r363", "r364", "r365", "r366", "r367", "r368", "r369", "r370", "r663", "r760", "r806", "r807", "r808", "r809", "r810", "r811", "r812", "r813", "r814", "r815", "r816", "r817", "r818", "r819", "r820", "r821", "r822", "r823", "r824", "r825", "r826", "r827", "r828", "r829", "r830", "r831", "r832", "r833", "r834", "r835", "r836", "r837", "r838", "r839", "r840", "r841", "r842", "r843", "r844", "r845", "r846", "r847", "r848", "r849", "r850", "r851", "r852", "r853", "r854", "r855", "r856", "r857", "r858", "r859", "r860", "r861", "r862", "r863", "r864", "r865" ] }, "us-gaap_RevenueFromContractWithCustomerAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueFromContractWithCustomerAbstract", "lang": { "en-us": { "role": { "label": "REVENUES" } } }, "auth_ref": [] }, "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueFromContractWithCustomerExcludingAssessedTax", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": { "parentTag": "us-gaap_GrossProfit", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationDisaggregationOfRevenueDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationStatementOfOperationsDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Revenue from Contract with Customer, Excluding Assessed Tax", "terseLabel": "Contract revenue", "verboseLabel": "Revenue", "documentation": "Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise." } } }, "auth_ref": [ "r236", "r237", "r248", "r253", "r254", "r260", "r262", "r264", "r353", "r354", "r494" ] }, "us-gaap_RevenueFromContractWithCustomerMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueFromContractWithCustomerMember", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails" ], "lang": { "en-us": { "role": { "label": "Revenue from Contract with Customer Benchmark [Member]", "terseLabel": "Revenue from Contract with Customer Benchmark", "documentation": "Revenue from satisfaction of performance obligation by transferring promised product and service to customer, when it serves as benchmark in concentration of risk calculation." } } }, "auth_ref": [ "r264", "r761" ] }, "us-gaap_RevenueFromContractWithCustomerSegmentBenchmarkMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueFromContractWithCustomerSegmentBenchmarkMember", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails" ], "lang": { "en-us": { "role": { "label": "Revenue from Contract with Customer, Segment Benchmark [Member]", "terseLabel": "Revenue from Contract with Customer, Segment Benchmark", "documentation": "Revenue from specified business segment for satisfaction of performance obligation by transferring promised product and service to customer, when it serves as benchmark in concentration of risk calculation." } } }, "auth_ref": [ "r761" ] }, "us-gaap_RevenueFromContractWithCustomerTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueFromContractWithCustomerTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureRevenues" ], "lang": { "en-us": { "role": { "label": "Revenue from Contract with Customer [Text Block]", "terseLabel": "REVENUES", "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts." } } }, "auth_ref": [ "r143", "r345", "r346", "r347", "r348", "r349", "r350", "r351", "r352", "r356" ] }, "wldn_RevenueOfTheEntityAsAnAgent": { "xbrltype": "monetaryItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "RevenueOfTheEntityAsAnAgent", "crdr": "credit", "presentation": [ "http://www.willdan.com/role/DisclosureRevenuesGeneralInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents the amount of revenue of the entity in which it acts solely in the capacity of an agent.", "label": "Revenue of the Entity as an Agent", "terseLabel": "Revenue of the entity recorded in which it acts solely in the capacity of an agent" } } }, "auth_ref": [] }, "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability", "crdr": "debit", "presentation": [ "http://www.willdan.com/role/DisclosureLeasesSupplementalCashFlowInformationDetails" ], "lang": { "en-us": { "role": { "label": "Right-of-Use Asset Obtained in Exchange for Operating Lease Liability", "terseLabel": "Right-of-use assets obtained in exchange for lease liabilities for operating leases", "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability." } } }, "auth_ref": [ "r481", "r666" ] }, "ecd_Rule10b51ArrAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "Rule10b51ArrAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Rule 10b5-1 Arrangement Adopted [Flag]", "terseLabel": "Rule 10b5-1 Arrangement Adopted" } } }, "auth_ref": [ "r751" ] }, "ecd_Rule10b51ArrTrmntdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "Rule10b51ArrTrmntdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Rule 10b5-1 Arrangement Terminated [Flag]", "terseLabel": "Rule 10b5-1 Arrangement Terminated" } } }, "auth_ref": [ "r751" ] }, "us-gaap_SalesRevenueNetMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SalesRevenueNetMember", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails" ], "lang": { "en-us": { "role": { "label": "Revenue Benchmark [Member]", "documentation": "Revenue from sale of product and rendering of service and other sources of income, when it serves as benchmark in concentration of risk calculation." } } }, "auth_ref": [ "r264", "r761" ] }, "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Accrued Liabilities [Table Text Block]", "terseLabel": "Schedule of accrued liabilities", "documentation": "Tabular disclosure of the components of accrued liabilities." } } }, "auth_ref": [] }, "us-gaap_ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Accumulated Other Comprehensive Income (Loss) [Table Text Block]", "terseLabel": "Schedule of accumulated other comprehensive income (loss)", "documentation": "Tabular disclosure of the components of accumulated other comprehensive income (loss)." } } }, "auth_ref": [ "r24", "r870", "r871" ] }, "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable", "presentation": [ "http://www.willdan.com/role/DisclosureEarningsPerShareEpsAntidilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]", "documentation": "Schedule for securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by Antidilutive Securities." } } }, "auth_ref": [ "r32" ] }, "wldn_ScheduleOfByTypeAndReportableSegmentTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "ScheduleOfByTypeAndReportableSegmentTableTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureRevenuesTables" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of contracts for revenue generating activities by type and by reporting segment.", "label": "Schedule of By Type And Reportable Segment [Table Text Block]", "terseLabel": "Schedule of Contracts by Reportable Segments and Type of Contracts" } } }, "auth_ref": [] }, "us-gaap_ScheduleOfCashFlowHedgingInstrumentsStatementsOfFinancialPerformanceAndFinancialPositionLocationTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfCashFlowHedgingInstrumentsStatementsOfFinancialPerformanceAndFinancialPositionLocationTableTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Cash Flow Hedging Instruments, Statements of Financial Performance and Financial Position, Location [Table Text Block]", "terseLabel": "Schedule of the fair values of outstanding derivatives designated as hedging instruments", "documentation": "Tabular disclosure for cash flow hedging instruments of (a) the location and amount of gains and losses reported in the statement of financial performance and (b) the location and fair value amounts of the instruments reported in the statement of financial position." } } }, "auth_ref": [ "r73" ] }, "us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Cash Flow, Supplemental Disclosures [Table Text Block]", "terseLabel": "Schedule of reconciliation of cash and cash equivalents, and restricted cash", "documentation": "Tabular disclosure of supplemental cash flow information for the periods presented." } } }, "auth_ref": [] }, "us-gaap_ScheduleOfDebtTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfDebtTableTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureDebtObligationsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Debt [Table Text Block]", "terseLabel": "Schedule of debt obligations, excluding obligations under capital leases", "documentation": "Tabular disclosure of information pertaining to short-term and long-debt instruments or arrangements, including but not limited to identification of terms, features, collateral requirements and other information necessary to a fair presentation." } } }, "auth_ref": [] }, "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureEarningsPerShareEpsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]", "terseLabel": "Schedule of number of weighted-average common shares outstanding used to compute basic and diluted EPS", "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": [ "r781" ] }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsAmortizationPeriodDetails", "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsGrossAmountsAndAccumulatedAmortizationDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Finite-Lived Intangible Assets [Table]", "documentation": "Schedule of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r48", "r49", "r495" ] }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]", "terseLabel": "Schedule of gross amounts and accumulated amortization of acquired identifiable intangible assets with finite useful lives", "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": [ "r48", "r49" ] }, "us-gaap_ScheduleOfGoodwillTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfGoodwillTable", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataGoodwillDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Goodwill [Table]", "documentation": "Schedule of goodwill and the changes during the year due to acquisition, sale, impairment or for other reasons." } } }, "auth_ref": [ "r275", "r276", "r277", "r278", "r279", "r280", "r281", "r282", "r283", "r284", "r285", "r645" ] }, "us-gaap_ScheduleOfGoodwillTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfGoodwillTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Goodwill [Table Text Block]", "terseLabel": "Schedule of changes in the carrying value of goodwill by reporting unit", "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule." } } }, "auth_ref": [ "r645", "r786", "r787", "r788", "r789", "r790", "r791", "r792", "r793", "r794", "r795", "r796" ] }, "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfPropertyPlantAndEquipmentTable", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataEquipmentAndLeaseholdImprovementsNetTabularDisclosureDetails" ], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment [Table]", "documentation": "Disclosure of information about physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation." } } }, "auth_ref": [ "r6" ] }, "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfSegmentReportingInformationBySegmentTable", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationStatementOfOperationsDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Segment Reporting Information, by Segment [Table]", "documentation": "A table disclosing the profit or loss and total assets for each reportable segment of the entity. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss." } } }, "auth_ref": [ "r42", "r43", "r44", "r47" ] }, "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfSegmentReportingInformationBySegmentTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Segment Reporting Information, by Segment [Table Text Block]", "terseLabel": "Schedule of financial information with respect to the reportable segments", "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": [ "r42", "r43", "r44", "r47" ] }, "dei_Security12bTitle": { "xbrltype": "securityTitleItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "Security12bTitle", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Title of 12(b) Security", "documentation": "Title of a 12(b) registered security." } } }, "auth_ref": [ "r682" ] }, "dei_SecurityExchangeName": { "xbrltype": "edgarExchangeCodeItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "SecurityExchangeName", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Security Exchange Name", "documentation": "Name of the Exchange on which a security is registered." } } }, "auth_ref": [ "r684" ] }, "us-gaap_SegmentDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SegmentDomain", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationDisaggregationOfRevenueDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationSegmentAssetsDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationStatementOfOperationsDetails", "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataGoodwillDetails" ], "lang": { "en-us": { "role": { "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": [ "r232", "r235", "r236", "r237", "r238", "r239", "r240", "r241", "r242", "r243", "r244", "r245", "r246", "r248", "r249", "r250", "r251", "r252", "r253", "r254", "r255", "r256", "r258", "r264", "r275", "r276", "r277", "r278", "r279", "r280", "r281", "r282", "r283", "r293", "r294", "r520", "r521", "r522", "r523", "r524", "r525", "r526", "r527", "r528", "r529", "r530", "r645", "r764", "r887" ] }, "srt_SegmentGeographicalDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "SegmentGeographicalDomain", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Geographical [Domain]" } } }, "auth_ref": [ "r262", "r263", "r550", "r551", "r552", "r606", "r608", "r611", "r621", "r625", "r626", "r627", "r628", "r629", "r630", "r631", "r632", "r633", "r637", "r653", "r671", "r805", "r887" ] }, "us-gaap_SegmentReportingAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SegmentReportingAbstract", "lang": { "en-us": { "role": { "label": "SEGMENT AND GEOGRAPHICAL INFORMATION" } } }, "auth_ref": [] }, "us-gaap_SegmentReportingAssetReconcilingItemLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SegmentReportingAssetReconcilingItemLineItems", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationSegmentAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Segment Reporting, Asset Reconciling Item [Line Items]", "terseLabel": "Segment Reporting", "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_SegmentReportingDisclosureOfEntitysReportableSegmentsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SegmentReportingDisclosureOfEntitysReportableSegmentsAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureOrganizationAndOperationsOfCompanySegmentInformationDetails", "http://www.willdan.com/role/DisclosureRevenuesSegmentInformationDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationSegmentInformationDetails" ], "lang": { "en-us": { "role": { "label": "Segment Reporting, Disclosure of Entity's Reportable Segments [Abstract]", "terseLabel": "Segment Information" } } }, "auth_ref": [] }, "us-gaap_SegmentReportingDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SegmentReportingDisclosureTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformation" ], "lang": { "en-us": { "role": { "label": "Segment Reporting Disclosure [Text Block]", "terseLabel": "SEGMENT AND GEOGRAPHICAL INFORMATION", "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments." } } }, "auth_ref": [ "r231", "r232", "r233", "r234", "r235", "r247", "r252", "r256", "r257", "r258", "r259", "r260", "r261", "r264" ] }, "us-gaap_SegmentReportingInformationLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SegmentReportingInformationLineItems", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationStatementOfOperationsDetails" ], "lang": { "en-us": { "role": { "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_ShareBasedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensation", "crdr": "debit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome": { "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0, "order": 3.0 }, "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 7.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Share-based Compensation", "terseLabel": "Stock-based compensation", "documentation": "Amount of noncash expense for share-based payment arrangement." } } }, "auth_ref": [ "r4" ] }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "All Award Types", "terseLabel": "All Award Types", "documentation": "Award under share-based payment arrangement." } } }, "auth_ref": [ "r373", "r374", "r375", "r376", "r377", "r378", "r379", "r380", "r381", "r382", "r383", "r384", "r385", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r393", "r394", "r395", "r396", "r397", "r398" ] }, "us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharesPaidForTaxWithholdingForShareBasedCompensation", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Shares Used to Pay Taxes on Stock Grants, Shares", "negatedLabel": "Shares used to pay taxes on stock grants (in shares)", "documentation": "Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement." } } }, "auth_ref": [] }, "us-gaap_StatementBusinessSegmentsAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementBusinessSegmentsAxis", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationDisaggregationOfRevenueDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationSegmentAssetsDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationStatementOfOperationsDetails", "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataGoodwillDetails" ], "lang": { "en-us": { "role": { "label": "Segments [Axis]", "documentation": "Information by business segments." } } }, "auth_ref": [ "r147", "r232", "r235", "r236", "r237", "r238", "r239", "r240", "r241", "r242", "r243", "r244", "r245", "r246", "r248", "r249", "r250", "r251", "r252", "r253", "r254", "r255", "r256", "r258", "r264", "r275", "r276", "r277", "r278", "r279", "r280", "r281", "r282", "r283", "r291", "r293", "r294", "r520", "r521", "r522", "r523", "r524", "r525", "r526", "r527", "r528", "r529", "r530", "r645", "r764", "r887" ] }, "us-gaap_StatementEquityComponentsAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementEquityComponentsAxis", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsAccumulatedOtherComprehensiveIncomeLossDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Equity Components [Axis]", "documentation": "Information by component of equity." } } }, "auth_ref": [ "r8", "r22", "r144", "r173", "r174", "r175", "r190", "r191", "r192", "r196", "r204", "r206", "r230", "r269", "r272", "r342", "r399", "r400", "r401", "r412", "r413", "r437", "r438", "r439", "r440", "r441", "r443", "r447", "r457", "r459", "r460", "r461", "r462", "r463", "r486", "r532", "r533", "r534", "r548", "r602" ] }, "srt_StatementGeographicalAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "StatementGeographicalAxis", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails", "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Geographical [Axis]" } } }, "auth_ref": [ "r262", "r263", "r550", "r551", "r552", "r606", "r608", "r611", "r621", "r623", "r625", "r626", "r627", "r628", "r629", "r630", "r631", "r632", "r633", "r637", "r653", "r671", "r805", "r887" ] }, "us-gaap_StatementLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementLineItems", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Statement [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r190", "r191", "r192", "r230", "r494", "r543", "r549", "r556", "r557", "r558", "r559", "r560", "r561", "r564", "r567", "r568", "r569", "r570", "r571", "r572", "r573", "r574", "r575", "r577", "r578", "r579", "r580", "r581", "r583", "r585", "r586", "r588", "r589", "r590", "r591", "r592", "r593", "r594", "r595", "r596", "r597", "r598", "r599", "r602", "r672" ] }, "us-gaap_StatementOfCashFlowsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementOfCashFlowsAbstract", "lang": { "en-us": { "role": { "label": "Statement of Cash Flows [Abstract]" } } }, "auth_ref": [] }, "us-gaap_StatementOfFinancialPositionAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementOfFinancialPositionAbstract", "lang": { "en-us": { "role": { "label": "Statement of Financial Position [Abstract]" } } }, "auth_ref": [] }, "us-gaap_StatementOfStockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementOfStockholdersEquityAbstract", "lang": { "en-us": { "role": { "label": "Statement of Stockholders' Equity [Abstract]" } } }, "auth_ref": [] }, "us-gaap_StatementTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementTable", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Statement [Table]", "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed." } } }, "auth_ref": [ "r190", "r191", "r192", "r230", "r494", "r543", "r549", "r556", "r557", "r558", "r559", "r560", "r561", "r564", "r567", "r568", "r569", "r570", "r571", "r572", "r573", "r574", "r575", "r577", "r578", "r579", "r580", "r581", "r583", "r585", "r586", "r588", "r589", "r590", "r591", "r592", "r593", "r594", "r595", "r596", "r597", "r598", "r599", "r602", "r672" ] }, "ecd_StkPrcOrTsrEstimationMethodTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "StkPrcOrTsrEstimationMethodTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Stock Price or TSR Estimation Method [Text Block]", "terseLabel": "Stock Price or TSR Estimation Method" } } }, "auth_ref": [ "r691", "r702", "r712", "r737" ] }, "us-gaap_StockAppreciationRightsSARSMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockAppreciationRightsSARSMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Stock Appreciation Rights (SARs) [Member]", "terseLabel": "Stock Appreciation Rights (SARs)", "documentation": "Right to receive cash or shares equal to appreciation of predetermined number of grantor's shares during predetermined time period." } } }, "auth_ref": [] }, "us-gaap_StockCompensationPlanMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockCompensationPlanMember", "presentation": [ "http://www.willdan.com/role/DisclosureEarningsPerShareEpsAntidilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement [Member]", "terseLabel": "Share-Based Payment Arrangement", "documentation": "Share-based payment arrangement in which award of equity shares are granted. Arrangement includes, but is not limited to, grantor incurring liability for product and service based on price of its shares." } } }, "auth_ref": [ "r782" ] }, "us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Shares, Employee Stock Purchase Plans", "terseLabel": "Shares of common stock issued in connection with employee stock purchase plan (in shares)", "documentation": "Number of shares issued during the period as a result of an employee stock purchase plan." } } }, "auth_ref": [ "r8", "r89", "r90", "r118" ] }, "us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodSharesRestrictedStockAwardGross", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Shares, Restricted Stock Award, Gross", "terseLabel": "Issuance of restricted stock award and units (in shares)", "documentation": "Total number of shares issued during the period, including shares forfeited, as a result of Restricted Stock Awards." } } }, "auth_ref": [ "r8", "r118" ] }, "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period", "terseLabel": "Shares of common stock issued in connection with incentive stock plan (in shares)", "documentation": "Number of share options (or share units) exercised during the current period." } } }, "auth_ref": [ "r8", "r89", "r90", "r118", "r381" ] }, "us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodValueEmployeeStockPurchasePlan", "crdr": "credit", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Value, Employee Stock Purchase Plan", "terseLabel": "Shares of common stock issued in connection with employee stock purchase plan", "documentation": "Aggregate change in value for stock issued during the period as a result of employee stock purchase plan." } } }, "auth_ref": [ "r8", "r89", "r90", "r118" ] }, "us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodValueRestrictedStockAwardGross", "crdr": "credit", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Value, Restricted Stock Award, Gross", "verboseLabel": "Issuance of restricted stock award and units", "documentation": "Aggregate value of stock related to Restricted Stock Awards issued during the period." } } }, "auth_ref": [ "r8", "r89", "r90", "r118" ] }, "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodValueStockOptionsExercised", "crdr": "credit", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Value, Stock Options Exercised", "terseLabel": "Shares of common stock issued in connection with incentive stock plan", "documentation": "Value of stock issued as a result of the exercise of stock options." } } }, "auth_ref": [ "r8", "r22", "r118" ] }, "us-gaap_StockholdersEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockholdersEquity", "crdr": "credit", "calculation": { "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Stockholders' Equity Attributable to Parent", "totalLabel": "Total stockholders' equity", "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest." } } }, "auth_ref": [ "r90", "r93", "r94", "r110", "r566", "r582", "r603", "r604", "r667", "r681", "r776", "r785", "r869", "r890" ] }, "us-gaap_StockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockholdersEquityAbstract", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Equity, Attributable to Parent [Abstract]", "terseLabel": "Stockholders' equity:" } } }, "auth_ref": [] }, "us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest", "crdr": "credit", "presentation": [ "http://www.willdan.com/role/DisclosureDerivativeFinancialInstrumentsAccumulatedOtherComprehensiveIncomeLossDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stockholders' Equity, Including Portion Attributable to Noncontrolling Interest", "periodEndLabel": "Balance", "periodStartLabel": "Balance", "documentation": "Amount of equity (deficit) attributable to parent and noncontrolling interest. Excludes temporary equity." } } }, "auth_ref": [ "r61", "r62", "r63", "r144", "r145", "r174", "r190", "r191", "r192", "r196", "r204", "r269", "r272", "r342", "r399", "r400", "r401", "r412", "r413", "r437", "r438", "r439", "r440", "r441", "r443", "r447", "r457", "r459", "r463", "r486", "r533", "r534", "r546", "r566", "r582", "r603", "r604", "r622", "r680", "r776", "r785", "r869", "r890" ] }, "us-gaap_SubleaseIncome": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SubleaseIncome", "crdr": "credit", "calculation": { "http://www.willdan.com/role/DisclosureLeasesLeaseExpenseDetails": { "parentTag": "us-gaap_LeaseCost", "weight": -1.0, "order": 3.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureLeasesLeaseExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Sublease Income", "negatedLabel": "Sublease Income", "documentation": "Amount of sublease income excluding finance and operating lease expense." } } }, "auth_ref": [ "r479", "r666" ] }, "us-gaap_SubsequentEventsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SubsequentEventsAbstract", "lang": { "en-us": { "role": { "label": "SUBSEQUENT EVENTS" } } }, "auth_ref": [] }, "us-gaap_SubsequentEventsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SubsequentEventsTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureSubsequentEvents" ], "lang": { "en-us": { "role": { "label": "Subsequent Events [Text Block]", "terseLabel": "SUBSEQUENT EVENTS", "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": [ "r488", "r489" ] }, "us-gaap_SupplementalBalanceSheetDisclosuresTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SupplementalBalanceSheetDisclosuresTextBlock", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementData" ], "lang": { "en-us": { "role": { "label": "Supplemental Balance Sheet Disclosures [Text Block]", "terseLabel": "SUPPLEMENTAL FINANCIAL STATEMENT DATA", "documentation": "The entire disclosure for supplemental balance sheet disclosures, including descriptions and amounts for assets, liabilities, and equity." } } }, "auth_ref": [ "r765" ] }, "us-gaap_SupplementalCashFlowInformationAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SupplementalCashFlowInformationAbstract", "presentation": [ "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Supplemental Cash Flow Information [Abstract]", "terseLabel": "Cash paid (received) during the period for:" } } }, "auth_ref": [] }, "ecd_TabularListTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TabularListTableTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Tabular List [Table Text Block]", "terseLabel": "Tabular List, Table" } } }, "auth_ref": [ "r731" ] }, "wldn_TermLoanMember": { "xbrltype": "domainItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "TermLoanMember", "presentation": [ "http://www.willdan.com/role/DisclosureDebtObligationsCompositionDetails" ], "lang": { "en-us": { "role": { "documentation": "Term Loan [Member]", "label": "Term Loan [Member]", "terseLabel": "Term Loan" } } }, "auth_ref": [] }, "us-gaap_TimeAndMaterialsContractMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TimeAndMaterialsContractMember", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Time-and-Materials Contract [Member]", "terseLabel": "Time-and-Materials Contract", "documentation": "Contract with customer in which amount of consideration is based on time and materials consumed." } } }, "auth_ref": [ "r655" ] }, "wldn_TopTenCustomersMember": { "xbrltype": "domainItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "TopTenCustomersMember", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationConcentrationRiskDetails" ], "lang": { "en-us": { "role": { "documentation": "Top Ten Customers [Member]", "label": "Top Ten Customers [Member]", "terseLabel": "Top Ten Customers" } } }, "auth_ref": [] }, "ecd_TotalShareholderRtnAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TotalShareholderRtnAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Total Shareholder Return Amount", "terseLabel": "Total Shareholder Return Amount" } } }, "auth_ref": [ "r723" ] }, "ecd_TotalShareholderRtnVsPeerGroupTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TotalShareholderRtnVsPeerGroupTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Total Shareholder Return Vs Peer Group [Text Block]", "terseLabel": "Total Shareholder Return Vs Peer Group" } } }, "auth_ref": [ "r730" ] }, "us-gaap_TradeNamesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TradeNamesMember", "presentation": [ "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsAmortizationPeriodDetails", "http://www.willdan.com/role/DisclosureSupplementalFinancialStatementDataFiniteLivedIntangibleAssetsGrossAmountsAndAccumulatedAmortizationDetails" ], "lang": { "en-us": { "role": { "label": "Trade Names [Member]", "terseLabel": "Trade Names", "documentation": "Rights acquired through registration of a business name to gain or protect exclusive use thereof." } } }, "auth_ref": [ "r56" ] }, "ecd_TradingArrAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TradingArrAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement [Axis]", "terseLabel": "Trading Arrangement:" } } }, "auth_ref": [ "r750" ] }, "ecd_TradingArrByIndTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TradingArrByIndTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangements, by Individual [Table]", "terseLabel": "Trading Arrangements, by Individual" } } }, "auth_ref": [ "r752" ] }, "dei_TradingSymbol": { "xbrltype": "tradingSymbolItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "TradingSymbol", "presentation": [ "http://www.willdan.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Trading Symbol", "documentation": "Trading symbol of an instrument as listed on an exchange." } } }, "auth_ref": [] }, "ecd_TrdArrAdoptionDate": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TrdArrAdoptionDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement Adoption Date", "terseLabel": "Adoption Date" } } }, "auth_ref": [ "r753" ] }, "ecd_TrdArrDuration": { "xbrltype": "durationItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TrdArrDuration", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement Duration", "terseLabel": "Arrangement Duration" } } }, "auth_ref": [ "r754" ] }, "ecd_TrdArrIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TrdArrIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r752" ] }, "ecd_TrdArrIndTitle": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TrdArrIndTitle", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement, Individual Title", "terseLabel": "Title" } } }, "auth_ref": [ "r752" ] }, "ecd_TrdArrSecuritiesAggAvailAmt": { "xbrltype": "sharesItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TrdArrSecuritiesAggAvailAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement, Securities Aggregate Available Amount", "terseLabel": "Aggregate Available" } } }, "auth_ref": [ "r755" ] }, "ecd_TrdArrTerminationDate": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TrdArrTerminationDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement Termination Date", "terseLabel": "Termination Date" } } }, "auth_ref": [ "r753" ] }, "country_US": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/country/2023", "localname": "US", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "label": "UNITED STATES", "terseLabel": "Domestic" } } }, "auth_ref": [] }, "ecd_UndrlygSecurityMktPriceChngPct": { "xbrltype": "pureItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "UndrlygSecurityMktPriceChngPct", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Underlying Security Market Price Change, Percent", "terseLabel": "Underlying Security Market Price Change" } } }, "auth_ref": [ "r749" ] }, "wldn_UnitBasedContractMember": { "xbrltype": "domainItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "UnitBasedContractMember", "presentation": [ "http://www.willdan.com/role/DisclosureSegmentAndGeographicalInformationDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "documentation": "Unit-based Contract [Member]", "label": "Unit-based Contract [Member]", "terseLabel": "Unit-based Contract" } } }, "auth_ref": [] }, "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued", "crdr": "credit", "presentation": [ "http://www.willdan.com/role/DisclosureIncomeTaxesUncertainTaxPositionsDetails" ], "lang": { "en-us": { "role": { "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued", "terseLabel": "Liability for uncertain tax positions", "documentation": "Amount accrued for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return." } } }, "auth_ref": [ "r407" ] }, "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccruedAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccruedAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureIncomeTaxesUncertainTaxPositionsDetails" ], "lang": { "en-us": { "role": { "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued [Abstract]", "terseLabel": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued" } } }, "auth_ref": [] }, "us-gaap_UseOfEstimates": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UseOfEstimates", "presentation": [ "http://www.willdan.com/role/DisclosureOrganizationAndOperationsOfCompanyPolicies" ], "lang": { "en-us": { "role": { "label": "Use of Estimates, Policy [Policy Text Block]", "terseLabel": "Use of Estimates", "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles." } } }, "auth_ref": [ "r39", "r40", "r41", "r133", "r134", "r135", "r136" ] }, "us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ValuationAllowanceDeferredTaxAssetChangeInAmount", "crdr": "credit", "presentation": [ "http://www.willdan.com/role/DisclosureIncomeTaxesValuationAllowanceDetails" ], "lang": { "en-us": { "role": { "label": "Valuation Allowance, Deferred Tax Asset, Increase (Decrease), Amount", "terseLabel": "Increase (decrease) in valuation allowance", "documentation": "Amount of increase (decrease) in the valuation allowance for a specified deferred tax asset." } } }, "auth_ref": [ "r409" ] }, "wldn_VariableInterestEntityPercentageOfCostsReimbursed": { "xbrltype": "percentItemType", "nsuri": "http://www.willdan.com/20240329", "localname": "VariableInterestEntityPercentageOfCostsReimbursed", "presentation": [ "http://www.willdan.com/role/DisclosureCommitmentsAndVariableInterestEntitiesVariableInterestEntitiesDetails" ], "lang": { "en-us": { "role": { "documentation": "The percentage of costs reimbursed.", "label": "Variable Interest Entity, Percentage Of Costs Reimbursed", "terseLabel": "Percentage of costs reimbursed to WES by Genesys" } } }, "auth_ref": [] }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "calculation": { "http://www.willdan.com/role/DisclosureEarningsPerShareEpsComputationDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.willdan.com/role/DisclosureEarningsPerShareEpsComputationDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Weighted Average Number of Shares Outstanding, Diluted", "totalLabel": "Weighted-average common shares outstanding-diluted (in shares)", "verboseLabel": "Diluted (in shares)", "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": [ "r212", "r225" ] }, "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "WeightedAverageNumberOfSharesOutstandingAbstract", "presentation": [ "http://www.willdan.com/role/DisclosureEarningsPerShareEpsComputationDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Weighted Average Number of Shares Outstanding, Diluted [Abstract]", "terseLabel": "Weighted-average shares outstanding:" } } }, "auth_ref": [] }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "calculation": { "http://www.willdan.com/role/DisclosureEarningsPerShareEpsComputationDetails": { "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.willdan.com/role/DisclosureEarningsPerShareEpsComputationDetails", "http://www.willdan.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Weighted Average Number of Shares Outstanding, Basic", "terseLabel": "Basic (in shares)", "verboseLabel": "Weighted-average common shares outstanding (in shares)", "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": [ "r210", "r225" ] } } } }, "std_ref": { "r0": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "25", "Paragraph": "1", "SubTopic": "20", "Topic": "940", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481913/940-20-25-1" }, "r1": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "SubTopic": "230", "Topic": "830", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481877/830-230-45-1" }, "r2": { "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" }, "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": "28", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28" }, "r5": { "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" }, "r6": { "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" }, "r7": { "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" }, "r8": { "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" }, "r9": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "SubTopic": "10", "Topic": "815", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-2" }, "r10": { "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" }, "r11": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "SubTopic": "10", "Topic": "280", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-4" }, "r12": { "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" }, "r13": { "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" }, "r14": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.19(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r15": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.19,20)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r16": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.19-26)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r17": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.20)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r18": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.21)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r19": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.22)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r20": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.24)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r21": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.25)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r22": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.29-31)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r23": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-14" }, "r24": { "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" }, "r25": { "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" }, "r26": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "15", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15" }, "r27": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "15", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15" }, "r28": { "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" }, "r29": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-2" }, "r30": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-3" }, "r31": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-4" }, "r32": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "260", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1" }, "r33": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "16", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-16" }, "r34": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "18", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18" }, "r35": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "18", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18" }, "r36": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "18", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18" }, "r37": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "20", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-20" }, "r38": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-21" }, "r39": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-4" }, "r40": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-8" }, "r41": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-9" }, "r42": { "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" }, "r43": { "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" }, "r44": { "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" }, "r45": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "280", "SubTopic": "10", "Section": "50", "Paragraph": "30", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30" }, "r46": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "280", "SubTopic": "10", "Section": "50", "Paragraph": "31", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-31" }, "r47": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "350", "SubTopic": "20", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r48": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "350", "SubTopic": "30", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1" }, "r49": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "350", "SubTopic": "30", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r50": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "360", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1" }, "r51": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "470", "SubTopic": "10", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481544/470-10-50-5" }, "r52": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "505", "SubTopic": "10", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-3" }, "r53": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "505", "SubTopic": "10", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-8" }, "r54": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "20", "Section": "55", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481089/718-20-55-12" }, "r55": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "20", "Section": "55", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481089/718-20-55-13" }, "r56": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "20", "Section": "55", "Paragraph": "14", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-14" }, "r57": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "20", "Section": "55", "Paragraph": "14", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-14" }, "r58": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "20", "Section": "55", "Paragraph": "20", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-20" }, "r59": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "20", "Section": "55", "Paragraph": "20", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-20" }, "r60": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "810", "SubTopic": "10", "Section": "45", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-12" }, "r61": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "810", "SubTopic": "10", "Section": "45", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-15" }, "r62": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "810", "SubTopic": "10", "Section": "45", "Paragraph": "16", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-16" }, "r63": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "810", "SubTopic": "10", "Section": "55", "Paragraph": "4I", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481175/810-10-55-4I" }, "r64": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-1" }, "r65": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "1A", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-1A" }, "r66": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "1B", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-1B" }, "r67": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-2" }, "r68": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4" }, "r69": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4A" }, "r70": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4B", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4B" }, "r71": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4B", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4B" }, "r72": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4C", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4C" }, "r73": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4C", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4C" }, "r74": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4D", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4D" }, "r75": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-5" }, "r76": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-8" }, "r77": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "25", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480238/815-25-50-1" }, "r78": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "825", "SubTopic": "10", "Section": "50", "Paragraph": "20", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-20" }, "r79": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "825", "SubTopic": "10", "Section": "50", "Paragraph": "21", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-21" }, "r80": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "835", "SubTopic": "30", "Section": "45", "Paragraph": "1A", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482925/835-30-45-1A" }, "r81": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "835", "SubTopic": "30", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482925/835-30-45-2" }, "r82": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "835", "SubTopic": "30", "Section": "45", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482925/835-30-45-3" }, "r83": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "835", "SubTopic": "30", "Section": "55", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482949/835-30-55-8" }, "r84": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "942", "SubTopic": "210", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03.17)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r85": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "942", "SubTopic": "470", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480848/942-470-50-3" }, "r86": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "205", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//205/tableOfContent" }, "r87": { "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" }, "r88": { "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" }, "r89": { "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" }, "r90": { "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" }, "r91": { "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" }, "r92": { "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" }, "r93": { "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" }, "r94": { "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" }, "r95": { "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" }, "r96": { "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" }, "r97": { "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" }, "r98": { "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" }, "r99": { "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,2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r100": { "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" }, "r101": { "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" }, "r102": { "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.6)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r103": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03.7)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r104": { "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" }, "r105": { "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" }, "r106": { "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" }, "r107": { "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" }, "r108": { "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" }, "r109": { "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" }, "r110": { "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" }, "r111": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r112": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1" }, "r113": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "440", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//440/tableOfContent" }, "r114": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "450", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//450/tableOfContent" }, "r115": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "470", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//470/tableOfContent" }, "r116": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-6" }, "r117": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-7" }, "r118": { "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" }, "r119": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.7)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r120": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "38", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-38" }, "r121": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "810", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//810/tableOfContent" }, "r122": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "815", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//815/tableOfContent" }, "r123": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-21" }, "r124": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(11))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r125": { "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(13))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r126": { "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(16))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r127": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r128": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1" }, "r129": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1" }, "r130": { "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.14(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1" }, "r131": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "840", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481161/840-30-50-1" }, "r132": { "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" }, "r133": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-1" }, "r134": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-1" }, "r135": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-11" }, "r136": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-12" }, "r137": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4C", "Subparagraph": "(c)", "SubTopic": "10", "Topic": "815", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4C" }, "r138": { "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" }, "r139": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(d)(1)", "SubTopic": "20", "Topic": "310", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481925/310-20-65-2" }, "r140": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(d)(2)", "SubTopic": "20", "Topic": "310", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481925/310-20-65-2" }, "r141": { "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" }, "r142": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org//250/tableOfContent" }, "r143": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Topic": "606", "Publisher": "FASB", "URI": "https://asc.fasb.org//606/tableOfContent" }, "r144": { "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" }, "r145": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "105", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479343/105-10-65-6" }, "r146": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "105", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479343/105-10-65-6" }, "r147": { "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" }, "r148": { "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" }, "r149": { "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" }, "r150": { "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" }, "r151": { "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" }, "r152": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(13))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r153": { "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" }, "r154": { "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" }, "r155": { "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" }, "r156": { "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" }, "r157": { "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(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r158": { "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(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r159": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(3)(c)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r160": { "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" }, "r161": { "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" }, "r162": { "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" }, "r163": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483466/210-20-50-3" }, "r164": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-10A" }, "r165": { "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" }, "r166": { "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" }, "r167": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-15" }, "r168": { "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" }, "r169": { "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" }, "r170": { "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" }, "r171": { "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" }, "r172": { "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" }, "r173": { "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" }, "r174": { "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" }, "r175": { "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" }, "r176": { "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(21))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r177": { "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" }, "r178": { "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" }, "r179": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5", "Subparagraph": "(SAB Topic 6.B)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-5" }, "r180": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "17", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-17" }, "r181": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-2" }, "r182": { "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" }, "r183": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-25" }, "r184": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-2" }, "r185": { "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" }, "r186": { "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(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r187": { "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" }, "r188": { "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" }, "r189": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-04(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-3" }, "r190": { "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" }, "r191": { "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" }, "r192": { "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" }, "r193": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1" }, "r194": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1" }, "r195": { "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" }, "r196": { "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" }, "r197": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1" }, "r198": { "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" }, "r199": { "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" }, "r200": { "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" }, "r201": { "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" }, "r202": { "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" }, "r203": { "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" }, "r204": { "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" }, "r205": { "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" }, "r206": { "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" }, "r207": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5", "Subparagraph": "(SAB Topic 11.M.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480530/250-10-S99-5" }, "r208": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480530/250-10-S99-6" }, "r209": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//260/tableOfContent" }, "r210": { "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" }, "r211": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-11" }, "r212": { "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" }, "r213": { "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" }, "r214": { "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" }, "r215": { "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" }, "r216": { "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" }, "r217": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "40", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-40" }, "r218": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "40", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-40" }, "r219": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "40", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-40" }, "r220": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "40", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-40" }, "r221": { "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" }, "r222": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "60B", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-60B" }, "r223": { "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" }, "r224": { "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" }, "r225": { "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" }, "r226": { "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" }, "r227": { "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" }, "r228": { "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" }, "r229": { "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" }, "r230": { "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" }, "r231": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//280/tableOfContent" }, "r232": { "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" }, "r233": { "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" }, "r234": { "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" }, "r235": { "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" }, "r236": { "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" }, "r237": { "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" }, "r238": { "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" }, "r239": { "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" }, "r240": { "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" }, "r241": { "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" }, "r242": { "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" }, "r243": { "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" }, "r244": { "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" }, "r245": { "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" }, "r246": { "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" }, "r247": { "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" }, "r248": { "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" }, "r249": { "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" }, "r250": { "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" }, "r251": { "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" }, "r252": { "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" }, "r253": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32" }, "r254": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32" }, "r255": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32" }, "r256": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32" }, "r257": { "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" }, "r258": { "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" }, "r259": { "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" }, "r260": { "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" }, "r261": { "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" }, "r262": { "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" }, "r263": { "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" }, "r264": { "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" }, "r265": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481990/310-10-45-2" }, "r266": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481990/310-10-45-9" }, "r267": { "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" }, "r268": { "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" }, "r269": { "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" }, "r270": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "4", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-4" }, "r271": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "4", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-4" }, "r272": { "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" }, "r273": { "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" }, "r274": { "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" }, "r275": { "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" }, "r276": { "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" }, "r277": { "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" }, "r278": { "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" }, "r279": { "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" }, "r280": { "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" }, "r281": { "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" }, "r282": { "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" }, "r283": { "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" }, "r284": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1A" }, "r285": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-2" }, "r286": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1" }, "r287": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1" }, "r288": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r289": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r290": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-3" }, "r291": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "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" }, "r292": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1" }, "r293": { "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" }, "r294": { "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" }, "r295": { "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" }, "r296": { "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" }, "r297": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1" }, "r298": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1" }, "r299": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r300": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r301": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(B))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r302": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r303": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r304": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r305": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r306": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r307": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r308": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "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" }, "r309": { "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)(C))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r310": { "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" }, "r311": { "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" }, "r312": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r313": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r314": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r315": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r316": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r317": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r318": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r319": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r320": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r321": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1C", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1C" }, "r322": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1C", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1C" }, "r323": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1C", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1C" }, "r324": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1D", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1D" }, "r325": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1D", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1D" }, "r326": { "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" }, "r327": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1E", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E" }, "r328": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1E", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E" }, "r329": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1E", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E" }, "r330": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1E", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E" }, "r331": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1F", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F" }, "r332": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1F", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F" }, "r333": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1F", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F" }, "r334": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1F", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F" }, "r335": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1I", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1I" }, "r336": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1I", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1I" }, "r337": { "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" }, "r338": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1I", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1I" }, "r339": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-4" }, "r340": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-4" }, "r341": { "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" }, "r342": { "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" }, "r343": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479837/606-10-45-1" }, "r344": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479837/606-10-45-2" }, "r345": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-10" }, "r346": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12" }, "r347": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12" }, "r348": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12" }, "r349": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12" }, "r350": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12" }, "r351": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-13" }, "r352": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-15" }, "r353": { "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" }, "r354": { "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" }, "r355": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-8" }, "r356": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-9" }, "r357": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r358": { "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" }, "r359": { "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" }, "r360": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6" }, "r361": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "70", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480794/715-70-50-1" }, "r362": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5" }, "r363": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5" }, "r364": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5" }, "r365": { "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" }, "r366": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5" }, "r367": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5" }, "r368": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5" }, "r369": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5" }, "r370": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(f)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5" }, "r371": { "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" }, "r372": { "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" }, "r373": { "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" }, "r374": { "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" }, "r375": { "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" }, "r376": { "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" }, "r377": { "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" }, "r378": { "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" }, "r379": { "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" }, "r380": { "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" }, "r381": { "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" }, "r382": { "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" }, "r383": { "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" }, "r384": { "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" }, "r385": { "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" }, "r386": { "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" }, "r387": { "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" }, "r388": { "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" }, "r389": { "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" }, "r390": { "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" }, "r391": { "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" }, "r392": { "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" }, "r393": { "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" }, "r394": { "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" }, "r395": { "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" }, "r396": { "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" }, "r397": { "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" }, "r398": { "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" }, "r399": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "15", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15" }, "r400": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "15", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15" }, "r401": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "15", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15" }, "r402": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//740/tableOfContent" }, "r403": { "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" }, "r404": { "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" }, "r405": { "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" }, "r406": { "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" }, "r407": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15" }, "r408": { "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" }, "r409": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2" }, "r410": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2" }, "r411": { "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" }, "r412": { "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" }, "r413": { "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" }, "r414": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8" }, "r415": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8" }, "r416": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8" }, "r417": { "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" }, "r418": { "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" }, "r419": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.Fact.1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r420": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.Fact.2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r421": { "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" }, "r422": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "270", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482526/740-270-50-1" }, "r423": { "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" }, "r424": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "19", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-19" }, "r425": { "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" }, "r426": { "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" }, "r427": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1A" }, "r428": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1A" }, "r429": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1A" }, "r430": { "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" }, "r431": { "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" }, "r432": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4A" }, "r433": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4A", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4A" }, "r434": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4C", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4C" }, "r435": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5C", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-5C" }, "r436": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480627/815-20-45-3" }, "r437": { "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" }, "r438": { "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" }, "r439": { "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" }, "r440": { "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" }, "r441": { "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" }, "r442": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(i)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6" }, "r443": { "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" }, "r444": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480870/815-30-50-6" }, "r445": { "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" }, "r446": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1" }, "r447": { "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" }, "r448": { "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" }, "r449": { "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" }, "r450": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-2" }, "r451": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-2" }, "r452": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-2" }, "r453": { "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" }, "r454": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482833/825-10-65-6" }, "r455": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482833/825-10-65-6" }, "r456": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482833/825-10-65-6" }, "r457": { "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" }, "r458": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20" }, "r459": { "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" }, "r460": { "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" }, "r461": { "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" }, "r462": { "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" }, "r463": { "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" }, "r464": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482900/835-30-50-1" }, "r465": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "5", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479832/842-10-65-5" }, "r466": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "5", "Subparagraph": "(f)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479832/842-10-65-5" }, "r467": { "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" }, "r468": { "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" }, "r469": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-2" }, "r470": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-4" }, "r471": { "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" }, "r472": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-5" }, "r473": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-5" }, "r474": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-3" }, "r475": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-3" }, "r476": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r477": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r478": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r479": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r480": { "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" }, "r481": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(g)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r482": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(g)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r483": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(g)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r484": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-6" }, "r485": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479773/842-30-50-7" }, "r486": { "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" }, "r487": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "848", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483550/848-10-65-2" }, "r488": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "855", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//855/tableOfContent" }, "r489": { "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" }, "r490": { "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" }, "r491": { "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" }, "r492": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "910", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482546/910-10-50-7" }, "r493": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "912", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "11", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482312/912-310-45-11" }, "r494": { "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" }, "r495": { "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" }, "r496": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "926", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483194/926-20-65-2" }, "r497": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "926", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483194/926-20-65-2" }, "r498": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "926", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483194/926-20-65-2" }, "r499": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "928", "SubTopic": "340", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483147/928-340-50-1" }, "r500": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(10)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r501": { "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(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1" }, "r502": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(26))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1" }, "r503": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(27))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1" }, "r504": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-05(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479557/942-235-S99-1" }, "r505": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(12))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r506": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r507": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(21))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r508": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r509": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r510": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r511": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r512": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r513": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(11))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r514": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(16))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r515": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r516": { "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/2147483586/944-220-S99-1" }, "r517": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r518": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r519": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r520": { "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/2147480149/944-235-S99-1" }, "r521": { "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/2147480149/944-235-S99-1" }, "r522": { "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/2147480149/944-235-S99-1" }, "r523": { "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/2147480149/944-235-S99-1" }, "r524": { "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/2147480149/944-235-S99-1" }, "r525": { "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/2147480149/944-235-S99-1" }, "r526": { "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/2147480149/944-235-S99-1" }, "r527": { "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/2147480149/944-235-S99-1" }, "r528": { "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/2147480149/944-235-S99-1" }, "r529": { "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/2147480149/944-235-S99-1" }, "r530": { "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/2147480149/944-235-S99-1" }, "r531": { "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" }, "r532": { "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" }, "r533": { "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" }, "r534": { "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" }, "r535": { "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" }, "r536": { "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" }, "r537": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r538": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r539": { "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" }, "r540": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "825", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479383/944-825-50-1B" }, "r541": { "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" }, "r542": { "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" }, "r543": { "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" }, "r544": { "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" }, "r545": { "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" }, "r546": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480767/946-205-45-3" }, "r547": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480767/946-205-45-3" }, "r548": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480767/946-205-45-4" }, "r549": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480555/946-210-45-4" }, "r550": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-1" }, "r551": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-2" }, "r552": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6" }, "r553": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6" }, "r554": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6" }, "r555": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6" }, "r556": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r557": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r558": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r559": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r560": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(13)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r561": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(13)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r562": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(14))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r563": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r564": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(16)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r565": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r566": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r567": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r568": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(2)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r569": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r570": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r571": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r572": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r573": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r574": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r575": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r576": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r577": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r578": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r579": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r580": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r581": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.6-05(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-2" }, "r582": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.6-05(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-2" }, "r583": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483581/946-220-45-3" }, "r584": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483581/946-220-45-7" }, "r585": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r586": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r587": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(g)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r588": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r589": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r590": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r591": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r592": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r593": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r594": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r595": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r596": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r597": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r598": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r599": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r600": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r601": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(1)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" }, "r602": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" }, "r603": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" }, "r604": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" }, "r605": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1" }, "r606": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column C)(Footnote 5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1" }, "r607": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2" }, "r608": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column C)(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2" }, "r609": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3" }, "r610": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3" }, "r611": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column C)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3" }, "r612": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5", "Subparagraph": "(SX 210.12-13(Column A)(Footnote 3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5" }, "r613": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5", "Subparagraph": "(SX 210.12-13(Column F))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5" }, "r614": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5", "Subparagraph": "(SX 210.12-13(Column G)(Footnote 8))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5" }, "r615": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5A", "Subparagraph": "(SX 210.12-13A(Column C))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5A" }, "r616": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5B", "Subparagraph": "(SX 210.12-13B(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5B" }, "r617": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5B", "Subparagraph": "(SX 210.12-13B(Column E)(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5B" }, "r618": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5C", "Subparagraph": "(SX 210.12-13C(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5C" }, "r619": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5C", "Subparagraph": "(SX 210.12-13C(Column H)(Footnote 7))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5C" }, "r620": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6" }, "r621": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column F)(Footnote 7))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6" }, "r622": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "505", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481004/946-505-50-3" }, "r623": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "948", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-29(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479851/948-310-S99-1" }, "r624": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "954", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481027/954-310-50-2" }, "r625": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column B))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r626": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column C))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r627": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r628": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column E))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r629": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column F))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r630": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column G))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r631": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column H))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r632": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column I))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r633": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r634": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "976", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482856/976-310-50-1" }, "r635": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "978", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482707/978-310-50-1" }, "r636": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4D", "Subparagraph": "(a)(1)", "SubTopic": "10", "Topic": "815", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4D" }, "r637": { "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" }, "r638": { "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" }, "r639": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483444/210-20-55-22" }, "r640": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482739/220-10-55-15" }, "r641": { "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" }, "r642": { "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" }, "r643": { "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" }, "r644": { "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" }, "r645": { "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" }, "r646": { "role": "http://www.xbrl.org/2003/role/exampleRef", "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" }, "r647": { "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" }, "r648": { "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" }, "r649": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69E", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69E" }, "r650": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69F", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69F" }, "r651": { "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" }, "r652": { "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" }, "r653": { "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" }, "r654": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91" }, "r655": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91" }, "r656": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91" }, "r657": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91" }, "r658": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91" }, "r659": { "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" }, "r660": { "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" }, "r661": { "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" }, "r662": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "18", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480482/715-20-55-18" }, "r663": { "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" }, "r664": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "4J", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481175/810-10-55-4J" }, "r665": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "4K", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481175/810-10-55-4K" }, "r666": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "53", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479589/842-20-55-53" }, "r667": { "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" }, "r668": { "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" }, "r669": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-1" }, "r670": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6" }, "r671": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480493/946-210-55-1" }, "r672": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480833/946-310-45-1" }, "r673": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1" }, "r674": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2" }, "r675": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3" }, "r676": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5C", "Subparagraph": "(SX 210.12-13C(Column A)(Footnote 1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5C" }, "r677": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5C", "Subparagraph": "(SX 210.12-13C(Column B)(Footnote 1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5C" }, "r678": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6" }, "r679": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-10" }, "r680": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-11" }, "r681": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-12" }, "r682": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b" }, "r683": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b-2" }, "r684": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "d1-1" }, "r685": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 10-Q", "Number": "240", "Section": "308", "Subsection": "a" }, "r686": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "16", "Subsection": "J", "Paragraph": "a" }, "r687": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1" }, "r688": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i" }, "r689": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "A" }, "r690": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "B" }, "r691": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "C" }, "r692": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "D" }, "r693": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "E" }, "r694": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "ii" }, "r695": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "iii" }, "r696": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "2" }, "r697": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Subsection": "F", "Paragraph": "1", "Subparagraph": "ii", "Section": "6" }, "r698": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a" }, "r699": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1" }, "r700": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "i" }, "r701": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "ii" }, "r702": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iii" }, "r703": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iv" }, "r704": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "v" }, "r705": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "2" }, "r706": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "3" }, "r707": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "b" }, "r708": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a" }, "r709": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1" }, "r710": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "i" }, "r711": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "ii" }, "r712": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iii" }, "r713": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iv" }, "r714": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "v" }, "r715": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "2" }, "r716": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "3" }, "r717": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "b" }, "r718": { "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" }, "r719": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v" }, "r720": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "1" }, "r721": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "ii" }, "r722": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii" }, "r723": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iv" }, "r724": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "vi" }, "r725": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "3" }, "r726": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "4" }, "r727": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "i" }, "r728": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "ii" }, "r729": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "iii" }, "r730": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "iv" }, "r731": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "6" }, "r732": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "6", "Subparagraph": "i" }, "r733": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1" }, "r734": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i" }, "r735": { "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" }, "r736": { "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" }, "r737": { "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" }, "r738": { "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" }, "r739": { "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" }, "r740": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "ii" }, "r741": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "iii" }, "r742": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "2" }, "r743": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "1" }, "r744": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2" }, "r745": { "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" }, "r746": { "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" }, "r747": { "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" }, "r748": { "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" }, "r749": { "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" }, "r750": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a" }, "r751": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "1" }, "r752": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "A" }, "r753": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "B" }, "r754": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "C" }, "r755": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "D" }, "r756": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "b", "Paragraph": "1" }, "r757": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-T", "Number": "232", "Section": "405" }, "r758": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(a)", "SubTopic": "20", "Topic": "842", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-1" }, "r759": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(a)", "SubTopic": "20", "Topic": "842", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-4" }, "r760": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)(B)", "SubTopic": "20", "Topic": "715", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r761": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18" }, "r762": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "SubTopic": "825", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479383/944-825-50-1B" }, "r763": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "SubTopic": "20", "Topic": "842", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r764": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4H", "SubTopic": "40", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-4H" }, "r765": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//210/tableOfContent" }, "r766": { "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(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r767": { "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(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r768": { "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" }, "r769": { "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" }, "r770": { "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" }, "r771": { "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" }, "r772": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r773": { "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" }, "r774": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r775": { "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(f))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r776": { "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" }, "r777": { "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" }, "r778": { "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" }, "r779": { "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" }, "r780": { "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" }, "r781": { "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" }, "r782": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r783": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-18" }, "r784": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r785": { "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" }, "r786": { "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" }, "r787": { "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" }, "r788": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r789": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r790": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r791": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r792": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r793": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r794": { "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" }, "r795": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1A" }, "r796": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-2" }, "r797": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1" }, "r798": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1" }, "r799": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1" }, "r800": { "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" }, "r801": { "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" }, "r802": { "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" }, "r803": { "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" }, "r804": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1D", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1D" }, "r805": { "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" }, "r806": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r807": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r808": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(10)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r809": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r810": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r811": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r812": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r813": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(6)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r814": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(7)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r815": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(8)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r816": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(9)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r817": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r818": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r819": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r820": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r821": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r822": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r823": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(6)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r824": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(7)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r825": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(8)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r826": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r827": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r828": { "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" }, "r829": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r830": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r831": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r832": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r833": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r834": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r835": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r836": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r837": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r838": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r839": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r840": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r841": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r842": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r843": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)(6)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r844": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)(7)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r845": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r846": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(j)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r847": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(k)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r848": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(k)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r849": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(k)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r850": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(k)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r851": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(n)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r852": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(q)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r853": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-2" }, "r854": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-3" }, "r855": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-3" }, "r856": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6" }, "r857": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6" }, "r858": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6" }, "r859": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6" }, "r860": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6" }, "r861": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6" }, "r862": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(6)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6" }, "r863": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(7)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6" }, "r864": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6" }, "r865": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-8" }, "r866": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-1A" }, "r867": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-1B" }, "r868": { "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" }, "r869": { "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" }, "r870": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20" }, "r871": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r872": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-3" }, "r873": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-3" }, "r874": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r875": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-6" }, "r876": { "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" }, "r877": { "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" }, "r878": { "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" }, "r879": { "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" }, "r880": { "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" }, "r881": { "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" }, "r882": { "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" }, "r883": { "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" }, "r884": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(1)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r885": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(16)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r886": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r887": { "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" }, "r888": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "13H", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-13H" }, "r889": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480767/946-205-45-4" }, "r890": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" }, "r891": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" } } } ZIP 89 0001558370-24-006577-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0001558370-24-006577-xbrl.zip M4$L#!!0 ( ,V4HECW@B0ZJ!( %>[ 1 =VQD;BTR,#(T,#,R.2YX M;D]54L@T.F9I*;[%@$GH2X!!DC/S+Y,"5N :HS- MR'(^]J_?(\DV-OZVDVYVKU\28^E\2+\CZ>CHV/[EGR\[$ST1YE#;^GQV<=XY M0\32;8-:F\]G+E^W?C[[YY?_^.&7_VRU?K^9CY%AZ^Z.6!SIC&!.#/1,^18M M[?T>6^B!,$9-$]TP:FP(0A>=\T_GW?-+U&I]D2QNL ,DMH4DK^[YA5\P\+C9 MUC6Z;'?;W4[W(_ITW>M=7UZAV8-?[0$46].<>B^.<>WH6[+#B&.V(7R"=\39 M8YU\/MMROK]NMY^?G\^?05,#6^>ZO9-L.KWNU1G"G#.Z(=JNQ5F:':K"B#R+\#QSARJ',4*364-!E"VFNI-<519% M*K_$@/)&]<75U55;E@8*<';4GQ&EH;@MB@7[;JO3:_4N#@W=%!G;7K4 CA=] MF]P,41)I18$9+K")1&N(]@G(HAG&2RV'8TLGAWF1YL^+K6,J(W/<&8=Q)R<. MFCBK?%*S"@VZ3#=2>DPWHJ:N&RW'7:56%H6*X,L/",GE!UN6S:75BUO^S?V> M6FM;W8%[PEZN!9A+L 0D+A[GH]1E0**^ *9R\1G8E@%CC!APX=@F-80QW&!3 M=-IB2PAWSA"%]I4A\!7S53/(FEI4-@+0Z710"P7LX'HPG0RUR4(;BJO%=#P: M]I?PXZ8_[D\&&EK<:]IR\4O[F-61$!=4FEI?Y#6L5@[PEOTF9G6/V*N20:AC M4W?-\G0'M5+)O)L^3.\'7E#J3-<#>P=]L163Z!,9@3NV(T7@S&.1"7"W*,"+ M)?Q[T";+!9K>0M'#;*[=0[W15PV-)O!;:T"O!#IVMK>F_5QHY"839@+\L2+ M_<4]NAU/?VO&<@C6(75TTW9<1A;N?J\V!-B\I1;,IQ2;02\/,<=SXL"*JP-J M JDAX9B:'LCUV61 _A$@OP"8#T($_H^SV5BBVQ^CV]$$YNH17 68(["!/M0[ M2$-"'/K@"?RQL8)J5J#][=*]^-&WC#$!=WYKF\8()FG[20WD">%+O()&LP/; MRL922UJ.376KVE2@%,*6@0*U4%BO_T*@&=3UE L+:DRPI@GV=9VYQ!A3O*(F M:$B#Y6-1Y/(@J);"PBVR*&A-$G4/>)!"".8&/%9 #/\=V&>V)L MB+9>$UW4M(B39A5UV65:QF5\6AEJ\]'7_E+XE0>[&$T6R_FC\DY::FD24I$4 MBR)R&_.H8QXPWMR=: [HP;>$)6PHQG9%6RG).\=P8E-* <,):8"D"BBB U)* MH ]"C1\;0\HSI!6?KDRZ47$^T9.V(_5(M8X\@DS(/\7=VJ%VLT33F_'H#G"' MS8R8&PY<&P#+ 6ABQZ%KJN,2&";2Y,"8,.7'88PP;I#,1E(ZU8[\J[WL1=@@ M!;[TBIF8_13';*SU%YI 2C)#'K<&J") I05C,T'+(\H!L)<*8)@Q\C@CR;I! MLPB:T[T\ZK(VZN<#YBZ3&Y7I6M[)WWA5YI.#^4^IF >RU/!UX-9!'K+7WJAN M=EWU;.&."7^6PO9$G+!G3\K%2',0_[D,XE($.LAH("X"L=K9D)J#O327'."O M4H'W)#4#_?VLH,PP+T*8C?5%ISC6S1 O!ZZ&F05SI#,C;+'%\'LOMZDNS]H3 M%2/* O7B(KZWU?KSR6ARMT S;8X6]_VYACYHL\6/WA[7X]X F@BHEZ[H_^]; MAF9QRE]'UMIF.ZF^AV*1FID'K)TK.1[]!,G0I3CN4,Q0B%N#4Z7$EAD,+(MO M":?0M-)9+E'JG)27RRHI+^A#1$8S'"ME0RRXK?\E3@<)<\2Y(7\MFQ:1P"$3 M[EZU_(C%BI; M"5NOQ^MI 8H,2&$IC2^FT_E=?S+Z;QE>1/W)$$UA5?6"C8#F\EZ3*4W]20-B M(HASHHO%49J#&8P-9,F1/Q')) CC>_4P8>DDP?-4FCUK3W17S,,JG6V1#5#7-J\&O M_+%XN8/N;-PND\XQLX^N&\@*G%_F'%5F@U+@<+D!(3TV29.&2 G*#.Q@],1S](I'/=$'7T@SRV5&TY;"?4Z-J7FE&3CU.KUX*IX? M64,?%(,&@XHAMF1T"M-EXO8QCENQAY@:4$L$<9(13*Z4"=>G.%RQ-/,&F?S( M3C(@D;),'-(SCYO>KQ4A2)GK"I)E8G:5,-45B!8TB);=O29CF%XQ"S78R<90 M2\TA:Y"JY\S?0EUL_D$P2TOSK<0C ]^/-1U\D1PJY"$IL$D;+.;NWQ$+< O/ MGREPYQ-D8MN+8QML"EK(8QK.(FP K+M7N+-M0S"H_#*$8P:9 '^468657H'@ MRVD@KPOYK="+C.D3,490R]J(EQ7V'8=PE8G?WXF$)7%0%GI0'&XR[DWDE6WE MS23G&-FGJD:F%&R90D-T4!$I'8,G"3P]96IS^&'ZL*J-G;ZCG88[&OQ#:AOO M89/I4G+L+_;$X9O97\3"E$Z-H=5):2KLVE1EDVDJ%9*@&D?H#>)K$_(\8,2@ M_!;KV<\I%B?,!+I('*Z%@#M2[-&!?P-MD0!=X7&<5ST3QM1DK6945H@FI+E[^D:_.OA#U7Q9L.(OJH:1RBC').*Q MR&(F$9&'A,#&%@HGI'_%IJO.'$UPUW'ZVV@*T60AG)?"#C\#QBC@W$!9.DF@ M#XZ]04U71. 61/?>W53\7339])D0)QPY9[R6)BP('20UD-<)TZ8EQ!6@RDQJLQ0BY\$P8JG4I2&/Q\@IQ4DM0W M-S0 ?K^/O SE5SFI/Z3#QYG9KVS^UN)S3G@K)L&7^PQ,6%N5:Q ^_6W>-?T& M?L4MIDSXYVEF5Y(ZY["WO*_10D*&W$(T2!H;AI1=_"PPDR+GY"@6\ E. MC@YD[6Z$7> MX5#G\YE#=WN3G'GWMHRL/Y\]FX;5ZG:Z'SN][M6?T-3SEYWI5Q'L(Z;QLF+F MN>Y'%Q=775EK6 B;V'\0@^6-M7_@RUWZI5 M@$/95AU!=X*- B,IVZBH79U@FTR\*MLF("'FNS:GLGO$L65@9H!#,W =;N_Z M+]09VCM8=(9DC5TSX0U'!4@RYD=H5R?V016?)P*F2'%%@BU2?)'/^/_GE/A+ M^\4QKO%^3\%S$[>\&Y9E*^WE/7$+C--F'%EX1YP]U@^6(XW.(?KYQGYJ$]T MX^OVSI"C;\D.CVWU54=5VTFK+BZ$F??.091G826D&H26D>I7%Q?EI$8&F<%9 M6XQTZ DM>A?EC,%C=RE_&;RP?)] "+XL+'*- MG97DX#HMT8E.$0,,$VTPWGNV#[-+P*:&/8;-H&#S0R; J\"?V*!:G2#NE.N# M@)_#>"GY?GTE&W[5F('DYP_8:YE9*$SB_ZBA@TI^9M927)12AUSL; M+!ZSUQ$G.[$:@N+NR@$"5T92F.WN_:H4JIPA"QP9$17]?,:9*YPT6;92'Q[Z M?*;+!]K\VWOYS.I2RC-]LR[44W78-:&_F5FQOP MO R1#P)%'KN@T17IW[,[#+*JVAOJ@V>$W8-/]HP9@88M[#47EP]DMR(LU/(" M=54K8<%MR07VVI!>7>%V8BAE6.=^.Y/;7:Z%?1=\3'M%8;9?,E?_2YP$W%)B M&L&Q>:RAQ4E.L+UALP.]9_@5EAQ3QCH&+F/1$5RD\O<9R,I!X>GM]!^*^HWR MK4AW$+F9H98E%Y]H6Z9\2YAX+#AFBK&2$[2X&;.?J -5;FTVM-T57[NF]XDB M)WB <@=+6MCRRA"=[MSIGRX>]KA]KX.C@RRK7KAU< \,]3O/'PZ?KA?N2KJ$[$-*CLD3*B^(T)JWVH#ZH0'X]H[A?5[(QRS9ZX8GZ9KA,/PU]#3,,%T^^KNT.3:];9'PK1@50<'UP+,RY[%O_JE%\FWY'O?<7K%_P^&9:\>/%N7>[DBI'@,[M<8)XBY6 M=NA#BLVDS=)1T0GJ?V<_$69)ZX@U(*'L!%LP+%-?.)(+#W!5@S% M>8)G\70E)8M7/'A[&/: N;Y5 7W5O^D*+K8[AXQH M,=V)A(C T9C#W!9I<(':)S#SP>S,1(;ID*C_(VM.-UN8VQ\=[]UPH485J7RR M 38""A+OR2IK(V,G(L_=?[5Y@MMWNJ* M7$ZI(XYU%H'![)R;MV-\4MWEV[E4=4G8#HR=RXOT,9%4][O/U&,;MO8; MN.<,A=/)U?MO?@,%181\9C_#@G.\)I>@.<&5.@F5,>R#I85=ZZ,DU-H.DE*3-MVEZ9U'3]>%U@W)KO;1#T9_#UL7; MU(0WY]5YG&A(*0IWZ F3\)*?5>E$VY7B:\:&?$Z]FL.\S+ ^GA+26O:KBTVZ MIJ S+#%3!@T@#(9)GS$,4GR#2_IPISL5\?>6.0F3YV7(?I0N.@R P.B,WDO@.LV2QU3!Y1LT)4'N'76J[DW(\ MFU_U5-KL.Q$YC9Z3%3AZP7E0:HO3ZOU?::[OR0E#A>4 /%T1E'#NB6F,K"6# M40 E*JP]DN_DHD]$M=FGG!-Q%JASM9YX3XJ# :*'[Y&K,->WD/;.79\Q M*9?L^PKKSP-^H3MWI[[!,"/,7XKJK6KI7$_%C'-FJN0C/N]0 HLU6SKB!5B&=:UMD___'?__7U;Y7*O^[[;6/L MFL&4.KYA,DI\.C;>+/_%&+JS&7&,)\J89=O&/;/&S]0P:M5/-Y\N/ET;E4I8 MQCWQ((_K&**PBT^UY2\/87FN\\6X/K\XOZA>7!DW7RXOOUS?&;VG9;HG:-[$ MRDIH6\Z_O_!_1E"A 3 =[\N[9WT[>_']V9?S\[>WMT]OEY]<]@SYJ[7S?SVU M!^8+G9**Y7@^<4QZ9D#Z+Y[XLNV:Q![N[ES\NDP*!5DI12]A@_0,XRMS M;=JG$T.4\<7_F-%O9YXUG=F\;O'="Z.3;V=O]MBI< :JEQ=W',G_#'R@D6O( M@^N,J0-TPQ^>:UMC3N\]L7DM@Q=*?>_,X-7\[+?B$$"#QL3Y9+K3<_[[N5:) M JV2",]WBW3YJ]>=/+C3&:,OD,9ZI2WH85-:"/;,.G!*@W@OC[;[5@S_DI+W MB+QA>:;M>@&C@V &Z7ECB/UH.:"7%K&7#6P0G_2IYS/+A';SMC:H3RQ;50X% MU(-4*LW_!-:,?Z@[XS:%^E]<>]P"?79?Y]1VJ#\DH\ F;%7L[H2W77.0RKAN MFBR@X[9%1I9M^1;U=B? E+I*D4Z#,NL59O!7NFQO"^8[)BP9;S%J_*!@M#0G M$VKRE [UCN4F:66B+@[HPP4RWF>?WPB?L#$1-6=B&\*F";S5X1'+M\9'U4MF*,8 M!?H*%86L[!+1SZ<>NFN=T*\&BTP*U0>EDDM!WB3, 3WU>I0-7@A\GHFY-_"W MFN 42]5&;!+;Y+81%-*&WT*4O/(B_2H1<=)WGT*.\?);R^=U5:NU:M6H&,MR MX>^';J?1[ R:#?[7H-MN->I#^'!?;]<[#TUC\*/9' XT, O$@-EVS5B3;.ZA MXMON#9<"DT(O_A5][P(>)N, MJ/WM;/'E>1EM>0@8] ]_K4F):7[=7'Z^KE[N[SW>11D>4IL[B M[2?,7)0/?V[H49R9,,6Y%TRGHK2*!>0O\D^8.UU)+*S$U6FPR\:4?3NKG1F! M!^UP9[P.8I\9;]1Z?O'%+WMF@J_?ZHYPK'!/P2NQQ1+%?R",?4 '_X/8 94P MI)07#W/J/&URFQ^J"NN MFZ8;@#[VJ4E!-TL'/),ZQ,?7/3 ZMGSN M.4IF?I]5'[8&E2ZI4!.O$ TQPE.Y0NAE#C#R#(>M'#GQA91>(Z*TQ^B,6./0 M=0=J+2"IF.8*.8^#Y+Q 0[9O4+'MSBCS/WJP$N9C6'1?,.J\Z/,&=B<_ :X8 M[<0(MMJQ:- 9HZ8UI\X9UZ4S/= A$YD" T 2+F!,=US&S#>KUM(= E7K#$9I- M#3JAT.#Q/"YC2-ZSNI8\PR%PI=GZD+!;K(-C9/L1K*6![YK_YN%OE'G<_O(_ MUCC,3EY>^R7J%DF!1[]4Q1[5O"P@"/=.(DU.7R]O)HQ#O(!5XW7)R^,L^:!Q)BJ2G9[IB.C. 53%%5+JRMIUGH>43:/#DVSUDY TCOD2,-_B(5=U M_:.*2\7 *MF%O#D:9?HC,W(= \-Y(&*WJR1C4;;[.2O?,1">#R3V+2+A@(\( M0VVK(3'#49"LAPZ[Z97IU98GQ,-F'H^Q(AZ$[HT>"[=9!(2T$/N$E'A(TR1B MDT%5= C=C@_N=.HZF?RM)XO#NP)XGP^5/"5H"#M??3RVYJWH$6O<$2:D!.L>MS5U_.UX[^[/!.$+U5/" M@R'\[ZG9&0Z,[B/\]-3K-W] NM8?3:/5@<_-,ZPGAQ.DDS%:IN;8]T82]5>C ME&P+*9H&7X]5(""V992)!J%!O6KQ(V#GVYJ6$\ H$[IDH./>TXG+Z#(RC7K- M=Y\1@&(YA'VT0'IB*<\W1%T;FO;<@)9D53XZ,H6?C)A M6:!V?-&,]"X+CF80C,SE/0@#REXM4VSD"(?1O.$\X;KME*.$P^:S*, (W>I+ MBR(\+)]I)R_2X6,TOW&D!FX'@ZND=XK1 I2J3X67+FS5?X\Q<4!W^#B=E4?M;Z:W'8$=H_7=,,9L0Q/^0G&J-)#I]29538H_;$M9M9 MG3<]\?&PJ8$/X1:E_J4JRO> '#*INB 1'H$0UMR "D_9=^J '&R.9#RU',OS MN51>%W>GI\7BJ95P/,QO"QKA50\=UW'C=F4Z[]+T^%@NWZNL)RR]F;V,K; Y M^!B2*$2YK::2%9\"Z=&7M%&5$S5&@YP/?;J#17JFXR,\!UZ$+I/E>!BV^QYF M.OE^DB1U'.PM@+TIF]S<6\UJX##ZIM,BXV)/9'TGEL._%!?[]:D9>Q@(;!SY MWE.15>!3<0EYT+0WVX*"]H+?) 9(0B::C:5;+FRJ_,'_])NJ%(O ,^H5(Y"K<7P;2,U M[*].S+>K4\*I5@GP:$5!W&R2G0$6.YE1/QW\;=-\?DQ9UA-0@-QB0+BJ6:S- M3)"0SMIU(_T)\*Z'/7/GHH2%S\:%H4IKV8Q<>&]+%Q6*?,):,86@LC<]B@LL$3 ]:#T1YF%UX6,)1D9X#./8[MC<7NILOK\E=VIE93T 9 M2M!1 MA+6LIZH+*F)8J .FZ&PUVWIY#>Q6ZY5E*2>I)/H26>C+KNY=E3@V-YN^]DAD MXAG6[%Q'S/HV$EBP+/=@EKT\E8BIY;Q2;YOXEX0"\.@(VO@75:EA#_$'PTE$ M\0W=N@F28U3Z/K0L/D:Y #Q:51"W"?$SVPDC,[ZFA/4*(# I'8L3-0G[@"H: MHEY"3"I7500WWA6O(EM* V&@C41&\TF]#U+8?GTX M0CZZC#>^06>N9_G>#VI#TX<,+'+XI>E0]OP!XH"4UBOMTQ$(8I$S+M1L)=M7 MM7A4LR %68\0*$F$&"?%/IV%F+H3A8>G9,F/6&5R0<=XH"JB]H E8# R>S!I M"R=TZBLGV1E/@/Z<0E *,"WWGO:56K<4^JEY5:T;%6-7&SS[_ M[/7:XF1SO6T\MCKUSD,+_EJ>=S8:]6$=TJVJ-7B]QF]AS;^?'>4):$DOVK+, M?=\./&_06C/JT,$8^X"^E/I*FTI>?,-'(:3'KAG.+0>$%^G$D4L7"-%$)T"Q M N#2KK[0F1F6WGH0@+!O^8-6K>D,IM+Y_1@PMP[)")K!5L7J3B 7>2>09>L, MXHR-9?N,: /_;D 3(6W8RFA%^.<;Z>8)_!U==:P% 8A;6&+/ANE>?+F/BO=O MVN:!-+]3KPQAZM0<'V$NYF\RESJD[D]UURSS4D2-<&*6BD(\9*&KJB+3T6C9 MUGQK:)Y<<@B51D=F"B-?WN+^4C2YHA4J4X3Q%GDGCC+,G;_FYMW/S=O/RBH[ MKB6NL38C^W474%=Y%U!AU4:D[@-8%6T*["%@3!ZBEY*^D*B?L/S84T/2=YBD MB?$-$YER7D;/Z($JWNY))V8>I[-\]2E96;(S' %!&L 06@8AB'O7@2:I]?EX MV@-E4!]3\8^OI/>P\* BWTL3=_W*V%'*$T=T"8C*=@]K]S,];,4_J")AJSF= MV>X'I?QX&'>40OL2YZBD=(?,BC*>XA\TD;[GN+J."%2D1S[XBQQ9/2<[UR&S ME!.=>A3%SFS\!F76*^$AP4L+O^5X/@O$#D3LHO1YP#ND=*BG:>=?;VZ4-)K] MUA_U8>N/9L3*;W4&P_[/^<7BE?G..J_>$/4;L08<@+%?S!7T<\_(KF_]C]2" M_6&$>5-W^S)"6AWX!JH=*=I6SREH2Q"A2UD;],[[KK2"OY2R>/%A\,&ES\\1 M!V.:+'0GZPVGG,)D'6F*(=IBQ!ICS%MC_,;;\_N!3][K[\YH].I55D1C6?)8 MO0W,C!(/:[3*^\Q0'B$@G 77 ?#0886!)USXS$_49JA2D54V()>6J^ .8@]JN M\SRD;,IE).DY\21[?]IAY*^LD44,<'W*'8B2]J9EB>OH%>AHV:]0)A$0?Z-! M$PW"X7UQJ6>XCRWVON3/QTI2'R)UZD PCI.QF4%WJ$SPQFT.E;$:CF^T_+7_ MKA:M/GT/,"$E[B[V*S'@2Q4&PF$QVG3^_I(R7:O$A\Y8!A($IT!$T)4G_@WO MI-8;"6\W1\)VLSYH\O%/E&J$Q1["\,?;RZ>Q-1V-?%]B1.[B ?;TE]Y2Y?YX'P<@.KSISI[+N M&4]T(*PI-!KCLXG+6W9EX[H\X8$0H]CPG&\:[MCFB#ZY?D]L/BX,7BCU=>V/ M2ZG]$:W!"*LP1!T'8(Q$A\JLV]$E:4N5*)%- M$C%D+N,R:4E46*7^5@>_'/8:DV71Q:DZA!_H*.11$*E@""\_*) M*V5Q3V+#FDPH+/)-[1BTSSJ+8U&7L:KLK]7P*CNF6>*G,P9*^4$ .FZ^FY T M]5Q$KK(.=YC0GBVT1(!]Z5N()_^XR-@BK/";/ M:6*@0O8A2FAFM(HN:NR30"I('0^Z?D$GH"7J MN+%'9F>))MVWJ9C[!#0B RQV#Z82MA3/I7+^$U(%*5SL_DD5="E^2=7LIZ,* M4K0YO8_[7&MLYWVJ5=67%P?H>]K1>J*$R(O$)FEZF;3*.+S>G[P+L3UHA %X M6Q^P.6IVX/?PXN/PFH.8-3N4']U15;]%1I+1C8=NH!BZCKBW6)^ M&39E,._9@2]]X#M'.7ONQ^HMO">>96Z-4Y02[QYWUW>?[\I_YSH?X=&AH @I M(!SJ8[!4%."0Z94SD\'WH;#YIZB9CNNOE)%GV@FF(^ZD"M5:S I>-_ ]GSC\ MLG\)W]JEX$"YT;"T04VK#'PZGY/HJ()O+P&$'0"Z+ L?%0N[OX!3]WUFC&UL[7U;<^,VEO#[5NU_X.=]V)FJ=;LO22;=E9XMV98[JE5+7DG=L]F7+IJ$ M)*8I0@N2MC6__@- 4B(I 0H43A.5)5*V^8!<*X S@7 +__YO J=1T3B $GWAH,C#?A M/EZDR?SRYXO__/N__LLO_^_R\G^N)T/'QUZZ0E'B> 2Y M"?*=IR!9.C.\7KN1\QD1$H2AOOJ1^?R\N^\BVLWIDUP MY/"^WKYZ4WRXR7O#T0?GQZNW5V]?O_W!^>G#NWGIZ>O7T[A4F"]K\]9NK__D\G'I+ MM'(O@RA.W,A#%PZ%_Q#S/PZQYR:<.:7FSP\D+#IX=[4=2PK!?KLLP"[9GR[? MO+U\]^;5<^Q?Y"BRSQJ#%.#/>_ Y36_>OW]_Q;]N06E'@:+K$ME;>#_9-B@# M_WB5?;SX^[\XSB\$AVB"Y@X?[4.R6:./%W&P6H>L*_ZW)4'SCQ=/H1]=,E&] M?O?V/:/YWZ8)%3?3HQL<^2BB6D%_B'$8^$P-ME_C\7R:8._[$H<^U='^_Z5! MLKEPV+A?)H,J]53Q?#=ZY>'5%?M^==@0G!-:XK@ZD!6W0>R%.$X)&I.%&P7_ MY.K6B_SQ&A'^,T7Q!J^H@6WN**P;_H9<$M^BQ W"6),9APYB@QT3](BB%,6? M4$1Q# ?1'),5Q[4M[1H]VB!TFJXI/%-&-[P+(FJ*@1MN%?3635RFE6OV"Y78 M$-'AF;8.5FN"'S,E'J%DYCZDH4MVW;;E4M?HP&3Q)XQ]QI3NN+8W DQ&T+\& M"1H&C\@?4*AH$3R$J!?'*(D_$1S'O15.J8BIZ'L>W0M0(=/IE/Z1)/FLTAT' MCX?:BV-]F8I[1 +L6V&S @T;++VE*#Q29![1EI(!WAQX3"E9 MQCA9(L(6?8*6=(-$&PSHUG^%AM24NN&4Z>!VV/>0C!_"8)%MBQB*. X.TY[& M'@$0.D)/U OS@^3.]8*0HH<.4 +MGFT0SK!5Q'C=FT4NO5][#18#(H!^ [A.X8(QP%)$,HJ+M8$)3-?^-Y[G=V MQIJF\4 RZ09''@7(-'P2Q-\[8X]\)!N,Z;LD"J)%3+?/TZ5+?U_3Z3()_"!, MV;9IBKR4'+3ZF@]@R@9.:<$+4VE1A\)WB4_%=9/&"5[UGH/X%J_<@*Z7M'=&.;*=8PB'50 M9[W'151U;PQ*T[LK1%%D?V$#QHS,=YQ$-G0%;-Y5L> MY_ZW^EC:E&Q'"J+DR@]6V]'<,&R'&^'(T5_9LJ!HTN?*]T1 M,=SO^@CH\IXN5VCUT%8!Q+A6^STP'F*Z%_"VH@C=!Q1^O% #Y93)@*Y. M3\P]G=4123;,@V*;GW)0/HN]9([I)%@LJ3/Q)+TY]<=*<9A;M";("XI\ M4#G )V%0]P-_>R=A^VF&K@AS9T<]4A4KM?$"S3G!JT8-PJ>F(XTIEGC-?G6W M"V4^,[5=&#)Y[)CR04RT,\/.:8G%A.XN/EZ\N7#6),!T@[OY>/':BF%.$.5! MX%&4;]QX>9,20FF5V)(0]MM;B?I+H;O76.G00)1,BE^N%V]%>O'+E6"I/'P) M/8('=)C6QLA[M<"/5SX*,H6E/^STE/[R;8@6;LA#DT[)5]SN>Q]/=#& MFK'-!KNM;*=S5$6?BEU(Y9.YB>@KL6R3EQF9C)M8B7U)^YU:#TZ"G6K+FA'N MYL)C37\Q24I3'_UM)R#ZR[=MT'+J(>K@!5B@5$J8G&@)S*FHR ?]$L5KNM*P M0C.ASC7"%=3(X>QIHUH,6)^ZLH(*.V5JJNC,ML[2;8F?>LF83!%Y##PD4%D5 M2,X%,0JM@BKVT& ; M-D8I%JQ'G7 K(^J8[[S%'4+2[Y[_.W4L>27&'28C]-3S/%89&40+NL)%]$X]N<27S-7";\5VN/K-QKS,ZO_XH6OFKU %R/A/B!LM MLIW:]68'<^]N^%K*T-[A'ODL<3MR5Y(IO<,ABM6@DR$L;M>%.H-/PLO*=KZ, M!U]O.AD?DBE?IW$0H3CN>=2+S\[@B%8J-50QD\N@@-#%?B1(;+7:\ I::_ 6 M%Z\&<6%S>BM+F+A[OH(U=VO=V66V*W)SZW\O',7=WT^)H3 4(_A2QM)^X&6? MB5B%=<5Y+9IRM[7O4>0M5R[YKJ?X0G"Y]M? 09!R"S49#?81F48H8'L=0_)2K9YLF(/E!_#4^905;#U'*H8U@:E&0)B[U?T MK:"D^@U KE3)?JRF1I@C%77('B(2EL1&IUOR+O/MNYJ+J%KOWQ)XHFNY+P>O,K M\A=!M)B@,+N3:QFL->U"OQ.%Q>AT8H%I ER$AM0(EY.N@(-E0@9"Q?KD-UE6 M\ZC,YA2C03*X[,+/;3!)43JF 9DS4 D)AT:AC6C!JNFT;RLZHL)FM):-0M$] MT_R&;B%I?[$<_B-(EMD] (ADICT#Q)I3F8[<*7S^[OF!0HBK)204!H2$TPN6D*.#LJ;I" %B?M+(>[_?(=%;1DVTEW:Y4Y:M+51E4&5P]>[H/ M=RJ*LM1?>7Q5YE0.5\VBBN 9%2EXL#Z% HSJ_6.2UE548>0-C;YH2.S9D2:5$_D DLC.)ZL$AV:[TKCYIW:=!B]TM,\TM M(-$NC0X;M&BB'4:LV$28N W]M4MXF@;+[^1I'@22#2F>3[K>9+O0T(U%'DF+ MECE?C5K"XLD..VE]2,O6S;P1M[9G?VT4 !_*G[)-&B# ;--X8$AVFD?);U$< M+")9Y%D-5$U:[ &!($J5CI&"20FS;R,-$L':Q)7U7MQI*9/R-JE3@;; MJPC3;G*0;6Y)!'*RVZ'6*?&6;HQZ"X+R5\^K^$A"18;MME$C[78V,VD*H>'V MQ%<39_MC9#$?[;XA3<=LF1C/2Q<^"&Q!"5.](*\.8R,87;J\HA?Y(\S>GRK^ M,J,_Q:[':V2$!]!;MBY"S::M[=F*6JCX4$Z4348X%+,9XR'L+QQ1C,/ YU[! M($$K44Q'#;0K3! "62-$5G6A!),2 V$M4$H!:Q-7JYH0=)I724@Z@S3;9\52 M,_>YER9+_C2*M/1.!E2I1ML' D&4HM9.#B8ES+XN-T@$:Q.W7U=7[W174B?J M#)(NBU\X[3][8>HC_XXRCEUIE2;Y"[GU-U*O-^(.1/GH[DXC)OZK^+Z^(W15NJ^^?5<6'S^?;IM=H9D#%_I\B$^E"CX4F2V MRU_LX2Q.RXN^5?&VKZ,BUF(U[I44_*XYS[Y7FT'2+G:FG9TMI.BAR M80?W( M35+"[O_9_EEXF91QPVUED'Y#ZPS)49/4035""DFN0=JLB#(6(38ANUHLI3M6 M5D*E& .2^7R)TCAUPS$91'.2/1G$TDX">]%H\>U-C8&:;>#0+;03K3:FM.]: MF=M/IOUF L$&&-44]%A&NV]56B0X,^QHHPXL+RIQ-IL;2-5)W00,T4I#4C4Q M)/QX9J0E"ZR/S\F-2$5 V8::$+=;2.8^9\%>A=548*3ZL@=EDQJE.=2@FBDZ MGM++6(F5HYY MVC?R'>OA<7)#D"%>M@@5PC73^.6JQL$A_95_J/XIQZM"UM/3TZNG( Q]-WI% M%Y0K3M+V&@KJ_/B4./8@7%'1AOSMUSB/7RUQ2/&)LY?1+RJR0\\)N[#7K_'D M]>MWKU\[E[O[+NC/-^/1;7\T[=^RGZ;CX>"V-Z._3&?TG\_]T6SJC._H;^.; M__IU/+SM3Z;_[O3_^\M@]AOM>Q5&<86DK;3>TJ$X>Q[<&%T4"G?:)S)F[,B# MQ*#J0%=V4!2]=M^$L;A-04YH8&2VK1P M6LG44%).RA+8;B11FN[R<33%H%*QLE0DU%B5QKU+*"K"I+<8I"/>@)9MPV37 S.-72T>_ M_2DE]:ZEI/2IL2HUNE6G1"._J(I5BD@&?$IY_-!.'C+4K3)_=]DO18V?M6G: MMY8 NV&Z&X;:NZ(]K(4;U'P+6W=4*0)^\L'#44+]K'[(03]>Q-D]@;OO(:8> MW,>+A*0G=S"HE1)$/:];E/T[B/8]Q@D.PSM,V!/B\DBS62\ EB$]"1M3MB8! M#_9RS;)L>'5$*3%AZM.9X1X3SO,D(<%#FC#EG>$1CIBF4DY2+!8#=A@:Q8G4 M6(_3.8!=84L3J,X#Q^$&'.4I;87Y 9)X$,A M=9L2IG<\6O_5#5/47ZU#O$&(P]SG]QZPH*7*MLW[ K!A/98IFQ,/7A,RQ952 M(-^4M>P-P,1^D$UHZ$0S$\!K!><%_S;FB,7]9T2\();.]"WZ > X=3PO2 @' M+_U,@8\@?F5'P&<")?G:LP!X%>CYOZ=QPK."_-TIY,_PS'UF[X0P,Z#D4.7/ MS@J[/)^X6J,HYL<"I9'& WH\I5+\V-FD2?.Q-RC2@X$I%E M@AF>%.GQG.Z&)(+2:WI*^;WO3'YZM#:*]9>KXU65W@8Q2T6RPW9DX4;!/[.+ M]B-_O$8D>ZF8G<);K=UH'UF]=OG4MG-Q3] M93SYU!L-_K(6#W16$-#WV2MFQ2E=2+M:^ M6]SN2R1>L+&&Z.D9Z3ZK&5G];C'_VL3(*J)'8Z3F++T91'-,5FZ^2 H+DYJ M3UZ6:##;[;W;W^U-^E_[HR_]*?TQ[]TI=7_:+5T;K:3$N(L%08O\JM6<5:HS M1.HF)R_XHU[&KO@->[*GU;1:6-\ZFHAE_URYA"HXWK0$38US_](V,(X=:>BA MAKA '#ZZP3'UU]E]8>K*<@$<@+BVEH95J^'VR+#CDT%T;"5%B+JS4PW_W3ST M[NSXODS'%ZZ_9NCX=N2O_0$B"(:.;]<1A,/WLC*'6+^9M7,[NA25%S3UY'QR MO_DI]",F*NH]O7W/Q<7^\HUZAAX=83R?X<0-Y946H\)CF^=<%V,0" TG\39>B"!4=S(R0J,70?,.E%?EZP MU']FB5R4/0H21 N>DVHJW#JD(P 5_\8B;DEJUZ+LA6&^\1[/[UPO"'GHCFVU MXQF^#0CR$O[+3@=S2D7B/* S ,7:QB(]@-RNQ9H/1">4)/V8H]0NP@=QJZ9->M6;S[A_UX]_3+_?V07Y#5&SIW@U%O=#.@/VVOS7)N M>[,>A=MBY[B1[VSQ<\H(_H=#4:2P.9;E@<#'S:?>$ODINU/_GN U(LF&'9)B MLMA2KKR'2[OYB6\>DF%SO9G1815Q=:V68.+KIN*K7&"D0ZG=^Z.D--%!E<%V MK98P0NX&JJHEO3*%5J5WEQ+*53H+4NSN@F?VDSH2KVH ("1OH(V5#+*"J@[V MMMF#DXC\ZA+_R>6C3O$\83\*F:_;"$#@P% NI19-1+ACD=I)
/XE1KTX1DEO3B?^TFUXMVA- M$/4_\_KYWHI= I27TS_$W'DVU9<.$("\T"HU\)1,@A.DDE*M.G#9U CR;K<.V:4J9?Y0*V[@SQOG$1GVK,.CC:UY. >?0H6'G>) M,QL9LGMB=UX[)I=?O#K;4&2(*FSJT4%6X3^/\NJSV9JW 2)M_3+5V(3)8'.N MGS#V60>F:=0?VZ91BP%?4D*TP%DO_UF#MG2;^W4:4Q<]CJ=9]$;K02)Q&X I M3J% A!>_BTG:F>-;V[Z8.3IYAD>%SO?GL M_H[)3>C&*E?'J > CH^N2&O9$'V:;6?09)CN\&Q\8MNX%Q@.50OEUI2RF&J[ MEU R5HS)/<%^=F;AVO6^AWBAK'=K:@1@=6^IP96+)QNHM"JW&7%]Q/!75R;N M@P'8Z1Y!-OMTV;U,,#7H#4\HJ 76V I $O((4FLDT^[IPS1.\ H1?B298A O@W7#34*J%@ 2 M;D<0F9)$J+O(IE":7E-KT343RL0!MV;_X>7%X!0TC5#24,^KVQCV_D4I?5T2 MX<3SFB)+YK*$4TUKIJV:E6 M-P$3VI:PO^H7TJ("'.S?JZW!9N I2[<8^W7AY%^*G'#]UU%,,"V#" M;%2\2F133 :0R;+)#1="VGOF38ZW>&I[L9YT>2KP$,?\EBZW.@M6%1R QVPL MM3H-< H0=SB.<(9!=KJW42QU< #I46.QU&F *):[X)G'5[8;U$;)"%H R((: M"T= !D3Y?':3E.&D-YG5H &D.HWE4B,!9'RO5 $\3I:(\*( M[4!-@WX_M CZE2](X+@X%62<#!OG+PR?O\(/!VIR5A4K-.O"TK5P['+#9,-0 MPY'NM7#B-F!"B6U$)[PK3DRGU?FXAI+2:Y; PO"8M12P+!4)-7;O@76)[#48 M,0@ %UBI095K4"N86^6SAD4KA6#0'H"$1%I5%HP!-5"D5H3"1B@I1U60A@$9 M]P) @L;Z*A&O'L%0A*Q:;)NB5>;=6 MEM:78T(1+6Y27%P2;((]5C@;S('OG M^XYR4(/FFY0PQUNA@(0?#N&GG7#'#CAB6F"O>_L:4!$ MXFQC0PD(4S^(%O?LR"856Y*0X"%-F"7-,#\5$"54&!2+11%TD?H[Q^D_@!?,::7:9$7=,K@#RMP0YQM*![GQ5#A97P M*:+P8E PP7<%VRMO>@NIL/O>>@TE96Q=!@PCN*Y2)Y440 351SA!\;V[R3R$ M:S?ZWG2670H/P/-2:U7UQ+J4#C#RX(MA_K.^5(2M '@R[60CI,9RD49YSE56 M1^\# JI\UEHY1#0 XG[CK41RI;@CR@V1[CP>3@/PU M*@4P@.6@25FVSU$IR.B PS,Z"PZQ&\G96H>PR$L]G=ARLHYY!^SC2P(3K9Q_ M>R UC]M9=Q#'M"$VY19E$);K(57XB^?9E]L.K!*QHU+R":(%@T%V*HFX(S' M0(IU6N"$#6_1'!$ZKV:5IN@&Q_QV6JF$)- LA&PI&0 4$M&-D6$3]T^MW&A%5.HR3C>/L!CK'5L^Q MU7-L]1Q;/<=6__"QU7/D#@[WSY&[<^0.<.3N'#9Y:6$3B4W4H@%Y3052''W6 M;_8RXB+Z]%AR!H>(NE0'7Y[WM_VBFF&_-^V_V"ORABB.4<:<6Q1[)."R4+E_ MRA9_XMN@91O:9@8+KG_N^%ZG\UW0Y[N@]YEXO@OZ3W,7M'A6:MI -K:RMI'4 MI*<2S%%-S"\O'Y>1,Z;K$]UY1 M.UP0QK2U^8_%XI6";&P/8B[:6=#-U@+)# M HS[=(FCNU(/C>?C3%5QGV]3#62JZ - AN](HE40"5O"$^I /+FAL9V66@'( M$A[-0$MDP9:;0.$8VD$DO_',O!L UVUU9Y\E.H\F:DFH1H31=GB!Z>DV.J5\ M?CI8/KI4P3&\"8H#/W7#KVZ84LWAR/K\Q0:)B:D:G%)8?SN:,:DHLA15N\&K M59!D]]9%_E>7!&S_7 3\^E'"JQ_ZJW6(-PA=TSE]'B3WH1L9EE[\O!]WNQE_ M_CR895?5]4:WSM?>9-"['O:=P6C6G_2G,X=^&LP&/#978.#D*#@341IL$A#M+# 668%'D0V7 8$)Y.L*HVJN8(,OS M:!TI98)4#@XC0:K6,+4T.DR2_C>=IH-Y0)7%C9=C4A0D]@AA\:&5[((LP[8 M4JA-ZK3=;.A3U8$X))8KET%# P!Q$&W&-Y!BNSI9A%LI:]>8TM;OP&*6VY3* M6C&S8M5Y>8%**3W/[/[0-.:QFIB]QS8,I/E%$%X;RQ_@>D6*[3G_TD.(\R1%Z!A#W[$0SS+C0==1%@F2.!_GL)MXRB!;E M[U-$'@,/9;>Z&*S1!GT"B):VD_V1Z >%>M97_6-U"B"6>EJYUQD M?G50$9-/6N,Y_VBV-ICT"R"BV\G*8,*#/X*B'%U#0,2/;:D&R%6CV.SPX[>E M_&73:GU+^[SN<"'1HM91B MFF:QBU[D?T)X0=SU,O J%=S;9T=8/IGG,K%I>NG]Z[?U]-*T_XGEEGAJZ5-_ M_&G2N_]U<,.?2+H;3S[SX[X,K!CF^,&?P!*W9=<[L MRN8M:Z\W^4=5PJE53]W7C5(]CG$8^'QXKO^2JG$9()B\TP&B*FI/932>O)IW M'Q%A^DD-:K_H7*U<K=1!8**BR_.Y&OY-=I3+=$<5SHBL[S>>(V8$YS'[B" M:))K5WP9*LIBAAH,C H&+;VK2*%*10<>>#]"9+&19\>KWP%4(0B%OW5SJ^AV MPJ\%E1PBF:\W<$$4>S8?5S;IR4*BG#BAO$,[S8QR&]^H*Q-7W!LV5A)6E(, MQ^XGZ!%%*6*8\P@71>\?0;*\2>,$KQ#I/^=O6K%Z:OJ?KWJ:IT5/ !;)@PR@ MJ@LM& !'$V[1FB OXT(O\GLK9@G_Y+]* \**%@",^FB251(*1X+%^8+LU9[^ M\YINN)D[B0LW7W[#J5Y3 $5!1Y.I'L60A%L\Q51,,$&44C1WP?7LI;@,CLXM MB!6_$9>R,XA 32 *J,C M2UY )!RIT6ELIY\26=5@ %3X'$U"-=+ )FMS '9JT3A)NW?]LFZ2-AO4R4:% MGYNM*L5XGN%=48ZR6JB2L^VZ.F=G];.SAPCKG)X]IV?/Z=ES>O:$S7Y?MPW<9@HFTZPJJZLWH$=GSA_E'EJ=RIZS>'L8DW4U\ST8(( MY\TH0^BT_9DN\R1PP[A 6QFY:&H$P',PU=.RZ)K(Z\#3^$+9=,TNS%3R7PT* M8!_3ANMJHJP:QUWPC'R&.-(R"SDX@(J=0PQ"3IB%]S9^QZ3 7Y:5$P&!"=KI M[A%DA-A]?(==Y*]PCT8 MRVFT1FW8O5&XAWH'//R$'Q&)Y%E)&9#E!)@^%P6X=\#&^_0A#+PO"7L=7!$M M%H)9SEKILU*(_3E3=>BB)[M$T- Q;J +CC]\3D^=TU/G]!34]-3)M\=;JRK' MP25>B@+V]/.V[ )0 V=%08]=GR57I#):4I]% 6O?9VG4KJTHY%09GJ/]$!8+.XF%(+NCGK:RE'3BE@5YAF9]4F0?S=-#O^ M4\OL>&5@AXT,/RV^QRQ50EP&?/+4:16+Z\TUBKSERB7?U4GPAF9@TM]JH=2R MHPU$P7'Q]W$M,&U*=3 M58(T8FH@WVVBE(YF6P#24NJ#O"D#3;B91;@-V$U+5/*:HR17:ED]OX'H;J MPYE-K0#,AAIZ5Q%1$TE6Q;1SPB MWJ[Q7&KSIRRUB9,UR;C/?BIQGO[V[:97YW'QUY=07K-%]K1,&_TF8AK[J^4M MGS[3&+*P I+#AE(D50-K14C-5*@#D"^U\&B/DOPE77>!WNC*K]($8OS+3)85 M2K$*D-DMM6_>[#\EVN]- M1H/1IZESWY\XTU][D[[SE_[]]*_T4WE$9SI5[OKIDH]6=Q)BQ%CT M2QEY:&X&(QAQ I-KUI,R6RR' +'WG1%,><@I9L][JTNU5"T !$ITU;<: E30 M!- 8M;6UR0DX7O?67(9C&UL[;U[<^NXE2_Z_U2=[X#;=ZJR=Y734[(M[[B.M^6Q MW=V3TW6KBR(AB6F*5$C*MO+I+QY\2@0(@B"QZ$S59-I; A;6;VFM']X+?_[? M;[L O> X\:/P/[[XYLNOOT X="//#S?_\<4A75_\Z8O__9?_\6]__G\N+O[K M\O$.>9%[V.$P16Z,G11[Z-5/M^@YVN^=$'W&<>P' ;J,?6^#$?KFZR__^.6W M7_X!75S\A8FX=!)2)0H1D_7ME]_D7UQETJ+P!_2'K[[]ZMNOO_T]^N,/WWWW MPQ^^1P^?\V*?B6)KOZ5__4#_WXJTA@B^,/GA+?'_XXMMFNY_^.JKU]?7 M+U^_^S**-Z3ZU]]\]5^?[Y[<+=XY%WZ8I$[HXB\0*?]#PCZ\BUPG9<:I5']; MQ4$NX+NOBK:$)>B_+O)B%_2CBV^^O?CNFR_?$N^+3$7ZM4(C>7'ZK9<6%:J% M__ 5_[(H>B8Z@__-]]]__Q7[]HN__!M"?XZC #_B-6(?_9 >]_@_ODC\W3Z@ MK;+/MC%>-RL9Q/%7M/Y7(4XIPN\IPF_^2!'^O^2C.V>%@R\0+?'CXZT0Y_>% MC*P"0Z!DEJ],0MA0;SR'P3[N"J5:J2L<[LNT[AWYJX8*OZ4X]+"7XZ*M220S M98J?FHJ.W)J\@#IZ%)^;*EVKMKH.F M&%KX@2L1/317?$!QW[D+4+OVDEE7>MI.?A.V(CL MU -KA6"[7[.JO7V/BT5$+J*"QYI%W/@!OC_L5CAN@-Q0!*Z_B?#4IPWE]S"] M3*AES\D"E8BXR+%A4=R"SY>!5Y8@]LJP7=(950U_U36@6RNZHI MWM-[:XW,$&L&13'*FD*TK;%<^MEYN_7( ,%?^WQ_NJ6W%I>'[L8M2.L.+"@, MV77;5.[IM$0\JLL?N;^?>QXQ6I+]AZZ(?R.T17-9Z!XJ05CWSH:"D#U3IFY/ MK\QDSO(_$)6.EN%H_'F.[=L.=OAVDE[YK:I7?CLMK_QV6*]\?HU&]LHK\NPS8KU$I.Q"//T37Z8UEL M[8H*PI7Z2BZ2B3"A_9#Q^B)'6"_^OOI?,D M0>&)>&,CQD:'K)6<@$\VZVO*+;ET1,2/.N_)VF=SKV7\$$E)V AXHT-N6CQ0P];V%X+Z5L/8^Q(V#,DZ_A>F$3CN+X:^4[F%[6 MJ*'VX5?F4T3:2$1';QP$#]LH%._ -!2!ZTHB/+D[G7X/TZ6$6NJZ%1.(F,31 M5F2>L'N(B3M_\^WJV4\;3U,W%('K6B(\N6N=?@_3M81:ZKH6DX*B-?KFVP^K MCRB7/[Q_/<<.O3GV=-RMHB:DI]_#]:Q&)+E;U;Z$Z5/-*FH[%)>&N+CQ>&KQ MYFZ)QEBP4RPH!M>K9+A..:M:!J:/2375=;5<*,JECKI3?'6(8QRF_)@7C1\R M@S@TW?%H*0[7!55PGARI;RP+TR65-.Y[P)Y+1X5XQ.6/=YHAQ?06GO^"KYW4 MR=01&D-8'+J/RG&>'EQH*@O91ULT[GU4H9!.SPTZN=..>7XPOG)2O(EB\1VD MTU+0/;(1U?E!PJ((9/]K5M3 <<(8Y5+'K%8'L;,V*]G0V)A3E4L=RML4.QQO2Z7^*H]=T>Q7M]DXH9CA1:>C.)T59 M=\+&HI"=4:YP3Z?,A2,N'67B1Z/"+0Z"-J<\*03=%YLPG?!@I01DSVO4LR\+ M4IECNQEI;D?/V4;N;T];AQAJ>4AIZB2Z2"2>E&2$14]XJV[_+X?;YU?^KLAG\G2RS25A>N.K0A/[WZ>%83ID.WJ M]KX#FKED=A64"1_;(VDXJ/ECM>14O/$,7;,O%L6FX(GGRIKR0T:-(WGAG#3L M,5"!TS2R//T>KLE5V4?_,K.!E(-ENL;/W1"UR?L'?$T#X(,EAVKPO1%'?S43;O4@^?! M6MIK;V'GC= C.$4S*&_'8![-7H[?E$]36&@BSGR60[.YQ 0S-(5#27+ M[.5Q=X*DF=*"$_&\,VR-WG<'-T6F@JX&O/#.7$9,'5><)PE.DY;^_:P0;!=L MQE1UOWH)N*XGT%-[D,G$6>YNN1+9ZI*2XYV7G8+_"1">N^%)0>C>*%*WGU/. MBE-D0N\T@B_%<8+O1@>9@W.8]!]LQ-V5DVSGH4?_L_C'P7]Q J)0,D^OG#@^ M^N'F)RKJ.F?"U58,>@"M[:L%=2 M'FY$*FFM/0C.A*-2^@P1^78C=!S(<05RB-D:L1,$T2M]> ZMHQAYT6&5K@\! M#YVOR@\QSY#=1?!5CST_OHB1I)H^1FX9) M0C;L3\ELS';MDF+^PB7+E6C1!0T\VL;;YT]TYIK.$--UQN^LQLN% MSJ0.U1K-:W3%%4=4\T'INZFS^N_?P][O(>Q.I_FC\*4J&^/G9;K%%?1)Z^A9 M6@%FMZ6.M3IR%I>&.VY6T%G75YGH"A4D ,;,@\,MA\M6@O,AQGO']Q9O>QPF MF) 7TZJV:BZPC%I-V.': 7TU;A6JP0W@+LKKNG;6!LH:87T_=_>3[2$K,3VF M!3!O)&$FB)@)W-KFD?4]6Y6-,_"!W!JR$PE.LTXX1K!%J1,H;\#V3]1$FP,0 M00]QM,=Q>GP@..B0G^Y [>FLFOS-3T3B.TPT?O0WVW2Y_I'0#)L-]Z3_]]E4G-2<[VC"E7\VS_4!DY,K7L#N3 M4QQ5RL^_@TO,9QKJ>EPN:(B(W.(Z9QKC;@"PT%[2ITX'1W< M"F_\,*1GL :%V-HA#>V#XZQ1$P,Z--=A$_6+E@9;ZL F/B7$M<5J606X%*FF MMO8:;BZ=CRIG#<-*.\O6@Z(N0![HVIZU23@9K?DIOO-?L'<;I@2*OPHX0KI, M+[!,:R788:N&N1JW\AIP U=1;UT?YN(OF'Q4-E L4-];BMR!8?-5>+_$ZV1X M+%&\K"CE@IPK/=X-."<.-3KFX__RR"L!!L;_-W((CVNLUK MO,8$B4>?>][A9^>MKC7;P/6XL57 \^5;';"K=8Q=Y - M+:K;ZW;O?&?E!W[JXV0>>BPQ*%W.)[\CW8%(CRUWYSM4ATT*7>U0I0W5NG") MI3,"77>O-%3LA:9'R\DB*DJI98R05IB,GRODCA"7GH0OFTZP4!$-)I7$@'!S MA$'9A)6D$ODEO@?G2$\DJUUR/2L,.R[E&)LNMM9+PHW'%GU[W^S,Y,*XQ#H4 MR#V7:RGZX@/VSGE&; IA>? Q*$=Z$H;-A4%'8HO*/?R42D9-':2M>!P8:J53 MM#/_' QA-B5MQ3E.0JF&&XTYYJ.BJ,=M0#&Z(RI35]48F$\: ?CAX%H?RU8/D MBIUH2Q78<:>"]^10DK \W$A4TKK'@:3R>LK@?>/W'&V(I0>7!P5\AY/DAV)Q M+UH%_H9=G["S7S;*;\LN<4B@6CCKK,A.K95@\Y,:9O%QY^EPE*+>Q@X\ QG# M#PR;WQG,A^ZGJ>:,0'S!\2JR#%*-D"UM%2IORX!G([5USRDM> ZP.#;:"F?; M^M]@"W]Y&@/+*P)W4;AYQO&N.A$3F:*Y*/!HD^"KQ5M#.< 1)]/6T+* Y>/7 M T+O9U=7&TH"IJUWG M?C<\:PL8MJEJ:+!AA:DL+V>4S;C,P=\T]]9A;^5L8A35+R!^EO;0V+H[ U=AN*P0Y< M$:[346^U#-R0%6K:9\07A9""=2B(HC#]O2!,_Q?ZYKO9G[[YGRPXR9]__-.W M\J@=[1'7WK$^]SR?KBD[P8/C>[?AE;/WR1HR]NWN-TN7YVWD1FZRP%>.#K6>7D8GX7$8 I01-(CYOMQ0LS MV9MPU1910!JS=9D?NB%&H0S^0B_V%DY,7UA(:N^^K'W7%ZVW*56$30SJV*M< MT%X+;OAWT%W7T?,F4-X&^E!_9HHU\]%*T(\)'V=MP%@\5UZ>!!^T8FSR17*X M02G1U\@"0^19STK H#C$%:ON>NZ@:[.A4Q=TEU2GG9&A"&&$M!YUKS'XA%[,C50R^RJ6!5V8'?!WY194E8/;H!W MTKYW0L:RE>*!UB"(7MD=B'44HZL8>WZ*Z+P43*I8^!:RPA:Y5C=1?!T=5NGZ M$)Q;JB7G94<9P/E#QR(U(NDB #"C:,'0#IQ:=.3MH<9XLII:@[OUR)&5VEX*<3V'2 7\&HJ&)[_ /'@DG# M/JL%FB*@E_%32M=4&?@''#-K*-E/4GE*I--F S&WB&I.A4):]3?&%)072$?- MV\H8@K3&>0, %8Q@B>Q@4W&D"7WP0S)R"0(G3N@[Z?S4TNE6BP5.X'0X+TY8 M*1FPH=*4.$"$61S[IS6F$O-"O8W%.F\!E4T B.\!46=Q?78PD<4W_Q1,4/,3 MHQTL5E287C#7L;8%,B\]K2 ^T=ET ]WO%@K>(VCK0=N=E@88- NR[/+'2 ^#NQ[7U9/_EH.[=$>"M^XUH \ K?A4K*"[WR6M,)M95%OHDQ2<1V\87N^HQ#6-];P2\4%?V MSJ!+E_7$I2<6M.(%/4'1"06KH<6MID =,D\ Z<3\R%N$7J=(-03VT@G8"2!Q M-!K$2(8)L32?^,11=N=;LRX+<3'V#'+[2FQ+E8DQ;LL:K*S\A+C7Y"ID,P'; M7GL= S+855=^/9Q-\W;MUS_$I6'';@O*:M@*BL*-V#:%M3UW>?^TO+N]GC\O MKM'3,_G/Y\7]\Q-:WJ"KY>>'Q\5?%_=/MS\MT.T]^?<"?;A;/CU9\>%'_(+# M [XA/WG3H^"+-S)TX7H28+M^SVL4T\5T%D,W)CI T;_-CUK M$]%?!Q7ORK^29E'>[@P5+:.\:43:MI1@8'P;%6:)>>.6LK=9= \[(_DD7:XS M!5JW5)O+PN9 *<+ZH+VA(%P>DZNK'X5)2K?.*S5WW8]JVSHV_<_)-]\-%*\F)J M* Z+F+.4WF#.>BGXL=N ZC1J*T5@QVN3HGTC]0G'+[Y+)].96S/QUJ+5),0G M)W#B/(/"J[/12N'_&G@AC9???_W=M]^SF*&?9,SR=%CEP1_%N27+HPT4"BUX M^K"&G@28L=;#&C0.-:K;C5$O<@]TLLS(NO_OVM_)JPVAA+>4]4TL02\[&N15 MNRR?O]SDG?=,:91+H+>"0P_34JLC$80(9)H]R3O$=(I!A)("[&DV\B^^DO_E M$*311(DVS%S098NU0UC,TJS545D4C/.)_,[Z_$1ED B69Z6(A/,0V..9 MS+X)S+CO8B_>]CA,6F\=R,K##J-6I(WO7Y\6AAMB[2KK M^FCYWG4NVO:JV7!8/^&0B [XHI>W\T.?"J8/@2"2S MFPQ-L03/MNTOB5X>S7I.OA).Z70%P0S9_K8I)NY:4H#/W_MATA[ND0FUL]G$ M>$,:I0O"AY -:%E8>'[*+O70E%S)V:(6^H"+K3\Z+\\>3*>U4^QN0]_-(BXD M@\?B@P8YQ;H ?;XC"D/Z1 ^1P_89\Z5MTI=Z!Y=-^N/H[Z1$\I%)V#M'8MX MI$AR83CW3Z(CABC%8E^TA%GHUD*QB$UZ , 3GBDBP@);328H1(/ MSW1Z06WDL9*YP<==;+#C$ZQ59L*LW;R'J.SULJ81:QM5&Q]_Z<&.C<[7>&=U M7VQTP4%69B2[PQ8-]* =F%>G@6EE!.VZ!Z*%>[S'PD%SO0C,3E>&IS8TKGP/ M>#3(_"O Q7FA:D.DTXQ"/BNS%KQCV>'LL)25 M$2G=V'S" 9&YR=:S*.;::E8VMA>--CI)@!WF&M:H#7?5J\.E 1T0VH-EMJV> M-39#U075>H/Y6H&=\?38%@&QN:.ZG X_J$7(I)LX@ -4J*JY31LK>Z7F@?%C M!YOV?1JK$5>^3-MFF%K)B43=.;K&N"N+32#R&I3M'WM<*/I Q0YS>5\Y WB MJZ'B=[XBWDP46@D[,L&(ZC@SNFDYS:!2#W9(*B.O!FAK);CAJJZZKG-76RCB M-VODH^V##\/#Y\-W/\.=]:5VKOS.$EK0*L6$.^X*%:%'=M=\-=O^;?7 M@QOAG;37[\%X(V@Z3FS MQ1N9+D6QYX=.?+Q-\2XAIF)WER*V)Y"/%(2CE2%;A,T/(UC[/&?9(,W!Y:@Q M0!M<_2L51*6&:,54S(GPF1_OK*F)F)YLSE71%.6J6IJ(P#7]$][0FP'9?3'T M(6 _06;G;,TF==YR0K;2Y4"V7]UUS^QF9\^H,$36-5_RL\Y2\S:5GD*O(41Y MSOAG1:&SM5CAGNY*!!?W*CYDLNW,\ 8&6J$N]&$U(%"%-'DC0"T@"OAZG'DM M3EOWJD_+P&::1D2U.6NU@%U6:9_ ->JJ/4'%:;&U$S1L28^56WT?XRUQ>/\E M&P40O99K$FOM3]XIU(3MG1W0GR1<;ZL&MW_LHGR/7.1E&_5S%VP7AUXV)>W- MT#Q-8W]U2)U5@&DZJ0_XJ]#?[D^"']<+XFUGS$;N DB;_VW?Q0MSCSM>$F8!/,$/8\VY0Q)!\N M90V"LE_@2AF.ZH2H4HAI-4-4K^);ARJ'3K5CAR<'RL"M,,(&9>(?PQ@[ 7OB M:\,LQY=6B)$\'/LO_&1IGMLJ82O=+'W!F?5L#Z&Z]R_@&4T!K>)0"2[?J"AM M:6AD*57=6/:P/A]:.''HAYLD?X/TV@\.*?9:YD+MM6 'M2+J:F"W5($;W*J* MZSIT+K]\7Y?FRF9MV)[7C 8]6],OWM:U,I M&XENH.0-HJQ%Q)MDKRCPQTPKK8(94ELSTX63F>G\I5*JUH5-HITL4$M\JU(1+F%V4U\_96S6 M"B/&2CN_0[PE\0QU7/_GVM#MUB@D_TSF;[[HB'%;G8GXNPQQHY\W59B ?TO5 MUEZ?Y$3@-?1SO%%29!%96'[K!1A;?^@J2!<'Y6K:\HWT2]< ML!7GY.=R/F,ZG!)8X:0(;%=LPE/UP.KWB&XGB=6M<<1.3J[Y&\W"9QPG#7+8;'9B*NYY_GTY+(3 M/#B^=QM>.7L_=0)IC+75@1UO2HBKL2>M #<.U=36]=M2.J+B+_P090W8C5!; MJ*W$KNL>=@?V2I+H^H(\CCO4!Q[372U1BV_5RH!CO3,$[0A87MT*;RU:#?SQ M3%"VA%HO0UE:[(9C#6H%&^3XB%,R(\9>?JY-RH3"PK!I3XZQRG'-)>$26HN^ MNLZ:BT7%Z4NKG#462DN)A&),U+G&_+^WX?DFQ&,4!#=1_.K$HA/1W:7 CEA- MJYPD).HB FZ,ZP+ID>R&M8,^Y"U^I$]W-^]9T891UK(=<@!L'CO[>*?@B<+\ M*>@'_H)[=53Z''7*H&E,.&SV,6O#^A:B">F0BNX@F2FY&9Y2)TXG:XCQ>/TV20[8NS[$%#>S MW$].<,"+W3Z(CABS,@_D)]@2;1^(JC)K:LB: &OK6NB,I+L* L[)VG!Z43#B MS2+>+N(-SQ!K>H;RQK,=J[QY1-NW\UJX'4MEIT'7Q?%09@Z?FXX,+8GOAY@] MPXQ>_72+<&XW7G"?VVU_;C>;U,1Q">TF/E2F*VV2]*1J)06":A,U.8I2!C0$ M2?'&Y2PUS/.LFC0UO+5,$I7]\]YBKF??+?NGPAS$>C(F211M5M& M=0S5*&1RY*0 9<"Q$R^2M8R*IB'QT9 &ZLI$/O'ZD*4#S*@(XE#) .W(!4V2 M=Q1LHSPV>A_,HX*E5V1=T+\]MD&-PX2G'9W',9'(;["LCJA:[L$YLH_G='U] MEI/2K&"EA$8D5QT2/PUNQKX$97N(-/?^?DA2^M,FCYB=7'B.GIVWGXF^="F. M&/(F*I)28:_J+J+C%KTDPJ8O ]:JGZ;4%@>7T$R ZAF2/U+&8F>QCOQU*U0< MF?Y$&(ZF"68#%TL/" .PT"&ST)Y8*,TMQ%EIPRQD9>#$=*.'20G^?B2D*0HV M^_2Q3VWXI"$'+M_T0C,\T?"2EIC&IFU:*<;VT$^G M6/P0DZXLX(33QT*J*T5"08 IIQ>< 5>,RL8S%LJF:TP!2\>O[1B+-DBW\>GT M+"ZMPOG'H>VP1S8.H6]IK".;KQIBGW9ADZ0?11LI+QB]'P)2Q3/D5MKH%-1O M:0@& ]D>"E5FI,^1X-H@L]?J=+3XB/]Q\!,_Q4\X?O%=S&W[B-UH$S(IC.?; M)\)#-0N;X<:RNV#1:9 VX;+F:,CUK]06"M*9T\D-6U3>L)W5UN:KFE("SG1% MF;(91:.*NI:N(P,W/^L!,INZU7T1BZ\ R]YB:WE93+$J;(;L@E_U,43XCXYU MTE[7W14>+RS?(+.2RW-$,T@>7P7X"J,Q\/0'/IR\L"AX6M%RPL[\X"5Y"5\ZP\7'93TMI(#L[B\=7$O$][%T>Z<[!;;C< MXYB$6;B9NR38R% &M[FWEB#83J]OFVHH=)<"-T!Z8.G3$;!HR1NE!X ^L/TM M/_R(BJ91V?:,C!U"\MF!?IP5H <5+;_"8L%XS'!K1C/4M5%46,LI&K/R$ LQ MPMI/[\0KQ[4"L&GB'$LM$V7Q+=RP;M"Q3[B>C-5!W7Q5&-\:MH;UUX)KRQMT M;2)T_8"^C5P.VY\C,X. @9J"'?]#VE>X/FJH';B<-"A:0^N@A5KHC/;HUQV' M+;;')U.P>%Q8/#RE5OHU_="E5M]7K7[(K0YF^'.-]P2)S\:EY.\ LR0"H3?? MT1[RG[(#A(I585-F%_Q5"E2I!Y?2.FFO_:)-I9$9*IIA6[K5AJQ0S.@68+ = M,>SQMDKH&)/T4[ZRLXU_C-8YC.HBAZ)Z=MPS@)0XQF00*::RM%NPP M541=[WFE5>"&K*KB^KT-EY_'+&D!94V@#UDC@^S4*72V(R'/AN'L+/V,CL%M M1/(GQP_I%&49/CD!7J[))(6,]M,CS3[!'I_:TTF$P%3*E6''=3<;5,-;K2;< M*.^HOZ[+TV;R"3X97%[[R3Y*V$$?NJF7-\JRLZ2H:-92[SV233[0=CXB.@=G M%VE(6U]YS#!.0*V"!6908877P MIJ/_^Z^^^_9Z%._WD5[8 D1"KWT3Q=718 MI>M#,'?=Z!"F2;YQ>[O;GZ]3=J\-,^ UK4 COF-5NR'O1>Z!ND[3@H@N$%T_ M?]YBOK9$]].0SX12_R8C6;[<1-5 ZRA&7J8(& M\M;*8PZ(-SCJ.,BN,8S?-CF^L#HD?8C+.:[&R@7%NM9Q4'[&+_1>ZLZ]L\,:J4R,3 M,7XYC9S7FQ*!2+0W3!W%F*)LRM*\:A0K%'!C$5Q+<7Z5';NF&1NN#DD:[7 \ MIQRF;"V9A*E%?:LUY,$OK#XE#F@'89@*\@9Y\K*\R1EBC8(AA>',4N#G8P<8 MO,!V=$H"%)WK5*HX-18086^90)S4FE+,"W4W/6%@^X25AL"$MW$+<*BQ$*JE MN'Z(\=[QO7RS)]M#FH?\R4I&:.JQKBAL:O'?Q49R3E"1-"6>Z(3','=D;1>[ ML72*S8-LWM1OVJ.248R46R.[,LY7'")^Q?00LZ>!P0TGRH.EW6A&4'EJM"*S M@<+0XJ3FE&A#JO\@0XS*@6Q8Y#"(*3AF2/&>KW<\.$>MM<.RWM2B7(!<;=4P MJS2EV!:I/M1Z8=8.D.=A3:,O8.X;8=J+YOA F*[.^(NCAI MV5X%^ G+#@"T.[@='<+2TRY^$=%>-:)CVB+]_D"7\5BCXQZI',$( C)C[5Q$ MZPO2DIVEB;$,4" M?V38";$$1-]) $RRT[>%7N(KN$,:#0PC)KJRDOMR9).P M(_=E"H=J8H>F= Z *.,V?,&)B1QZD,:[S2'GE]8RW8./?[R*>FVW7CL)@$TSW6U1R]&G7!LN MK6A@T#Y*D#7%G@+@C15W7V?\\NN,'2^P?0-V3)L0];=T^E:]\3I#2;1.7YT8 MOS(U"(ZG##GE&2S"A];L^/.+'I/5P#SQ'=;:$W M@8'+$!H81IRP0%H+&^I@6Z+W80Y/:,#;(U4143SH289JR[[FNJ% 6<6U1+J3V"B\5-FND MWW'3)?WWCS#\CZ!XS&!"OP7-=5=Y/9D.S6V,OA_Q/D.^7-]'*6ZY0"$I#K-W M4L59'2^+RL(=%;=JK'VHIA!,%Y.8Z$$N1*BOR0\&M>!($I@A VKQ2D05Y1W- MV;1<7\78$V:4EI6?3F V(A5%9JWP-$*S664SLX.!9$3HK7CLC//61*TD"U\NTUF&"5V^: !W]'-NH?8)^.'/7T,G"LOL%M; M'=@QK(2X&L?2"G!C64UM0_$8(KBR8"9"/O]>?1NYORSUSO\4;CET_P9[*YJ>@ M'FQ>4T8NW,UOJ@27W]15-[1S3]M 62.H:,7^5OT(V!.&/6*-()PU B*\Z=$$ MR;.ZS84G%L@UC-+H924G%+)U?4W&*9,,(S:' $E/S+"1EQOM=O0A"@::SS7P M;A]$1XRS#_?Y8;T]:=GFT=V;*":CQDR;Y9JE9:$GBH37IY4J H]E9>Q-1W3% MM0#'N+KN1C8(RD9H./!C_*#>^D&'- MV;[F//3J'U1*/N#8C[SS"]MN"2DO6"/2PA^EM&5@$U==GZ3 M*OV-JP%<"K5DASXCDQDGXHH>9XU"EQUU) H8H8* "A'@"@$Q#%8 MH?6)_4RT:Q"D'W'9+\CZ#5RJR'XP "= >MEYB-_N?5.Y<69^IT0+A3>'X+X] M8Z=%*)WT0K">"F;K?#&#T/:Y0YJN6'[V?ZO MHE+U!#WDK-%TR39ZI;>7V,.IA*V3*/ ]NH*$DI3\AY^M7)?;J%9F8$^'_3Y@ MNC@!.TA*GPD-UU&\8UOW+3>9U&O#[B@[6J':)2I6A=OY=06@&T#5=JKOY99- MV;YU-)8E&'CV1L4'_@H.]CXB[Q!3BF6/+//Y#VG8TI.7Q%*$RQZ(AO>2Y^Y. M2\$.<0&J>G[:6A&X(2M25#\E(Y>'J, 9NC?\N)QZYMAA8%E*(AWM\#/=FVF+ MHX:"T$-)A.TDV_-)*<@!)=2U1YI3(A(QF=;C:BAT;._1UEH0[9[OB;>2/\L\ M!*'7L)UR[2=N$"6'&+>,9PV(A1VZINQVNBC41R9<6C"&K-=(D6I R(/K4$D) M0N><37N;J%3$]HC:N@%KDPZOD,^.3X691?V:14W=^S= <>PT/3O&73E+3YB7 MOF(G.LO<7@LZ02FAKO./M ID>E%37)\]!/B+'S' K+=4:/3O"4KQ6V914R)1LV/QBU M8)5%C B&RS5FX>F&YO+QT_S^]O_.GV^7]VA^?XV6#XM']J\GM+Q!SW]=H*OE MYX?Y_=\F%YWEX.49OZ671,/?AO@IFIMYQS$KL:NQ\&UHXYU&L@RI=E!7%&+Y MQ$J5V(BZJA0==Q=JH5*OVIR%JH:8;G9F+? L#)HV[_%K]C@GF34]Q%%(_G2S MCB/TKMCYI:1X$)2589=2 X5$B28DPR9'@]:K'R'O+18N!9H$IWT)?G&UN']& M\ZNKY8_WS[?WG]##X_*>_'VU^$R^> (6BE8 G1$ MWODAOB4C"O%5J?YRWV=DGEG.1'060M]?A)Y#TS]8_EJ/OZH.B.9S; E3J@IB MND"+U;911=N4WY#HR49L9_L9&LI.8#IO%-TPH5MVL8DH>!/[LW80AH0X*WC$ M+S@\8)J3HNDE[I8YN'IMV.S4T0KU9(Y*5>%R3%< ^M[_T^+^QP5$+V_KH3M4 MG[2?2WM:U;J3]72#1,\;XAEY\J;0*VD+Y8W9[Q+'LX;%P+]T KJK_[3%.'W$ M ;U@4Z[!MZTP*U>&'?3=;% ->;6:< .^H_[:Y\A^?'BX8T.X^1VZN;V?WU_= MDK^>GN?/[%-T/7^>V[Z_5;5%Q0AM75]'$; C0<<>HNM<;?7A1H46"B-G++/6 M$&NNLJL+8((XKE&@$L8UCOT7A[XG+Q]N?YL^W/RTJ079[__3\^*.U]9;2'K)]U?-24XD$X=[G M29$I>*R9_:Q.K*JHVR=7HM)3\M>6 M259CT:GXKUNP]TMYD]VCO7()1-$N0UH#M@*]JZ-PJ+0W;-=J6U_93)GO%4-S-4D6]SXM",N&T" MT5YKBKXLG5"T5)F:3YL;=\O\VO9<8WCLFFF:7@,OI,'X^Z^_^_9[%I#TDTS? MY1['3BT''8<@/";7M2[,X-2R W13A7M!JH7N6S:RZ:H?7[%_H\%;#$BBOAD M+E(F':0+7%'>=B778)Z0[,LAHKB)O,:U!6\(%2VA>9&W$G->LW@V<&13Z(ZF M!8QV%>UV?GJ2=D8P,U.J )B[E+ 6A"4M#6\XT4%G[620R\^?;Y_9)B1+(?33 M_/%V?GFW0+?WSXO'Q=,S(E_=/M_:F>TU8F];XFNM!-.=NV&N93J5UH#GUAWU MUG;M4CRH5<"A88..Z">\H<@?\3Z*6:_:\I*0N#CL*&[#6;M<(B@+-W);-=;> M]5U\8M<@J.-^6BP_/GT"LO 5T>LR]E MRY%ZDH [N[YU:G'070S@$.D!QL29B4PP*IJM/JDUHZ]]YR4LKH1*3-.V'*I8 M%7C@=, OZS&:Z@$.C2[::\>"S/^M)Y4Z-8'Z[$:MYK3<7G&>HU!M.DX_Q-#_ MW.S*)7Z#G^7_9 MF:0W8&OKEEJJ3,Y?I1V1K/RD/-8<\9;O&H+JQ1)<=CAV8:S&IJBLG##LE5C[0>OYH_WM_>?GM##XA$]_77^N$ ?%@]/'R&X M:EMW(BL_+6>5=B3"PM-Q5W-TFDM&1#1BLNWW'P.B!12==U&2T$R !"D.W6/; M(6YA:=B1V8*R=O"PN2C1,OGQ;_^2-=VJ4YA>UDS#A! M)]WE;RXZ*=\4[],WE)N,3QK::2^$(B;5ZB9Z'>!=V\:YN/BDW/,,I\1%[R:P M*=ZFL3E7O;-\0V@XJ !["84\V^+RDPK(M@S:@L*3"4FCN;'K,0E@GC$@6 A1 M>>DD?K)<5YYYB@+?/?+_WQ:BRI5AQVLW&]2?@U"I"3>2.^JOZ^FL&7KXLFQH MAG@CZ)?LO[;C?&Q35%]&MQ'X-W[B.L$#COW($YCDI CL(&["4PW5ZO=P [)1 M2UU?X\(0EP8NX(: ^C?LQ%:2;?V8X.5ZD:3^SDFQ:(9Y5@AV1#5CJL94O03< MJ!+HJ>ML1!QE\$(@N- :&"^PUX:[C%@UQ, .4EV[*+X8/+'QK#82W="0O@0, MCA=&-X_XD>1'[)+_!D=TFR0'[)E+\E#>+[L\/I/:\]#C)^OI.G3U5IDT@8V6 M%)A,T=,J18Z([B* I[?I 4@[T8VS.@1.?)+EQLT>&TW0.HI1G#V5NL%AD?RF M?#I@=434)&Q'GOP=%S=:$J[PN%EQ+)BP>I?SDE J-09-D5.V>W*!TQKK0K#0 M5>%:Q%G.3<1/=C ;5@O;O4E^Y23;FR!ZK3Y 6'UT4$;>_:7!)'%#5FJ^5=Y) M%-S!7U] 1N*-M(QHTS-4>^>S_K*G55J"9*X84Y_W Y_?/J9](34@)27V!_[' MP7]Q CZ8II\2==+8=U/,"]@@*C*0W>,X/3X0_"FA\P71<<]HO(63E"K"IA]U M[%6F::\%EU0ZZ*X;$'D39+I(&V%^7C0#A2U&L$.5&'"!GUJ#)7S<1H&'_-T^ MCEZPM:?K2M(D4]N83%SO?&=%^(N.S3L.3!0$P":#[K9H'GZTU89+#AH83 1' MUABJM :%)BQ9Q,DL$I2MV66'3U'DO?I!H$X'336F$O]"M,T!?U9\"A$N5MJ$ M ^?2X<7QL+C=+9%!Z,L/4;K%9$P?QT>ZFD4&_0=68),;IK;8=0C]U&Z W_A$ M!7SGOV#OELR7PHU/?K9YDN"TZSB@BZ2I$$)GZS03A;*8*1!(=S F HRW>L&: M166[B#<,CV[L6&D31TF"G!W=K.)KHF1$<=@= H>N-)#/">W\LUBC<%PR.XG) M%[Y'YB'^VFJU@=,6Y>&B\HO,,E5IGO0%7$%449WQ7^2;3?89R[>'U$I/[E>C@ M=NWX,1_8LM\B.J0)Z3$\^I-YQ2/L"?D[\3XC!A3\C3M%(TZ4+WQ3 MJ5,A^%Y6$RZ;=1.]HW8'7T'#$#NC4#^ID! VI NWQ&WY[M2%:-5:;"1&*\ MS31S7GX*'"+1VH1_LQ>4P<7]P* ]"CHJ'S6?(?SF!@V?OT MY$.@^RQA[QAGSY%=18E:>(M+PX[L%I1GCS*?%X4;SVT*ZR M"NK38;=SXF,^!V'-H,7;GG3$V/1;H9=.0*=83UN,Z1$!-O:H/"ZP7& MONXG#F:\FK+3R2.C6K* '\PV@!%_5IC\WXHKBA*J M*1G:%BK:>*'4CM6R1TNSQA%KG9W*YK.GZ@LCRW7YBJG]X]DVC5:A9D[+53-E MU\/I_(EOC5Y%9%A%2)LEXDNBP/?8[*IFD8T7X7KP?$&6P!/ M^Z:M>?K ,6ZE^SDWL*-FX,?27?,GRFG-\O'R.XNS M_]HKY4R1_##B\;.3'F+R7\65 1U),+LC ]:IKRAT%@-YM4$?3#^&FYU&S*PX MVWNS!.-PFPF4;#&O6T3+.HJ#79P]+12EBB.1"FJ\QYK"3[93Q+1Y6G2 56DU: MS2GM6&NI>H6EX;*!@L[:Z7>+#KDAE.VDV!T#[%G6S]ZS_P2[7VZBEZ\\[/, M)7^4<4G^\2LCGSR+RPGXIN]A1IT0"0VRLR_AQ91815VORJ49?ZDOB=,*UY-_ ME?Y$_O'K(TW\,7_S3RG]]#N8?M2(@/I0[0MX_M.LGO9P@1[32E*?/KWQ&3MT ME,+7=*GT<3WI,Z;D*$);? OIZVCG^.%H7O79#_W= M82?TJ]/OX7I6(Y+"H M:$)21$7U2Z!1T:BBMAMQ:1:C8@@X(\V*CI7EDCO!*].MA6%&BAK&VN2IL22\ M&%+4M]>TZE@[+&WM?>G1H=I^S_+Z$#?='VDI"C,"5?")WKG,R\&+/B5M]8] M5MZ]1+E8ZX]<&L-WA\--NN4GAAC2/9,/[020P"0M56!'H0I>U6,^<*-226M= M[[T^.\B3B3>^ MG!CWE6I")Y7)X1KF%]4JT&;"]60%MU8DEQN#ZLHK2N"V?Y MOPKAE4R)9E<^^WLP7S7K9J.BSB2]N(Y8P8]YA*T16]=2S0G"]4ZRJKD>RM$ST#@&5:6=%:B1P@$;LHG6K M#M5@QYTJ;H71.^!5KH$F7B6 MM=5/L+=<%P^S_KSUW2WIL8.#AY_PWHE)I_VPI2D6EO&"YVHX#>!!&H 9ZL/9 MLDBU8U0Z\$P[PV#53K2SQ72=BVI$S]O3B[Q4K>*Y;#=7K/ZB]BO5C>8;ILJA M)-,.[9EZ*(H1SA0<-]$.+-MFVM!\.4R?@LL+C>A7Y5O23"F4:85RM1#7"RUC ME&LV?I(=F(8M;ZNA#TZ"G-R3=7)?"_J0>1!D$[?E^L9QLQOL=+B9/$?7?HS= ME/VC-$%FG"8K]A$&N&_H;:.B']"6!)SS^^/JP^_\ 2:VL5&T3;@\H6\R<<7X M52J/*9)]4Z'[/,C&Y7)[-BM;IOQ$RQ%O/OMWA<-1\QAV!((&8:TF M#V-7].I^9(Z=,PRD6]IBOE\^3^;A?$-BL2$O,!1);"!O-3%WZ8#W%3Q,9F"4$0',L'-??$SU.6^,8)D4-5 M')<=A[55S239010ZP H1:V%\>AL1;N8!A#&CV*.O$79W!3M+^^PI*Y<&5T[Q M4?R(7>R_T/W?1YPZ?DC4$Z[)JM>'R93:EJAO$2A6AKM(V1V"_JI[V1(JFYJA MLC'Z=]:(B2U\EPSW MZ1?ST*M_4"G9DH_ E&S@1&+2@C62,2$8, $9A:=-3D3NC"=8KHBG?)2WC'@1 MFC/DY,-J#=NI"]Z7-6TP8=TZ C.?%8+-35A[Y-WO;/FT2^E F@1'G:87SZP,S28ENWL9I1\B*,]CM/C T%+ M7Z.B8Y(]2SHKN531H3IL-NIJA^8DD?*Z<#FF,P+MC>E,_ RQ!MA@N&C"YD4, M(>[+XS-I5G(A0ZTF;._O@+[J^ K5X/I\%^6U;\Q%X>;BSG\A/< SD< Z1=8+ M6;RP(8YPTJCTVH9:S8EZ^CEZ)4\OJTW0TQN4'\#3+5[GN#G$H9\>8DQ0W_AO M]"_YO0YI!=B>W8ZU=EU;6!JN'ROHK'UU.Q?-1B2Y<+N70$:':^[8R17/.1W_ MU8F]5X(K6*?VS,?R4*\$,P6Z8BX,HK36 'T=1U[]7KQ*P7L6CYU/(=)EV M+ [M6!*>X9P?:W5B-J>NOE^2'!-ZZX)YN.OL_=0)_'_2%<+\]-Z>&(0>O/50 MDFF-G/T^\/E9K9$/9@]OR[P%E#?!']O,H5NA.A#0[;P22A3;1H%WN]O'T0L_ M]BT=FHWBWT:^SC#63U)I:(9X4]DT MB *OK$9;&Q'9,(7$$J!6*>]:$@8H583)S-VQ*RU1WL%/&]!!]X%VGNZ$R0/L MNCN+_/*]XD?Z_-=R_6."V>+J?$V(9.Z2SNX0T$MJUQG=LXQ3H3??T<[AG_R? M\@.KHRHPT? ;[+=0"F/CK4^0#H:S@2%:F9WP"N]-J\]\,YTOHO4%T9KOD) Z M5'%4T1Q556="JLK;/G [H9^G_DL8FU<.Q_>?XBCI/+3)*TV45VN8E;B0U9@@ M?]7U'F0H,T.L$5C$8 9W/9B#(IA]R\$LX;Q+3&;:N$)Z5983[?OIBX-- 'WM M5$\WKB<++FGT1J2?MKPR/IDU#E!63(':"*6J@J44YY;L5=+0(?3(N&V=V8\1 MTB#$^X+C503>&F)2GJ$0PUI%DH]4SRPF&:J:'2-W;!DVWX]H?0,SZ"[-PNU% MQ@1O=<[/\!%7K>:?6<\36&R>?N_96TWO8(]+?>W\_)"DEBILH[N#Z*O5@.[XR\JK;MU:"Z_3JJFNS M/*"=O9'1+M[V.$RL',"6]>Z]EN@G-=3O: 7%!?AI#+^[ AAP>1WR6KK9$6TU M^G%C] -8,!\.,DV!RD[A6AFTN&Y\(/,AWUGEV:\/<4PG.RV#%H5ZL&E.&7EM MT-)6"2ZUJ:O>8VI*6T"5)F8H:\3Z(,8&>H.74[CPI\/*+=*QLLST)W!;"\., M236,Y7T344GH%TQ:]>[U8$7VSAC.;K/&.,C?J,A]L]8R>XB!3:(3'+_X+A[Y M=NMPUA##M? (T/ PDQI,MP'FF$.)RR@\) 6]RNGXK"Q,>E)"V#!,J!<$/S00 MJ-O7/3.QQ5# 9O\_$,05%VNNOU_L]D%TQ/AG/]W2C5<_W#1V]8)R,,.H%5G1 MP3<5 MZW2U7NTZV[3AP?Z67.%RK MUP),.^JH:YEXY%6 4U(' /K9;&L/1"ERE42;:!7X_&'DA+Z*2G7RV(0D MHRUV(STA _$N8_T4PH I11!62'=QM%AL^67Z9EH*J(JNR(RH:]=TB='J);L ME;721O3?EDARA)^JV@2S2-8(8JU8&9Q9@U[S)..K-(]X1;R0WL]?$M^/):S: M5@$PH2IA/5VQ:2X-G$;5=.\[AL(*TR#>-K5[QN.90O,45D;5NGG'4)6 M(J'A<3LE[NPM:X)>=QC4>\FX?&+@4Q1YKSX=]ZF\*W%:&B9I*:)L?C6B5A3N MTG&;PKK^FLNET\1]#0*_"R;(Y?Z$QLKEY+S'!Y_.S\/8JO B>1K65W MDP [0#2L<7+)6;4ZW!#1 ='CLK,L+E9'Q!I$K$6+"^42FY06N7=V\@>1NTN9 M;+3(K*(8,4TB)ADU4B##1,ZL%C>T6:OO*B]C#\?+^"&.O(-+5Z4N'?>W(-I( M7S!LK00[.-0P5V-!7@.NZROJK>OI3#PBSEPV@+(6[#YI: ^WC1A^CAT/4R:1 MOSO:4 QVG(IP52/SM S<6!1JJGW/C ID/8CE!T2'1&8CGNZ):]++!RF>;V*L M\**OM +L&&O'6HTV<6FX<:>@LZZ?EJ)1*=MN+(Z-UD["TA<<1'OL/6-W&T:D MUSVRO$_R(&VO!3M2%5'7DY1*J\"-657%]9.39O)1V0#/YV8Y?"T"MQ')5XQO ;L"%9 6XU>27&XD:NBM/9&5B8;U83;#=CQ\0); M9+UK.<"A6!5VY';!K[B&>@?_Y$]E8H=ID@U[XNG%;G4D&NIF7 M?MM"W-X3QX-#?Z9ORM$W14DSR"^AV\L;+H'<^6'C[H(F&_?='C/N*&62W##@ M \92MH#V;/'8]E'$;YE,?DSP^A#<^6O1N5W%JE,EC'/\:A11UILB*31H/P@- MS!!O"=&F@ 6^01O47AMYP+$?>7;VVF+_A2CQ@F]#,M=AMQ0WR:GCEBJP MHUH%;WV+35P>;A0K::V_QY0+1Z5TBR>$2WVNLH3[SZ0UZ7'@EBI3<6$QWF87 M/B\_!1>6:&W A7/I5D_IDFX&$P.FCV3D]_3J[*5;I,+"L-U6CK'JL,TEX;IJ MB[ZZ3IJ+150NHH+M;H6.!A/*."CY1/C@+DJ2R^-?L;?QPTUUH[;C"$E)&.P( M[F>CME%5NR2X#- 3CV[H9')KYPRB%1$Q:+<5>V> M/QL'I.TA%_5AP@;7--N[0A][4AQV_+7A% V,JF7A1F&KQOWGZ#-4B$94MJ63 MVR/@] NBHAVHBR M.3QK1:<0FLT*FPC+8JMI$7H0!K+#(8(+4UE.5/AD6[?8RW.$SXR#W: MX5+1Y#\/3N"O:<;$>4)GPCBYQ.LHQL_.&S^206K$F,"[QOR_+1]:TIX!VX-+5*.@UDZ<0Y5#->T05P]]H%LA'PD)UI:>"%?0;9+B6V>=LON0 M+LV>Y:]]ERT2S]"* : O@MF^, +:_I5S#3=^Z(2N3V8PE2TI2#1,?_'JZB8N M]LN8L4Y]@+^]UO%'T6UCFD3;RZ(JS*K5P/2HM!],:]R9<>2I>OE3BJ#8TJ:) MW9J)_B2TV\IB;>^(4MLQ6N-3V2AT&F0ZM'%[,.DIA1;&G0J-SNE,97 N;6WEG1&J MFE5[L:J\B7=$K8I <_U!V%9>FO;*,N.8N<>5,OM+"/<&6)6L7T(Z.SD[*E1 M;PBY5*[(+J]NGR/^XRR2U-_1SVC2#K9C^QQ=XN?8"9,UCF,L>O=IQ.9A,_78 MOX/R:7"#;?9.9V5'_BICY-Y>N/X\4_TS4O2P5X>+QUB M2!<_;3%.K^H;"?+S&Z;;F J9&[1H,W,;:& *-&T2I@$RR'+L?J@H1-<#4D25 M0DPKEH1S1I_[RU1#3#=45TY\Z,)*Z'>,XLD&9)?8FEZ8#.;QMH\(C0;4TNLL M=717!S()5+@@=%IZ6J%X@E(6B5G1Z03BJ<*FW'.&,LD@HG E Y'Z3:BM!&, M&<:GE(S;Z1R O;7-CP$^1(E/N_+%6THW$58!7H1DGA [DC2PYJ1/*MC[6E%" M#KJB)T,FO0$:)Y\9*I3)WH//SL7F^J!?2HU01240@X<)VM,N#U8G7ZK3A.8Z M4^$L">)F)FJH, 5^D:EMP,MS\41$/MVGF%MQ$D?H52<4(AJ33!NSU&W M1FY996*QVZ"XR>BE>0G"YA%Y/[S?<[PAWM#5\LX!/ SLH(0=BF!;"N9CB=C\ M?,10(U.C"A,VE3-+GQ:F1$1&< [%6Y.=LKP/Z]K@S^J6L>0 ZK-#C"7X&3J* M@,U].O:H,EN7^G!Y2PN%B<=G6@]WHU]8HU:V RN*YJ]?R#K:&F,GP22>[:/3"=_#?RM9&,E)O?"=\1GN4(&H[!2DP6;:EP+.B M$/I9KI^=MY9E^X&:@AV,0]JW&K!#M ,WJ =%JQWX]!PN:2@X>#3[^ -])HYT MF/,TC?W5(:6C;GH4E\YG:9:U* AHL3RW(G]4FYZ,8S?) M%6918ATK$P*3O<(('0]X5AO"GD.-6>#RWB H=0-:X4Z7D"J+@T39J[?6F1&4 M9?GMX*3"A,289U>U(B&A_I 3:TK&?RL1T/-30$W;-/FKQ";O[*,7)@W.D2P//T:43 M_I9(=[YDY6'[:BO2JKL*"\/UV':5>[QG@Q.4B:;=/Q-N=PMJ;+2V8Y.-)+._ MU2.TN=9TXE2"6A2M#56F$;,RQ8WX\BR;6.5MP G@T:';.>6Z2LOM:ND+X T% M8<>L&%O]Q.AI*;B1*=%5_VSA*JT<6+ X-:F#NW=V\LF)I/B4W/(J8:0^*"]IUP.]R&5>T'2W0E%O73_DDE$A&E'9@XY:FL+MW8%\P?$J M:AZ<#8SU'K^B#.^-X^I?'Q3PR3..=W>1$XI)Y*P$8.9H1E/01?UKX!PA4%;7 MCZ@X1.79(8-)HA%.R :%9"ZXV02.CDS$T7U>!'!X"_ 4\7WR/? %VG;[]0' M&XA:"?&)XI$'^7"@[$]BKYPX9J\FLCUPI1G36168;-$%KWA"6R\_E4FM0&M3 MNV^?XB@Y'7^.L_HY*,QG^B '\JS%)4_MSN_&XJLH2>EI0*$A1*6A1Z,493T0 M&XM"CD&YPOW6E9+DP'+%,K'L )>U5!O#P"P0NE0B>]^1QB+R_,1E![1LG49Y MSLXS".QQ4@1V_#7A.3UODG\/-](:M333NUGIUHSB>3JLFIZ6,H.D[26O09"@ M"Q00N8C]2+;ZY^K)INP;. M#W#3;K%LSG;>O-',P<9 RU7@;^Q=4JERFSP#=W-)^'$M0"<:((#/NBU3UG1@ M?G;20]RT,S/^$,(85)PD>:9MM,\NQ49KUAE?6.^,<[2MZ2N%A:<3D/)DE;+6:":VT(Z672+=GN:M WGU]\?G?0T/5J' M:C!CL"ON8OM)H0[P+:DN"/3O,NZ)+'KW#:5;C/:8@" J;=C#9V[>)/*S-E&< MO8G&_+N\.??EJ'M;8QCF]*QCT4J1; +1=L;? QL#_)7@A__@),C)G>2CE>$& M&0AAO-RS=)GAY@X3?1\Q/=:7_XO2NHCU52O#I$(]&]2&)THU 0]7NNG?9[2- MZ9'[O"'$9,]0T1;_ -'6[(Q?QC%$:8" &R N#, ^8.N 4&A@\>8G*2;1LUPO M][1/?8Y8BEVO@PUE,J9'"JT6:>,&H8!I440[#.-,431)!TN\47H3CS>+?B&] M-T9K)TC.0A1K34]FFA W3YH**I, MBPJ:%!]@F, :@38\,(?\+* QSV5/8QKVB(#"]\/S=9(>8J87\"IVT1@:%#*F M10E*2,8:(!0M3V:,8,Y6DF%"FC=B;BVU"5Z!I6$$H%P))A]TPURLHK;6 +Z& MJJZ_H154MOKOA^AUZ[M;]DE4=VOD.B%:X=*EO7$73X>W"&_AG/)*;AM]8#02 M\C,&*WYD:^.B1YSXWL$)?G*" V%M!MIC;YH*:%]: 2:WJ6.M9\X4E88[?E'0 M69_'N&C$9--1"9?.'\"UE)MR>+0O#.WFX,1.F&*=\86!J0M1B1[>;CNXV% . M=D *D=5G%R>%X(:?6%7]OI+U$U2F]1.$PX!CEPBL9-^O=?04F !X8T'8@27& M5DN!?U8*;FA)=.T_&JM$VN!'KVN C"O8W+LW3Q;510HP11=H7OCJ/B9VX6/&^YP ;R&K##2P%M-=8D MQ>$&GHK2N@Z;R<[[M>)$6B;?4A\W).("8A1FW5U0OBYO==+6-IH&'XS2(>0$ M1H[F1E0##Q/;KVP:0\(3*(0XM3PV9(LUR3ST[LIHYY>5AJ9H6S/8=@E%(4^< 03,):PTN?5)[$YPF-+*+?7 M@AW'BJC%"R]G5>!&L*KBQI9DBB9LKWZ.AYSUR(2R0 QC!;"[&6FJ(=PA="<7 ML@.&JI6Q\5 P^4BY+1;M+!./C7+TE:Y'?[--E^L?$\S&3?,UH>G*XX/S';U M^T]VN*=ED-%?*FP&,V0UT:J:ADBXC&@*F*'5.:;"1;2^($KPPQ0SY% ]:D^& M5C6Q/1:"8D ^4D(??/8>/#&2'R+\CX._W^7Y=UB);120KW;[.'IA^=[)V"K$ MZ<%N9O V)F$]ME(<%P$+X*24D0[5;KGDIWPD> M:.H-PC8+?JEN%9")H'"?T93LR=)"=PLJ$HBZX$E2C0:\ <<-BQ99+H["TWZ_.C25G5-A>J[B"UU9D.=RGM'DDK3(-KS.^?U+P= MSK;1.*#YPFUD-^EN(]0N9IEFI"I'Z,0BTW3_8W=[:!B(?&ZQ5HQ"&^=Y+H[SLG#9IU7CGO?,2\FV!P,#(H5QY.MG M3"<9V)L3EG(V#1D'OU':UU82 SMD=>TB/FK2+@-NB&LC,78X)6\398W"2=5I MT3;Y2;/7W#A.9APH:3RK(QEM;NDL!#:SZ-E$-#N9,JMHXC TG['&*!UG "-: M!CR?2+GV.GN]D&9(?^ IS'4HNUD,;$[1M8OR:*5!!EQ>T48RW&@E;Y6]*3!# M6>G-BEO33,F%=$6:0-%1<%GB]407'M0X4[YGG1^BPC*.9- M?)F]DX83E.0927R6D63<#*$#VN!D)$0SI1=9*\9]"6YHI P9;D8VRI#ERDFV M-T'T6F"($'5^RPT0_2.L,\A+@YJG5W3LW*3II'7A)NS+?H:VPE(Y<,8*EB ) N#=\U80I$_>9TW&;]%%:> M%"M#O@R[',N25H8=MMULT)9)[KPFW+#NJ+_I_')94S0)V[#'O;JL*PQH!R$3 MU(Y)6>&!DW/GRU7J^"'V;D,RA]P2M/@FBKLE]^@G$39C&+!6[>D ?7%PN<4$ M*.W9\MGE!92W3P?)N09L%'VZAF"7B4!8[4#,X/#,:%'%;+AJMK-9!?L4PI"F MV3Q$PWQ$=WUH6ZSH* (V6>G8HSV%47-]N'2DA<+4NF0MMV#>("(MVEZZL&,5 M* \Z%M29H^6G73PL$?\-.+#!=+X&P&:._K=J>>U23!I=-#&#J=TR] MX0G(HOV28O(GYHD._,HFU0)1-< \ 3F2U6IVH#NN8#F(,.X]?DN?7W'P@C]' M8;H5K9+V$/<.^$=BI\[LTR!KXMPC0S0.\]#1#54!<1T05P(N[PQA,<( ?X!, M-)1:GU^CGF8KI;P/6CFQB@Z;9"*F3R*G0,;C#MHRX8X(-&.8,@^)X#^")PK2 MINCU(!TY[X@LJI;1I@LJY)T01@W*V)1!&X=/&D9,1.+Y?T*GC1MB: ,&R\2\ M']*HVD67,ZB,]T$9-20C,P9M&SQA&#$0">0_F3NFKJH^2_(LH()>@F"207_; M%.?>M:0 /Q+?#U/_T_(!:_]W"3J$^?4-[%52TU1V-_?9^92&G4WD$?;@:=?7 M1+]TB]9\8.3;D@67/#A5L MWZ%K!YT!Y/0'CN,/&"V]XSF2.:K/^NR;3V+;/<'S*8Z2Y-I?KPE'D1CBG;KN M69XV8; 9HI^-E,[W2"7!98^>> 8Y\\.:1F7;,Y0-2*&>_QG)5N#&&#]6)@5D MF$Z*EE(>2@B$@276?K!&7*04FT<\=8SAK'TRHX]4_V ;G?[ M0\J.+/.;'+;O56D=0>XD #:==+=%6W+LJ1T^UL!@-K%][>#Q#,+)X_%- H4& MM$X;:PF:'BUT/UW<7>]KD(#GIJUAUNE1@ZNBJ*@-8 M/<\[EC%LG>-5PB=%Y7>7*$P][(X=/NP6^M5.YXQG$UFE<%822 M4[@=JD\_]$6G;E7K3COPC1P5ZA3WUL[6CF8.S3.U@T>]IETF'^4ZT3W=J!XK MFN&\POD>#SP)-D-TCCMIBII>S.L<==*1,RUN&/SHCF1_$>HA)YMV@L(F70\V M=94Q/?[H=)"IDX!I,<9PIW'$0PMPQY7&-0R<8TK7>$VS.UY%81K[JP.]*O1 M0#T[JT T@6BI IL(5/!6XUY6'FZ8*VFMZ[R9<%25CJAX] MKX+2/'R=],4Y] M_N(!U>3>V>'YFR_: Q<6ANV['Z:XN^^N.4>RHO.R5?/='8K+=RX3K^*KBT_Y\')_#7/ND=G&2[ MC F;XSC&WCR.:6IGVOQGO%OAQGOZ'>K"=%$M"Q2W\54K K^ WQF&KD<7#2'V M;E$4H[PM5&D,_<*;&V1MH"F2_^6,(+]O#LP2YIA., H6TUM;!<"#LI:;[ ),;&RSU'L'*V<@28D!K+_0AXR"B#_C=D:]O4[P3S6,["8!)7OJV M4%BE::@-=UZA@<%\W)>MH5]H>X@U:&?79D2#+';[(#IBC"YQ2%KE$S K&\'" ME;NW)](E'I+%6XK#Q%\%!'TBVKOI+&22W-!B$Z55W$8)D^.(-AS&>6*&2).( MMXE^*5M%BY ,WF(V=@-%&E8M!(A'/CMO_NZPF[-4<]4ODP<1* MH%R+6J$9RA1!7!,PRU_CV2XWP+[) ..2]7R#E^N\+[(VP!/@O<,^>CJ4(7Z*3]KV4YX[QMV'SS-'NHFPS* :TXR"R035B6:_9E MMQE1)[DP.=ZXY136&M2%3FZE00.:!:K*-*%TQ4I 6F6P8,&SJ,=N9I;GWR&] B*T8U/PNNQ+XX!PGQG- " Z7 MEMPP2^Z=(Z3UU'Q=FEV+JBQ%&QHB2\3#)+FA[-AG B^2_?ZF\JU(+=!BL>_$ M;T)7=YJ@S^__VYSF)_V#V?1DTRX^Z7C(![C93F,.D+/C5=1(M4W,RV-N,WE' MKE0?9L^@;8F&T6Y[9?"#VPX0^K),]4S?C.](SY,$T[PV]5, JV-!/S9'JR.8 M9B$=@>H<6!(,*7]R8I_>";[-KK@OPI1F\"E.#RS75U%"TW;[N]6!F*=Q3UY' M"$P2Z&>38A#860+PH9X^'NV\3UM\=H:%M(#BHHEQM\S'MT#>(LJ;1+S-8B)/ M[;)<(]8N*AL>?Y0UOFT>I)Y!#U[\O'BBW<4G0M7)T2!?WA_H-9?ENAESDW5: M:P!F0C6T!>W)BP/G.$7E]2^/[XDTFKZ./N"+_' =Q3LG'_O3G4':RQ//#9D> MU*]?<@; 5 4?)^-2WL &N2]PBIAN?"8;#_+MPMRI\R1.*U,\\J]R>D?^\2L9 MHR91X'O,V=AUG(;,*]*",!FJ'1LE)G$I>%,P!5UU7:\FEE\:,YUHI;,;-B97 M:2DZ)5<\3ZHB*S<5=S243*71(?5SJ?1> "L>PGS"&Y9EMC$+07MIF ZJB++Q MT>EZ47ANJJJPKJ>6K[KF@NW(2+[(A-N-RK'1FLG/QYU:S_P6:=]0[PY4X9E:4^> MH[)3QUY+%G1=6;!CNI>%ZFGW- 3!Y8)^9S('C7TG2'*EI9._ MUDJP_5\-<]7KY37@^KJBWMKG;8GX"R?T+HH&4.'T5J> ]G";.S3Z8^BGA"JR MBTBBD&PI"C,05? 5YT,%Y8 ?#&W36M?UJ-P+^JN0ZV?G M[U&0EX$=:BI_;,,),V\F%J^O0@S?14P2,\32TK M"]?K6A'FSBA9B*@#\K 3SBQ?KJ M^E(IT4[(3Q:1/.:'A&4NZ!\.J\!W?TS]P$^/XK!O+@8X\"6XBM!O* ,\^&4: M:R=58#)1)M0.!4P:,&-& WUU@U*A&KRHTU&^?\8DW@I]1.^5MI.EB$)Y2U:V M,,>U0')B QR6+<4B*M?FC<@SD)?'2QRZVYT3_R:_*]%6;6)N*\ M=>"3.A-R99'F!IVZ M:,#N/8@3W+E2;?,#W M6'ZD4506MB=+$=9NLS85A.NSYNZO?U=I9MI/D.6GLDC#,5!F@0@(R0K7D7*O9A"*&L M23.&W$(=&*19T&09I07.@ $U*_(<38-J0%D*QISP^$R:Z[;84:D!FT\4T+8L M<>3%X7*#BM(&IWY4-J0U#:I/M^6,6HV)^>\Y6OD:XY9FL6VL!]V0UU#5OEE^R].TF6(US;4]X#8BN3Q*U"V65>K! MCF9EY-5X;JT$-Z+55>]_+ U<5%L&;^X6PW.T?\9A<<57?(]!5!!F4+9C*^XR M-)8"?IM!KK-V:I]HCXC88GH^;"[;)FYY-^#D]QI&0FB.)>ZB9!YN<("3:[QW MXI0ZYW+],\T -0^]A^A5L'?3N3)@-NEL@X)AE&L"9YWN.'1=F;2$LJ90V18] MT\=:0T[H(=:>'8;Z5S.$G,T 6L/4W84DW<=\UD/_JERD(?_Z]6I^8HWR4Y@T M=J(UNP;#/X(WRSA53'MZ/+^[O5D^WM_.1PT,8^H[@;^.XM!W1G'I^[\UX6"? M G;I4NO"I>__!M2E*XII'W!?_(S^MGS\/^,[M GE\2OZ6P1DG^^NY7D(:068 M :&.5;I)<@?_E0<%G4T>R+^S_';#J'!!1.<#CND'S@9_HVJ3>I6)16@#7FF, M5LI/*$J;M#;GN#-4RH<1IL/AC2DO?7 2Y* ];^2CC;C]R0D.3*%Y$$2O#M%0 M=J=-7!IVM+:@K :JH"C<&&U36-=="[FH$&SS8MLYS+;QG[S&U!Q6.@*4%)^2 MXYH;%#4ZK^U!X,B ;43I-5[C.*;OD;[QIT//,0N,HU83=M1V0%^-7H5J<*.X MB_+:B3ZR-A!I)'N2=H;:/7Z8-#+CV&,W6@3^O]D!KC$(5[[:4*4CG9D4O/V@$,GH,D?YZ'' M'C/&23IWW?B O?DJ83=4!(8V(QDV"1FT7I67#(B%2U4FP6FG8JOHP,@JUX+Q M%=&#?5AHPK;)):M!C$+P%-;_ M9)3OK'BV[G44HP,)@CAUR+@L):;:1XE/AV96$M[=XY0;X"Y*DOF+XP=T_?> M#[3QCZAH'J41X@J@J@9D\LAUL#VLLFLT/S-:0(T&FWTNG<1W>QLQE_)>F*9F M%3U^82+> ZO4@8S)):SE0>@C2IW #'V8LTZ--- %6C6@!T8>&7>:XN!W1" G MENDU1'D/)'(*Q<*0!#B1F+30*95XC188A4S8NCF[715DF+<.L?0\36-_=4BY M-=AGA$FQ]^ <:>%Y'-/5>_84FL"R1@3#IAMSMJOR3W^I< G)(+9>&T5<+R*Y+,I &8M;>3E M9DLH>Z)HS]9XV'(875F*?9?./_F7SJL3>PGZX(W.#@88\GJMOM#_PJZG*]<.+0#S?) XZ9=64'3(TW IL; MA[%I+8VRT1;@'AGI5(51JA'*5\AR+A5*T4JX6/1'/"=7FX=N> M-KT\-@N0Y&@:)*A6I3 MC,1SW.WA5-:96DPT:&[8L6>(MF'WX0TZT*81C\.$A?P#@2A_?D-: [9;*Z"M MC2'%Q>$ZLXK2VJ,[-L&]%$UP[2:WLP@<3M>DW)'?M5PB,R@>-B>8MJ/!$>8= M_+MLQA&:'CMVGFS>"2_+C1+6IQ;*-A:6Z1;'UW[B!E%RH(MW\O-&W:7 #E)- MJU1CL:,(N"&G"T1[[?8L2(I-N1EBK:*R6=LGA\8V3HUVDH)V)C@@D-Y<,R4; M-LL8M:#!<0#TBV]FX5D> 5B]& ?0DB6I(5RSI%NW),XMN2>69-MU@HV[/W]5 M(B>#K=_^\F_Y)YD"?_G_ 5!+ P04 " #-E*)8*O6$@2=* 47@4 %0 M '=L9&XM,C R-# S,CE?<')E+GAM;.U]6W/C.);F^T3L?]#F/FQUQ&:E[YFN MZ)X)V9:=BK$EM:3,ZIJ7#)J")'91I!HDG7;_^@5XD4B1N!(D0R8$A@\6O9^6O^[-W>W6<'I/ $++MGLWT%JL M0*]W>O+KU:]GOU[V/G[\S[")&\-#55RG%[9U]NMI\H?;N#77^:UW^>GLT]G) MV47OZK?S\]\NKWN3IZ38$^K8TF*4LRWGS]_P_WM&7^LA^1SOMU?/^MN'M>]O M?_OTZ>?/G[_^//_5A2M4_>3TTS^>'F?F&FR,CY;C^89C@@\]5/XW+_SEHVL: M?@A.JOKK,[23!LX_[;Y%+(%_^I@4^XA_]?'T[./YZ:^OWN)#W$7\9XZ/),5? M<^5CF4ZOKZ\_A7_=%44-692F=V+_YW_T>G^%K@VF8-D+F_C-?]N"OWWPK,W6 MQI\.?[>&8/FW#S_MA?,1XW]R?G:-!?D_=S$WDO_VG<7 \2W_;>@L7;@)8?S0 MP^U_FPZS74>L61C.KZ:[^83__HFOJ5 \+LP^E11MYB-ZXH[ M:UL+3-L;P\;XS=8 ^!ZGA$(M:BGHQ("HW!KXEFG8ZJ4^:%X7"'9_]<;+6W>S MA6"-RE@O8(C,Y@8HP8'Y#1W!F/FN^>?:M1=H,AG\*T!C53D619_0$8I;PUO? MV^Y/-;: T')]@M]9GFF[7@#!&*X,Q_IW:'Z121YO 0S_'?/4<'AU+M9D$Z). M@8GG'=-T S3Q.*L)=!WT3S/2A+"8K.::$?$%. &0$2:IV$2W9\$6E<>X&?:] MY: 9PS+LW2"Y,WQ#6"">)IL0]0Y ZP4-AQ>PZ]40+=9@($="5G/-B/CLCY]M M:Q6->@F9#NHW(<0C0 V*]SVIUD27D7'=6'ZH>&1VOQO0,IYMM,#P 02>'RZV M+0F1>)MMQ'" 5;R7> #N"AK;-5Y:2FQ.1%IL0M!HF3@W7B44F*G;1.<'!G30 M!.E- )RMT1Y@L!47HK"-9D99.-L#9&NE!E.F=C.3[;,'_A4@D@]>I.:-O59/4A*2:E)3UGP%@O*47< =^P["JF1,JW] 3G'I4U M[#^ ;WJ4"GZ2)-+!G6,X&BQ24$?@(.482L4E-*BGBNH*=J>0\OTP0+[F&7% ME_Z.GJ#@0X9M/%F%$S(^?!ANMM!]B1RW(^ CHQ[8!DRO0*K"KEQWV@OQ'=A" M@&K&EK._<:$?&]+!ZQ8?F#2+N4#_]%1"WS1A !:/EO%LV:&'KCI *=_2$YP' MUUU@B:N#)/<%/8% O[5\\(BVCHLA*N6L++2<[7L>\+T'Z'H>XGT0^7V1CH,- M,D/(RJ<'0W4(JNM:ZZ!/2X'V&I:[: 1F2C?T\YVH6^])?T<_4)+8@J]@L0*# MY1*8N*0#/.G)H/3W] /IWK#@=\,.I%<,# F<5_?AD^ $,YX+Q,OR- F^-_(>T@27< MWM]9:/L ;(^2I$@M=V<\-&2&%3-"/'/: *)4C9PM:QO[.8 ->J^ 7"#UEE+ MRY^@V5F:%@J^J"]0I-]7"Q;SJUK&?*@[$B[S*3VA23REX^7^;+\Z=*A?TQ.@ MN$#H+ZZ:-@=?T1(05-18K2"(MOWC91P\4!DTK.]I"1))EJI 8GU/2Y#0/AS? M+XO,P-3R_JP,'O*7&K[I@-WFT0F\C;9R1HG5'U^C#8O[#?4%HJXXZ*=)[ R6 M-JK<[38L].Z?L9,B7F@J$)O5LB:QJ-CS'_BE#"!GJYH(W$>KXH5E!_@\: ;, M>".J4';&!ZJ" 3?HH1;#UCQ@_KIR7SX!E#:#@KTBWD7',A +061 4,94BD+((_7?TZ^KZ#5QQ@\6@\ _L#%S2';=D0 M9IK".52N<0Z5TZL0H^P72O=T#J 'JN]N^C/E^^SZAEU#GU.?*=-G7TU7_7PW M_4SOMFAOC9V\V+@]HF;CQG%UAM7@2T&3ZCYX]8&S (O=;RT??^0$=?"D][&7 M-)3^I^$L>E&K/;E;HUA&K /7S'3%QEF+7,AAYJ ??MRZ+P#V MGSVTUC/]I"4;8_NW#P=_^U1A-R)X;L,U)UJ(+L#K?X.W@^X0R_VX.O]R>7+V M^?3J_#,"[O+Z^FK?VS0U^C#;*A#[C8ZC:I6 0E9YZC% MS3?VX%W,P.QRB? M-8+RWP,#^@#:;U.P=>'AN*.4;!7V/'V/U7#>#-G1&BG:_##U<%BT58K@ZGRL MB8M&-!$%DPZQXKX+)6!433TKUE@U&P>0:0..?NB[0" M=JY.QXA?-8#X%*PLW'/''QF;(L87%6L1\AP=C]'_W #ZV!$$D27<'[+?%_T*X;G!*54E V*\XI$N>SK@KA[7VR<3O10AMG MHX:[4VBGN?:*/> M?72FC[?HGV,X=W\Z+%WL2[9/$XR^)WJH=Z>=Z>'$]7S#_A]K2YW>BPJW3QOL M[B<*J7?/G>EDN.@8PPET7ZPH%3M5)0?%VZ<4'@$2M=2[ <>#MP^!01@9Z3^W M G9FAQ.8Z]UFXP<&[,G:=#77^)R?X$0J M*M8*W+D[GL#?Q [X-H!8N,BGCEF"< L\\JEE8?&L5&Q M]D:89P"GLXA[3?'J%15OD5H$!$C4TL2>&/OBX2U:!Z]<2#[:SY1JD1+8_4ZP M;V(?/-L8MGT3>!9.O$'$/E.J1=BS^YU@W\26=[ !<(6LY0-T?_KK_7,GQ3HH M+-TB7?#W/]%)O?O=F#%K8-LL5:0+M4@#S&XGP#=QT(QOS>$S)]?\,XS-]<:! MC]^EPXML\L*)4JE%BA$6(U%4O?OF>/VP3U-+CLH@%6V%4H0ZGZBBWOUT$CL2 M]3&*(+E'ORN:PHEEL_*<7R'H]%.&6.\3;=2[Y\[V$3.&3Q>[DBW4!+WOB1[J MW7SW4?<681=MHVC2R/R]%9BS>YR$21+VTW_]=!@!7RXL7NS=TA1JQ.CXTQ,< M';]K%_W[=CRZ&XQF@SO\K]GX<7C7GZ,?;OJ/_='MH#?[.AC,9Q]J"))?&MYS MV%[@?5P9QC:^G6/[7O*;/?_B7_Q(7);!++M(1HNGYJL@/'!DQXJR>Q1TN M+J3+@!+1 !YG M(0 _"1>$N 5@W1%21*]\.^VZD;*C5K-%[;<"GVH*PN^A70 M%TG)/)(ITK5_>,FK-H7CM%9])\RSC[.8OQ@VP"E)_%L#PC>TLP@3C1((P%4W M"]L%@NU4 T+PZ#;/"WF!*^#)%BUR\1E'&%=9+VFR[S,4>\BI9;M$"GX!B7>& M5)#@M/:I(GJGV,.O%J.A\&R#$?#I7*!5Z1(EA.4D7F-2P8PS06;D;]_CW_S M#TUB#'ZW?,1RSW"0<(6T0VS+YMQ\H^PG OWXD_Q57G'6('^$O5QER?C MWH51#EN+(%;K +DDIB5?36LF) M"01;PUK$26#P*VT8C0R]?Q/-J/O'*2A/@A$-2-4? MUI.)PH:G$9BZM;]+'APC4#'YTKVDSZ\H,10%K4TNIT@@#B M$E:ZSZF=%91'VT9$6M K95&[;"R*HQ0O)$3LUF8GM60?N8[)WOL>ENT$#?@E M:_W>Y2[NYB[9*PG5 R111B[I*V;%93+[&@ M34P8/XJ?IT8$P]LB_XUQRL];71<>R 9VE))3T;$>,->?KZSW6QAC1G!HT+RT2Z'F%W0/PQ0+W.8D2E07+Z+ M+!"0M *_8,U!8@7GR8GL;W1.\%3M'#VDA:[4U5B[[V#D^H!O\B@HF<7G"JW< M3]I-"EX9NQ5 D3YNX309M"J=8X6PL!6X%YL\@.#D!+U2YU@A(6X%CL<&'4_< M:T[6$JP#9. 4L?51%8^NLYH#N$E/E"2M%Q356.]*G ^\(E<:A=#$P61^?F2> M1#%J=9PJ,M)W.AUGCIS\BG8L+P ^NUJP!Y_VII#E._@NK)#%ZS/" MO=GKD*KY(B9XI:$13:Y1V8O3CA.!):FJW4ECBU.>H(2BXJN"+QI@Q2?H9"DZ[3%]04C&16=G&87E/7/%W&V-FH*A8-BG5,YEX"*7!9-ZKN_6%A1KR>&M1@ZM\;6 M0FN5E/BD0W-FQ+PHT3SK()P1HXGO4"HOA2?+MZ!/SQ M/>FG2. YPBMMYGP=J[249\Z\:'ZEQ9_.(3'](L MR94&,W-.0N#7P+=,8W<)F)FF\U(F36?OE\S'_O+A/6UG4YF[6#D?.:IF!\AU M8_L5Z12?LC*V/^ [E>WIS@V>_65@Y]%@!(&+M*$+54JKOH!%I7&H-&=D$UF3 M4KZ_Z+F_\3)ZR0!9_] YE*0(NK,\TW:] /V)88]*MJH+_V1-517BM_ZV0A84 M!,,8AO@N0C@F (;X5 MWAG%B4FWDBP5 3#TO$"(15&%=P9QX-&M"U9%PI-?Q.*L]IDE=:"B[-%^N//U.(""[*.6KJ0I?*U$]EV!&OQ7//(C(7XI0:Q\VB M(UQ_YZ2G+KX)I=]9=I,)K/>N-[]*>GR73P%94;?A_TAB/T\T#7(]<(CYV( MA T'L53=@5@OP G /1I112E@!J^F'6"6XW2#Z'\7Y" _B99TL20,C66#L=1( MV?J#UUO70_O+& [FIKJ@; N5SR]'ZT^DL*AW%@2FCSZ_;[U L:E2NJA47%_% MNF:)5NFV5/1R*/$--(S!+'@V=R]GS0!\L%V$Q<<'#BX$2+72! ZK$ M[H05V(''8]R[H'U^P51M$QL+MWV KN=-H+LDQMNG2G1)MRRQ5.W?4IIM\D6$ M)$=&_*X9ZQ"$6%X7"@BLV<1D:?K$@C")ATL0-.M,07CM(Q9EM]D('1,W1KAA MW^ _%3W()=^0+EJ74^G!M*X.@=9OX<:F&6P-QWPCOY21+I(%X12!\*65-."6 MK5MIR4+');R!?V S8J,W5 M W 0>C:6>[&Q' LCYULO(,:2-#/PM] UMI05O?4W3J?6V?.B@ M;P//SXB2IJ@L1RFDYSQ9IV;L5RA@NA8B8TI:.Q$I=98R$U*T_/Q)E M!B<\9XTG\%!%"C&!6W_>M%]/)0$TEA,@T>,%E^MX-V#I0K![N19X@U>$)Q+< M<@SX-D33>)BQ&1_)NN$&+#'$Q#FJLB_JPDF!-4[=:+1^Y[,#(AZ6-VB[3SXL M)91N+5'X)%&4"[G)5)AHL<;Q='1+TXJ:KN[P2%5K53EJ/>*XD$VQR9_;.L@,? M+!AS'*.6+F01F-]D)$H,QDEK)[=#J6\,SS(Y=1Z6S>)R?G5RR\V=7F5,66(-J,+C03F M$"4B)A:EO;&@O##0)ANA-G2ABE(>R-.KUME*"VK%QI@W(X%@*\=-+R%4*GG* M*/^V2'/9"LC/"#"2%9S+)2N8S<>W__UU_'@WF,[^;V_P]V_#^1\?-$U6D,H5 MQOTD(&>=NE\+B3LUISS"GBV4'0T7C=D((1UD7P5ABD.+=.!"K:.+[@140=$?MX2:J#-Z^^()X-F&H+UT$6V5Q8U[7G=,^12MV^R& M\QY2E9PKUT5-\PG9^E@MPA.'5/U3ZW21"^("M_[B&,?CA72.\-;O)%]*"=_Z M:V:'3Q=2B5)>N@W?UJN/J7Z*7ZK][J#S!(17M%L2*/*92,F+I+Y M+H!X/(6]"_.,#S9;VWT#('K?(H#F&L$^L0UBDAV9MHZ#9NJ@:;W_A0!%-/J( M6)#7YU*MZ<8Z=?S@YIX41-U8TA& #O\V#D7R!J\ FI9'G#2%V]&-@B:.&'>Z9'_7,$!V#\#SP]CAN+DH'-W;KSB MYQWP*$\NN(D Y8X;[D*'E>NRF,WS&R%@B' M#ZT3#]^B;:/#4"88%UB+4AL2S%(-&4>H-4E3OM28$C :L(@8R&M.-@NK((KA"E&)B-:O$VAV J3EH[A+" M@4*4G@_GB2E 1L&S?! _(Q,A.@6FNW+"5D+%L9>2E7PVJ[FKCIZ+-(*BHOPX MFNR22J;*Z2JSV"*KRJZCQP536F(/1L(*GJK'01II)!0EZ-$FZTGK @>ZRL@* ML5*5>",Z#AXX^4UQ%^(&NDHL$>%5W:8G,R79-33X@G:<_&JWA&)<1;V0?#>[ M/_O:NW\<_S[[H/\%U!TF['NG!45K7P;C/DR@^V(A?=V\?4/*'CJ[EP/ZIF^] MH(T!\ZT]\8:R8^8S&C,G35];)6KN8(FL0M+6'ZE'STY2MD_[ KJH6K$*\]Q@ MB%QQEK^K1IU(V(G@F)8-,GO(N:O&OE3QJ:.A96W@M?[V:/H%-?1O&\1Y.P7? MF2-5U8UQM1$CSTEIN%H_<28O:)@(5Y%W1G+EW]DDB5%9,\4XU:Y] W\7]UHL MS3^CUCN[2B'5^H#M))7UV)D9-A@O$:P(2/\-1PF'ET:W6!<$;O%5?J>8"L#* MALT66C,5S[V'*'FH,_24!D*K'DO2@4?X880=F'&C!<%SP-_!.-U6@5?*44SX5:(,D3,PZ M4@NP7BBI(GFJZD:\DMKGH1,G")6$/S?-'?Q>'@8/!X7?HA&.QC+L>Q[E?5SN M%K(@?HG>&^\VD\2PZ)KGH0!@[(G9#RO2X1"[XA%RB0N"LHX%+6W2!(*M82T2 M1TOR"JT3I9L+QQ,_DW@:.T)V2/9LL-ML0AG#JH>)VUX0*C@HDK3 MS"G:9"0PO)7:MNU:.4(^B>.AU>47PJE+7LXI?EQGO/R&%GM%RQS.6ITE2!GY MR]Y@8>SG:[\6RA^"5CH.6#<^519]5Q(258$$C3UG3Y!_Z+P 3T6,.:6A+*#7 M.CR-5";&7%32UH=CH@U". M1)# )@ +[QX!7A!MPT,K_A:.AU+:CVSY82X]V1T-PTI"TM6%U+WE M&(ZI8"%%:4@7CBE:2(E*VG0P+RG ,I[*[UV(I;P#6]>S?.\KL)&,^_HY+6"YB"9P1A4G.? BF$,P]+861F]9_5A6^*>708L-D0D!5G]:L] M"F$*MC$>X^7(]0'C2(94O/.DDP*@DI"5YOCQ:#D )RY _2;>C"&6SP!T=H( M^M)]AK 1J"0DI<'%>X0?>,2.X FT$)1;G%TM H3 &6J=H^&-. H=""[)['P% M$KLSZQT-;>20:/VCDCFQ:4^>%!<^7HJ0Q6]]Z$AJ7X FXOAUEO$R#+>*,E0YY<2WM*_H:*A5$A)5022-^2&Q\/C_\#!Z,>R\ M'Z+O++*_2)6,,@[GPRWB](R#5S10G168HN$S6"X!T8=9;R=TX;:H_U,#E%2] MZM1.NE?!WBS,IY?7UT= QD*A%>T \D]SOC/L$.QVG/=4(+6BW<1A%M>:LR$$ MVZT= FG8NU00SM*%FTB+]/-"SMIMM4MEQ.M L'F4[!H_'C&BW '.E-)%TRHT MF.<#C["5O@;3Q#7>*+%5]&@8C0>'!;M.!2YY*XU=JC\?? S;+I]>$E_C+ KV MN'>69]JN%T# F$7*-JL+TV36),KEKN F2MTD"^]HA"=%XV?;6H6J\]" "W#O MB1RBULI"==9X)I-*5%_$,'%4:IG 5#],L$=H#%>&$Z>)Q5?8H\L42&@T*-W- MUG!V+G+JBP2G)^A_>A][^X;1#^/I0W\T_)_^?#@>]?JCN]YX,IB&/X6/$CQ\K@JZ#_FF" M3.0)PZ*=Y2W:=' [&,U[_=O;\;?1?#AZZ$VFXQ'Z]VWTQHJN=FP$?I+ 0$2Y M#=W/WBZ?0%@FC#FQB2'02EJL^PA/NLLLNZ6B:5ULE4*N9 _[*H*HC=;I!3@! MX+5#YT5VZ/M@]&V@K;V))<0Q)H5YW8IM"G>MNJ->J=UBV0;>ZKJ,?T'=9:-= M2XC:OG&<=I'EEU=WAF]PCO"+_ B??9M,'L-%1?^Q=S\<]4>W0_2OW7-NO;O^ MO*_K\+\Q;!R].EL#X$^!C2-X]L*15A2\E9H[\$GW,-4UE@$0:2([,LX;>U-> M3(.D0R I:=MG!^X M%X,?*EH9P6&#D(H$-EM7.9MP-U@.OS>GP^_#U(68#B: MS:??M-YM[/%(P8 6>5_!8B7F\B[54MUOQPAWE64XRC2IBR%1P(7L"S**(6FC MM7GV4\YI3O-R561>;N:]\IK3IY]#DM17*AN(Y#N!7M\%Y;69^C2 M<,^.2GY!VC?@PN,@WG'V.3_.'@?]F;Y;]4@ZPJ@Z_*.*R_:/P/, V&?M2H[P M8IQ)@T:HKBY#J!CEDRBA@>-G[D\P!MJ7 M_$"['3\]#>?18^?XN/%[?SKLWSP.T)IY/I@.9O,>^M-P/JQL,!(8GY*;.8\Q MRM8<6U#4&=:L1J^4I?+%U5W@T!H\A'XK/# ?!N.':7_R=7@;;FCOQ].G< FJZQP9PS(% M6_RF+C+4Q6.77*QFG]5!/_C'+D=-708P2R<9GY2D6.T;P*DX2[ZA>GJ2'ZK# M$9I)![UY_Q_Z+EMW@C)G5&K)AL*#^4%L1]W8[#:*_!Z+:ZS6-Y M3X[K>7MYWT@N'5*I>D?=(U@9]I/A8R[@^)^TGE@CD*MNEL"7C26A8V@E/1CE MY6K?P)P%SQ[X5X!:&;SPGY*>%L1"S;[=S 9__X;WEC@J2M]CT4.12;M(8K&Z M(Q^R_6"'.1#*ZS(26?AGHQA$A&G?\&-?^YBXML4]::(I\^1,_OI'[Y?D:]HN M:M]O@NQBNSP+L205IXM5%]'EC64C^"KK8C JN[51 H:J3$V-.4$]T["CE#@$ MEJ2+=)X+3&%;__C,-YPO;N#YU@;A04JSDBW4>:USB-MTKOPJ[]N(S!FBS72> M.TH 495-K/Y;,_/P27>N9>GY"?H?TMV9WB]12]HN.76Z1$.(;)B9:[ (\!M% M-V]S5#O,"H4/V3"R\:E;B#(UJD>\E2REK]IT5T:EQ.W;=[*OS @-[XO\\.:Z M.*/]V._2#9H=UY,L'FD2I*^%T Q%R=9T,1@E[M4H%+SUFTCBBW@L^K KMI\I MDC*V?I^Y'R'Y!^X%;0NK@?:3I*2LK=^<[N5_<-T%7K'PLR-7HTMTX!.NJNUC M _I'RU#+!X_6"\X][QO.RD+LCYZJ%[0:W"UUB2_EA*[JZ9FF+OL*[5XN\[L7 MUI5?[3.% MZL-QPCA^2GSU+M[J$=%8'3ZUY&NN[2J]T.1]531Y9R_4MV"R;LW-^CU[<7\$ M#4*^BBZCG?^.O; T[3LG[NZ.EZD!QI%F0:HY_=5>B81-.\_IN38. MY$*B,E[W$*6*JB^TBCV5"MUZ!_M!;I-0\.2,X>W)\ .\R.><8(1;RD!Z?MG8 M53R>R4>-<*UWR*O"6A;]P[>Z'6L@,$GT UDQ5,*'6)0E&;WKR4]U=9GK%:0;"* M5U-Q^"77[,!5MXT,D1>,N&FI/SN&B$T_/,N29>S-T6&/\)TV M$TW:=Y8=^& AZ*$5:DV742J2:$.EJ.WS[+*O&\<6+S6IW0'?L&P^FW!1[ODY MO"B,OM]+=:#W2]P%;8U'%9>2%;>M2^8[-.YP?M$W+W?/@@5$J39U,565,(8O MQ9XL2MV*>1@%FV< \>KL$ 0"[<@5=..4>M7GZ26(1N!/3#CT&<5#M<51X( MDOM[=B@U'P*E#.&]/>&369'YL)7Y2#SHI^B.?MIK&?WP8XH?3^R_6H=S2>9O MNFB73P5[E;&%:*6ZG@">T4@*B_ZJB\K8*BA0%T4$HL*JQ_[)8NTQQ6@ZWD1F&?*6\JV@A3$8HIGZ<,:B M%]9%HZ)3F(146BFX;)ZONR#:OQ /[O-%M5,UO^J*#O$Y!6SYOC5)T5/6F4MY M\;JMKEJY9#["M=_=K:E!]04-JHM&=[ EWM)6C\.[0Y7+A=@\:]2K7MZA6B=W MJI^8'H #8":83'1BRGE/4Q-3W/HQ3$R:3DBT6!B)N"!=#$.):418/,I(3\;K M6=UJC>ZD[GR[R<7I H\G1PU=E"JMH;R21:7ET''M\SE!ACMW8UBDC2.UCFYZ M%E42MYHIXE;I:!70+;Y<-U[.#!MXA:X[8KF6Z)"B@;P6^81LI7M6XARJ>9V6 ML+]LN2ANO,32JLE14\V14W/:84/+>>14@R6L[M!" _PIW>(^M&BS32MQ8-@J M[3'%:/V)!,'0DXZB>*MEP;I&8'UNZWQ62N0*;BS+;SD)]^$G )H(OO%R[OJ& M'8L5IC^R/+# T771[MK[?6V9:[3:LX,%F $$.EKQ3=;XLN88#J(;WH=\4?^! MEC"+3HL]NVH"J%)7I2(>HG9=&";]#[-P#5ZWP/' X!5+:SFKF>^:?]X@61<8 M&?2GHM-3^8:ZR"MU0"B:YUX ?'8+&'2AAD%]VXXWG^/EO6'&F9OQWM*;NW<6 M!*8?_K ?43&J12R2;JR+3%(+1J6SHJB3CL"EN/_()J]!=+[4]_I.?X7 +F(+ MI7@7^2 J;@69.!ITO>.X:Q\&9AR#'?+=A5-@ NL%KRBG^'C+,5:DXQ7N^AVC MCAKY*\C>D9^)FGSM9PH0.I:)9FR<+DGL,/:BZ"UHGL=_/O;VG^WA[^I_2BOU M'I!8Y1_UVQ8$/?X__$#)BV'C%7V6#^%Z+OV+5$F&S$K:ULTF\2NRP!!5!DBW MXHIB* X!\&\-"-_03N*[8><6T4)U=2-5=<0H)J$<0-TB619/8M!GNM QTX8# MB5HRD;=C9JQB1LQ@?G&",#\_&O:I!TZ54P"[4)LGZP$8^.F?W1H__1I&_.S% M *_G/?Q*T*/ED0/>2[1YS&15#URE_HSJ0W_9>]#=^XA(#6&>S;5K+X:;+71? MHF.&$<"IP0/;@.FG(\2VJKFX8=ZMZJYW/<-9]';]ZZ4[^/]ZJ(NH;-S+](?> M=[9-)DDC/\5)B4CFK:Z;F5/QFIR$Q)K$.!)['K_P38Y5YJBIFZI+*2RO?UD$ M=%<][CPU@)FCIFZJE]65@-89PFNB]?L .I:/7^W!;[N]XG_1HYO)%5JC8X9F M\CH6E+GI"$'" 2F.&0A0HU\-N/AIA,+,W*6/_UFH<;Y*W=-Z";E;'UU8N'.@ MV@-*C>Y10U;HIM]!(87?!+Z[<9\M&WAS&)A_>J%] _8>&;)AX*W;/1*4%[_U MSYP007QDA"&S*^K&E[HV"70 %$TLZI+#J2#+[CGAZ&&8J;5:^^/E-R]Z>+V_ M1/Q./?)Z!Y"LII6D3NQO<%J!.+LHW;]27P>RNCMM_'A+DFT"M*T'PFZ=FQ+! M?("N)VPYPTJM(5X]?!$@,!F^;I&.@OH-6+IHA[.'/8TSR0T@V=P[41E$50IL MM^())'65@XVB++4K")$OOP\,60M>L0ZZ%>8@J]8&1L_[N&ERW)0?,=+NC>MH MQ#CXUD)(RZ?/4/:B=A"[Q^_$O)VKV%/G=WXI-]?_#/P M?#RP[UTHP!-FO2QL9XVS1-U<*2?ZT;C9RGG5R$N&YBDDIW@AWQ=3_);G=F:O MF-!J$@9("LMXCK,YB*Y^+F17/_&G>ZEOOZ]?2K][)S4KY4AP&T \/%FS$JN> M;B:%7P$%\Y"4L)I&[<7"S()GN:AL4$ M;4/*JG06-_P:K/&&OFG/C5?2B.:LU4G-2XI=R\5/-7/\%#RC=0Z.)!W[:P I M%*!6Z*3VQ26N-.N46L6C_[B!@Q])0H*QAC^K3I?5+R9TS( K+1A0W=9/=,O7 M-8+("1R3XW-G3]@>7'>!&Q#U$EW*>HF2#[Z[AC!GOS1W7S]1!-_U_$SI[% Y MOVKJP5IQL//V0$1$CK>DU+QP(J+09#3?!)[E ,_;/9)(OH5/K:.; M85%U?!0N[C3U?GVFC'9*%%9#@2J9 JJY+4]RLC@ KM[(5QW3?]<.?B9TAPX4 MEC":^L$'S@K1"T"T]L?9B ,;[P)F +Y8)B%C 6^U#JA43L;6WU9/IHU'QJW3 M7#GM5%YJ)N033^T5T@:GS$3.@WV8-=U#%ZJQVI..!D[]-<:Z!JPK] MUO+!H_4"%D-4"BUGT.07AGUYX?7<_@9[?;'7GW#Y4=3'=27KXXIZ^M'&7>WM M^]J+.HN=8+B_O;C#4?3WOLO92/!W-QD.X#EISD]&H1V?ZXS50'9(7S0^#PGH MA.9.DQ);Q]?:*8+YFZ2"T.54K1>@1 M8-TQY*NL&W&D]2Q$&18 W;J.!RR7T+40>LO!'0QOAY*2" M#1TKM43@J.6^I*;'D&EP)N%9JNB1X^?*CAPSAXI1Y][/%L-SK-HM6&-GB\U; M+ &=J#M;5#L-ZK;DKOH,LGG2E-2[PC/(;C.IKH/+YAE5E@"*#RX[0*O*3SNU M)@VWBLN==E:WGVOA:6=7"<$E]?MI)^FTKZNT$)3__;23?=#75:K(@/!^VDD^ M[+O2^?BA!$]$ =#SM-.#?HH?Z*<]-] //Z8(K:(7Z3-_TTW?RG:\;"FU.XCD MT6?AN#[XJRXZ9:N@0%WL45A)>"L#^R=$QDVP(:*?^;MV^%.ZE=4 6PP]=V L M[1FO=.VE_]YB[3'%:/WFJ=:HG0[-AJ5!:/VNBBSY-P\L _O16I(.G7BJZL8< M:46+<(8A?LN?'+@#T'I!#;R W7'XT/%\&(0>B ?@ (A_LW3A1N*2[>7)Z>&) M]]U@.OS>GP^_#U+GWSG\:6Z@@M+JRO-CE5D=>F@*!Z[O#++C<>$%:/KN?=O,5S M6-KU*VC/V8WIRZ"REEY2=HKCH;$YH*#_U F 6%Y?;9?66YX48BAH,BG<&M[Z MWG9_QIVG'XX5E=5-Q6):*#@ XQ:R0],!RT-84%(WO9)=Y *'A)5>9FK@ M6?.]*_32NJ9.=]-H8#)9+@+W= #_=('K"C5/7>#2+H&CA>MN]Q-BG'>WP/#MI9ON.M>J&+O!BQ=B!;TK]'E5%0#XA?> M[T#T7P8^57XR._B_H,%_IHEUD^)"WNC5#EZWUM@D^+"C*6-&=]ZG$+HI,''8 MKK6TS(@]X6.%@OR6^H9NA*Z=?_Q#0!V^1\[Y0Z1VZE-%>.('WME>GNUBX&KU M9GK]5.\O?7RIHF*^T[_R3OKRI)= 6)5O@/I>K!YGR(? W"-]IQ(%C6^'.#YU@;_#B!$F,J?."C__/E;$#KVKAKX6OTI;!]%X.;(/]8+O_;N M8&Q)4'ERE<-XMNRPHX%[U58'(MWN M5865VLQ(6BP&XHR18BS4GU!5,8#-NCH(I-V2,A+]-H!80YPDBDOKSJ&2=*!) MV6DVQ(+O@(R 5SI#&.1$6UM*76+Q*YB0*0^2RL^-U1!4' MK+!C0T>RO.T14#]-JOC(<5!1.4(M?WN [@M+.PLI)UFBGK(+"4]9^K'RL"^] M3&=Z46]ZO^#^_.7=F286H57[#4!.8M$2.(@TH:]MD])5WM"5!J/->/"LKHQ0EQ]>0KP"]IF MU4]"+*GWCM-%,O)?GB#YSQM5-+^2\@IFRM5FO7+81*K2N>OKQ@BF5J56!]6S MY 7 9[>AV\DI )+8B!'P,P%X''9"L!7=B%..!51628L@L8.%Y:PF^+U0Q C?A]9SX&-K,7?#5V@<'_4> M]6*57)4G[NM5-*X;=VLC69&CH#) %3%Z&XJ'=L30;_[@AV9:BJ_O>8EB)"[I M,%I\IW%E*';K;%NE8FI88KSSNCY8*\T\HY5Y+F&'WXDI9'!Y"%?Z)I8>UQG; MN=AM]@6-+JYVU3UE%RUW!TX^RNFLAFB19W_\;%NK:(44'DM$ 3-B(2!714]P MW,Q[XYO'X4-_/AR/PH1,^^;;$-#Q[ O$:A07KCM([=G?QQ_0'\O(E$@E15%1'Y?*H+*]L;NFZI&UJ M?$-Q8=TTSJTWMLHI K99Z2/7!][$>(L6(C>&\R?K,7-">=U53]%?7OEB4K;^ M^#$M;K@NCO_-3X6"6ITE!*^LK7^L,SM?4A]9.2RHF_+EIWY.V=I\1)P5V"6^W:Z=S@:E?2, &)_^?]L+!VKPX.3^[#C6*?_/C%GW3\OLK",+83JSN M0CM.+ZRW-AE*V>M40LCF(]4(BIVCV>O1-1RR-K,E=%&AA X.%,@A5].+,(+. MPL4"YBY9:0=%=-&:BH''(UK'EDF/S$>*"DMGH3EK_&J J@437< ./%B4%O;6 M@#!,TD9_J(9<16\6T'7)8@*'I%W+;A+U.;H2"VY=S\=GED1:%);N&B/XA2P[ M+^AVF1_['^:Q_X'B5$V*=$OQ3,EJ23]1]@*25CM^;[EAOX4IJ4M_@=5#X]J6%! MR2.B DWB;D5#IZ5F)O@J+GQ$O& (74O\<&W+PQ'X&;E#[PTS3DDEND8L2!.> M6R.BS_2B[_3V'SJ.I>)ELXZ@4E%PYXCR7W1< '*X^\CBM#E(1FD\QKGUQE8Y1< V*[VB.#C]5$_17U[Y8E(V?02K3\!3\VJ7 MM_&SRZG.@_Z*;6AG_8J0S_\ MF!K.JLC+E?F;+FJ0!7NO+K986BFF<'%[\%==E,.&MD -%!&(BJ@>^R?+L3;! MAHA^YN_:X4_I5E8#;#'T]/.PM&>\TK67_GN+M<<4H_7Q]L5VGK7G8]321>/E M)[,R E<:@7'1#%'&V_#A)6<50C$%V(>2_(2C#ZA\855N!VWH2B=11TKV2G>6 M5SHP:( 6,FA':8+Q"G80M;I%VMXZ$. M2^A*@\6T($O!X,%H6$[>*RK;S/'021@%5;DEE?"+X#XO$G0G58&1X:N4A>/R MZN3TI,6D*"&SHBR,FH0J3X%G+0+##M]['B]##!;AF] $8T*NT"V&2,H;L^.J M4@-1]?%*;!NWP,'0B1VLY&ZP[0Y6PE9[<;/O1RIENX9OT+)NH1V6TV6(\AR? M\'1=3W>D@":SDP^6EZ#*?$%=="FFL;RF.26K)%)E;UK/Z];\+'BVL1XG-CZS_6NJ\K"N=:&I3> MD1+ZZ,6S,[]D: %]T_Y6[';K;?Z6_T(L_T0N_T?+- M&*E0S0^YXOG)ZSN+1\MXCF_<1BX(1K?9%;.LOVK\52#V]DU2IHH7^?6_%I4] MO,BN9;AV>@=U=&."I)Y9NT >J;N51"0K?X+F&\-T,&H="5OXY.Y6BA$" O3\ M,_1*NK%%1LG<5*')?!26A9F7AEGOJ/C"$%N1<=%TX;)#08PJ1T40&BVJ36VI MA1-SB:Q=ZHG%M)^.L88IV:IN)%.VQJD"EVZ]Q4M!*'J1FP"1.!&IS>G&P"J( M(T1/<;2ZMN^GJ4 5)]_9R&DLQ7EX#,>.XH1[9Y: 6ZK[2[X94G:88F2\C$I9 MACV)7UL.P_D]Z]E&ZV/B*962MM])J1:Z2@.<&Z4OKT^56B>+V6>$V47W=AM\ M4A\!4^C>5%H5W7@BKEY.BM#D[98?M5!\IA>54>MH>,(0N5N',X4(B!#D:&A! M(T-;'P2*HR,6"ROJ=XDL51?$8)Y]\QU*5%5E)QW49Q'M:B M2#L!6;HUP6%^%=FDOZ+>K@AP(IP0VB#:C'TL$&, Z'I,4OUO$2L]\ MTK02:Z1CI%(@?+=/Z ] P4#CIU9Q%M )@"9OE >[F2RV7YI_EZA":\4K?G=/ M5:5I)=9(QTBE0/A:G&M5;X&FJ!7)6^27Q(T/;K0CE\@)ZW+1;**$-""YQ#F) M+@[3Y#%*ZS.QCV+>&M[ZWW9\E_ Y7Q.&7_E / M?ZF'/]4A'T2SEX@2W>TXW#=]ZX7_+A%W?5U&-?LJ43F1.I8A8F*\X;%'RG1: M7%@77:O1*&L13Y6Z4F-?>PZ)HGO0L?AC1^3@@5RYZ]PI@4*W$E.F@9A RS&M MK6$SS VUSC$QAT_X;B6G/(@[&C^C19\#%D-G\&JN<>+R>Q>*72,IT6(6[^O& M'_9133;5T-22Q[+J34]68._)\ ,80ARGZ4O%1(EN@#X3-T"[CT;Y[#STJ_V' M>^XR3G.7^G;+-T2$?7?MBYUB>EOA(Z6AS;T+6+LCD29TLRAY^%D+80GYNG7N M5I3?=6<6$TBB\R,D-HZ7]4S#_@,8I)=_Y1O4C4VEF4**'% &SA%2$6$^0G/2 M_">P7\"3Z_AK^HLFXLV]TU ,FFZ%)?)"@\?D_*=;DGMQ*^^4XT*D6V?(0HB@ M;XJ\7$!MYYUMG)ATZ_:&"";W;E!J?9=JYIUM?)!H]62"P*L918*&M_@(/))O MJ,-,4@Q*I0\L:&NX2AJL#M-+"10QJ3ZW^L;)@3OT ;J>=VB'M O M(A[0\%N]_<>ZZ?*L_8B%.$P.=-O?X)A"6>B"X44IU@^4B(QT*C%MUCU MUCT=2Z@TCNF:N(N//WGD44R7=9N*HBPH0C%,_ WH9CSRT.=M0$GINK5=+\R8 M(Q.W)-Z0;MPIR0L^HDE \/N#CB.FXTJ'\2\9T2'3E&YV(J\.;J>0N)S'M5OO M]DPBKGVU8XO^R@ T3T<-M].WYZ&LZ?!J/Y MK-0W\:SH?AUCSI02_N0B_L0^7[<<)%N11J MS!"K4:R3N$( .6-RZC@^MYP"S!Z,YQYHG6 A:%5W, []FTB->6#)%>Q^[ MB42:4^!;,,Q,4O:@<>UY/F8HVTA$6\%!#87_##T:TC.Y)5-EZM3;#I M.PZ:H]-_]"8 )KM_^H-+"EH^5CJ6QDBKR%RQE5(L'GPR?*0)9Y7^^PS %\O$ MDEON0F QQ=UF%LSSJY/3DVX0KCITM K:54>U_@J,E\E0*WR?JG2C[V03AZ=; MP;P2&,56?[P,_R@V]?*WVUEJ5HM0M^*"Y3%23LMW/HI!HU5*0G63Z#637[RSIU" 1L^I+2Y-L M\ 5ZD'XO&NQQ5BK8(^E%+^E&+^E'-P(^?BB:T JU]19/TP;>V]RZ'K[*;VV> M T2[0@^&<".ZV D^G _F'C72:N61)9!C%.!CKO&R6.(B)M!K9(&X0$;VNCUJ MEQ"M%H]F=?9^!E88'F3K'X"[@L9V;9F&G7JC.BX@_4+V=3ZB;S9XP!8^-/ / M@_'#M#_Y.KSM/R(C?S^>/O7GP_$(%XN^W*X'L^-.3\'6A>%CAO1[:>3B]:X> M#_NQU]=X&9'?B_Z&1T5:E%=]GEZ":-3"G28G*-1\&/DS7L9I$5W1J//K_$:$=XY*/HX3 >X_WYEY M2IOYR5R#16"C4738HQ03;M[B/])"U"5:TL7(",U!BL0D6@\%^O>@G](]^FFO M=_0#6KP[GFM;B["KH0.G( J=7% 7K:G6R%[7@K)KI4:3E89A2'#C-)Z:X^BA+QE%9&PZ5CPTLJ_=2$R4FB-,]IY JCJ M)Y;/PG-Y=7+:S&UT!000D['UT;Z[)>Y-X%D.\+S=MH5\)XQ:1QUT*HP\T8U#$5#-#$UPS \< %=OY/LYZ;]K!S\3N@/'.U.8 MIF=2HI)6B%X 1G$(7F!'"X,P-K5XH<1;K0,JE9-1JQ!QY7Z6U)2RBTO@])\7 M5=6.)=7-I;)H*(H#;^@NMNDZIF5;H9SW".H$.9P2S9N[^Z4L6#".8Z3:THY? MLBS($TH='I5ZV&M_274*7H 3 Q(&/>$I/[=\M>W@>>[&P 'KZ8=++#WT?/P MLWJ+N?%*9)QP2[KQ31U)B@BH!IYN'0[> =1M,\*[[RSZ&SS0_QW^2(Q<)-8X M)CJ)PE#I.JMVJY5$Z@P=$PV>P>L6.!YVT+B)MVX$2!,C3]5C(I(T'F576HP4 MG+7GGXX >'0]+['1EA,@^??GO#< +3] 5 Z99X"O:4,#X6 Y!GP+5R,X*QRV M[JYMA^N5"%LB%2O[8E9C5VB9_;G##*X7QDHO_]7^[MX.E7CHQX'P5,KF2A\? MW?@@4'03CY2 MG8;B>:"_6@CA6^ERQP3,=B"UW(?KOGH8;R%\86#LLY+!@Y' M7^U,+!:K^(^S9MU3XV4$>&8,I4Q0E2$:#J1VGG8L&:S4!Q&1L M?318Z ?Q(CD'MK6QG! W*@VH=;(P?6[LFK "*HC+64&.LDX%!S9'API7=_(X M*+(>C80RE PI;)X)XNHB!K%0!-0TI% #^)G0Y>+/&,(TO1QK.*2PE2J5D['; M(87AE+2;IYP57K@\"L864MO0C3=5SLFE<6G]DBY"D\";Z(^Z$:*\UO),H$C: M]1OUJ*BQ6D$7RQ/N[ \9SDU!X^15 Y]:TW2A7M M#40*Z/S0%Y:,8A"285W[V5Q12.F-X5G>>#F!EHE!(&_1^2KKIF5AO15Y\Z0% M;R<)J/MQWNI9/+Z@Q=671HE00HLRE*" H,FIS=S: #3?/Z'E,+0,VTMDHKIM MZ97:IW.*FO):EQ!>4W_"-\?R$1!QAER2TFE%.ZIJ89%;?WAS;[V"!88(2FT:,Q/53(XI'E-BJM!*#BDCN6,?'#(=>.>7S9TW,$AU^_!(6U5 MJ9R,32]TI#:#.WN3/L(E;.2)9753>BV+4C,SBCZ?-/\V"@7VO-F0%;#K<;O(AN+G2:,45U/+^U/4/%Q)FH?, MAWOXRYTQ#+H\@)73+2TTM[BP+H->Y!DK 4DTC;_,=O_F[08XYGICP#_IX;?4 M:KIH4D)+'"KF$;8=RD[$8 794JMIKVP>??&HG4-L3<)I9X8-O'CS,@+T(+K" MLOKKE$,9!2=8W+)JE[)(G2> R@:NNKJQ@U^MPEO\ZBG2G'N1(7J\#-J-M#*\ M*6Y+-Q[)VUR]!-@78E!&Z]/=][]\38 MP:S7/7[(B=S*B!\5=W:TU#G'?"X@&D=TJYJCG-IOZS2H/ '\LTH3DZS2\-:Y MNYT#9R< .5:RL*!.FA #=:\00>F:GD<)>GQTO;ZS C;P[@#"R MET=T@)\)W8%-90K3]-2IR96"SV<(CJOVF4=Q"2FAKBV_3-"@#L75<*!"(0$K MO$S@^5L8:0W_*Z4Q]-./V_ZA;J+?:J4%(2136J"(HI6-Y-+4Z(\B38W^Z(RF M"**T?A.0FP0>&3<\R!5TT74UQV-T,2M]J[#Y<[4)@/@7Q@J<\M(B545[8M!U MRT$.EK"51EV[?XT$ Y"@=2G)R>GAX'4P]'M^&G0 MF_?_,9BA'W=?Z.T^H7_$] ZAO62,VQ34&C7?]8LYB#H39?;.*YD@!$=-W08_ MAZ8RM_LD)=1J"2=#BJ*!GH7B=FTX*V0;^AM\%Y; $-%FLF">-QYC(T@7)>)6 MM:BL98+XAF2&R%@[Z*>)ZUFX5;'7C=$<<<:8(W8?Z:&O]':?.;)YXD?MSZM\ MG""F@I9;9#I^ MG!89CZHPJ.5N7QLXJ)Y[NG&N*@HI)6MS)*UE!MS]<_"Z!8X'8FA$Y\!SQAP8 M?2:< .,/]7Z)/_678YL(:_>0$'3,ZGJVM&[&@X%PW@:(R-7R\3TPH&,Y*V\" MX&R-D!QLO5MWLPU\\5P3IZ=Y'\B@/QT-1P^SWF0P[#WB^#R>POX07R MW6?T']:',#'&-+EXS0DE@!]Q^='UO/X+@AB[BO%3>9N-Z\Q\U_QS[=J(P-Z= M90<^Z>>#$"JTM3K0;[?@;5:8RA? #16 M8)>J"B\LO''@>[[A+-AYR$2;T8UZ(FLJ);)VZXEO7DAH\Z90&[KQ1PDGY*G& MG"JK2C59.].0 8=A@*5AQV8[Q*+O^]!Z1EORT*"'OPM?R9L8;V$..@CQ"5\8 MI$[V!Y5L^$@X61%0B@RB-D0EH!^O+')*$#.*I%:.A((J4.G6,NYP_<+G$F/4 MTHU-(HLT&=$J>(!*(TK0UEZ%9757O]PFD%_4;CFW".B)688L3I<=I01-V%KV M;;4>F?4=WUI@B:T7, -F@+IB <'HL--\=!CE]"S]Q=[^DT=SDE9_C-C,7(-% M8(/QLEC;T-E8#%FU.25H2E)NWX@8H M21(J_*)N3*V!>WG"UXUO]]B/TZ90>[IMT1\)OL+,!?1YX:.9Z%^SZ$1'J85''93_7?7UY<7%[FG%N-&>W&KO8-F M>1UT6.2_?HH('__N/_\_4$L#!!0 ( ,V4HEAR>%+/"PP" ))6&@ 5 M=VQD;BTR,#(T,#,R.7@Q,'$N:'1M[+UI<^JZTC;\_?D5?G/NYSY[5X4L#V @ M:^_UE $SA'DPTQ>7L64PGL #TZ]_)=L0DI Y@$E\JLY> 619ZK[Z4JO5DO[Y M?RM=PQ; LA73^/>_Q W^7PP8HBDIQOC?_S+M;*GTW__WY__\\__%8IC2S[0J MF&2*K@X,!Q,M(#A PI:*,[G%.N9L)AA8%5B6HFE8QE*D,0@>(? ;^H:\26"Q M6%!51K#ADZ9QNRUQ0]S_F TJ1C\G?I&_2)R,8_0M1=W&$UBC>E_0?[:BC"S! M6F\[<0LKPV]2*1*^,DXGR,?%V\!:*"+ [LP15LK=8F0JFOUW86!!FN]*R8(]N3&O\*_CA06%-,=1=R>5R>>/5C4J3.$[] M0C^/H.BVQ473-1QK?;@EP8\/ZE_9RH/JE]2VO M0=5*SL.W!(\E?OD_;HLJ*R<&&_#@)=L&*09L/T!*^.58@F'+IJ4+#E09K(A( M0(''*&);CVTY3R4&OWS0&V7UG*P(:N]MV^(6D)^5+?T+_KK?7^4%-3R6CP24 MPRJ /SQLL&W&22+Y4M5^B>"!0[HBTNGTKQ7"XK96($J'7P]_>*C])_!Z4"?Z M]1XH'\ )5/[AKKVF>3)&TMM*EIID/'PWY!-),&Y$4_>H *?(] -D*@>12?O( M5*[^_#,!@O3G'QTX B::A@/)Z]\K!ZR<7[X4T<,Q,'>5Q;]7P>\Q9ST#5[_^ M_.,HC@;^_/-K^Z]?US\?#E69;SNQD:Q(1 V-6YYA1F"CEX/E%O6 M@/U89V$'+4$K&1)8E<'Z"E,@?CHB+XR 6!V3W8E:ER=W]?F +L7P)4_RQ-4? M'&J>2N+Q!/[/KP=-/'*+<\%HDU=L4= :\!6FE(??V;M6-YHN1R32:0Z/5<1: M?)B(-]/U)7P);'63.&UK&=A4R6NN)HQW+;0+P\[:2$QXM;>)D<,L4>^G-@P? M1RV4!AS4F")?%<.\=3#5,K5\R.@Z];E8S8 MY^8+K<9 \[!O#46#,+=<:)[[W61LOB[O]:HZ2;I$V5)8G%[:&14?#+MT8KSM M53!(W69-75<T$93-A<.+4 M9J]::8(*3 M_8V;DC9Y45LVK_Z\Y";^IV&9,V YZX8F& [$+ M'K1EZ-_S[A28RL@,L1H14 MZFK(M HUB>QI$::K#U7H>1#\@W74%39 5(6<&>U*U<0 6, M92'!H&<"86R:=W6%X9H-ME =*&:'IM?3:?.Q,.#ST ?U6-Y21BYJ'GIG1U@A MU+GV"_@B$]9@J&F"Q)8[O#"D&'FLZ:^9ZJ[YZ"U^2S\!B+>Q5 O8L'.BX\OL M,R:5&U?E<8?.9SF@=3>:GFQW<\QK)O7P]5D7JLMPCD\H7]=KW5V*<#Q<4FI[ MI*SKZSK5F0K,27K]7E7G8#T+:&0+GY:"U[ZMWZR!FN%9Z(/N]QV&5MR)F>7J MFW%C(E.;H<"]/B2!F:!([&H&:P>0 NO.!#(D:I1],@@<0QKQ?J8\X5:QF4HO M9K,NQXO5BGL.:7P<&A5%&"D:G/+53$/\"ID8M;L&GNL/&;6^%&US,&'EXN U MF7@BV#8%^M;WC3DE,+Y>%MW&@IWE=4YME\1N*9V4R[2U_#I9_'H8%?!<83@Y M ?:??U"DYM;V@C!0.)@7N;E%(8M_KVQ%GVDH(N-]-_%B7F@XC6U#)S M\J]'=7H?;=.UO$]>".PV4(#7Z\=8?,L0_LR8&XS;N65IO2+,61RG-38Q5.U^ MHMV&8 I>#KQ@Q?:3(J'/<#RU,*_CX&"(,5LJ/XQ5/'YX6YT-QJC)_D<)OFPU MTQ11"5P*3%)TI'W3V!]E#O7SZ@_JZ'/.Q7;8/_B2/]O6[=KRZU#'9U[,8R<& M+^3F_$$JB.%4C$SO^AC\LOV\?>[7 U6^1[,Y,')*L%;+B\#<:S4+O3#%8<86 M\,2!V/-=,!=D-8"]"V.F9&,%0[>+RE]]UN MI41E5<6DQU,ND9I,^TQ8 ?%4/ $8GI7/LT!X\SL/"?;JS_;79R4;=@2^>;Y0 M,D13!SO>KIBB/_':QU?6M"&4-;'%5TEO=?H]W!581UBEM):J\-1Z'%5U4\Z^94JAFJTG!Q\/U(R%2/(&+7KX?UO.^E)VZ*/\+#]Y>L8:2<4-%EW MUEE3GYF&%[[;!P!D:@&Q,2M8:**[10&8$7VS8:I)M;Z9.=5TQUK5]-"RRXM= MOY#5S6032�$ZSXF6"5U/K$A-S-U MGA\)PQHS[[?G%\\"[Q/"92!B;TK_)1(O7C5GWF@#R$,WC32U_MY?)"T$B.UUVG*>K%:GZ:Y2^?[ M<(ST7PP)BJ>(+QSH*^:RD (-%^!M+<>GB4(QHZ4NW=T_\4 //3F*.+=^7Q[G M)VR-2E4FRX*JL+'94K ;_%"[>/L^RSC_I=K>A6K)KS'G#4[B-87&XVPYF[P3 MUDJFMEE<^J!^4G,F'T9JSZ;@E^U9K&2$;E/@#+7-)].5;E].">U+I^USV/.7 MJ?O!Z@OA:]Q;??D8G:.L6M/P,C8#E??D35:ZZ^<;*CEZW7[$M7^9-N M'FT%QE?TCKA?6H%YQ/$?7X%Y\XJ0SK@U9T[;;OLCL^RI88PQ_@=TPQK 2V]508F.P MI6NWW,?-4_%E)DGBV2038YLM5[&'H1U)WB; 8&GY&0E^?F'Y1=$'+W^#[+_5 M*F1X;0!8XW7P'$_R,158K0U77_3OIN-&)3\JA)9;+PGL]T+^6:CVLLV%J6EM M%;0'O88[@@+@'"^1[CCLG1@.TO%9HMM5LX4B/1T*#I&F0L?>4$BW3X448.> ME"*&_GY8WF/A9=-D^;J][K'K^6RTF'=E(YN/0!LQ[8?163 7P#(\61V'9ZDQ MR-IJM9T9E@P1OQBF0UO5O!; V3;\B_+,N+KGVH7>\0> M+U2;RWA<2ZAEX%:L?E[EE&3H_)#+-H!H!'@7TO/*"DCH!W!<[N>4\ES.Q%(. MIXSN+*;C5 KYR;?A_N>D&+'^S[.%/;Z7M"7+YE<_4G$,\MUXZX^1NA=X]TG3HHE;N+YE0MT&":JE85LWL7.B<[ M=##]J6SZE9E#JES=."O.&*CUN9JFRYN>P_1#![V39 !]2ZR\-X=A( /5H7EI M@J\K1-Q=$4EU&9M>OP!MMF MABEA)*1+YI'O6A=.F?RT%D\V&EQVW6YTJDYEGC0O:Y!X\_KNM]3V M<5:5FBS1CB=U+:7V:M7VH'#7S-JET/+!B5:'(OR\(3[-]7FE42G1'7:=[+IW MUG(SB=^%CE!.%F?^EIAY<]PLA[<-<>:F5;P^,%(@U6HLBNG0T&<"]G-39J5E9,-XDK'7[!=ZNB46]=_ IN&+:WG6\^=?;]S*&R@;VY6:>0 M'6@;M2BK\W6Y1H.2;-!LZ$CT$L%^@AEB*%%]YKV<8GUJD>+FRBKM&.YH MPXNA8^^P;HN+&/IT6-YCX6**E%H*NUBI0I;N9W)K8=XQ0K>>%E;01DQ[AKV< MK)#+4+1*E]@VE;*E?L*:S9.AFXJ'Q]JKV4Q5RUR&S3;T^%*J M=,KL.G2>;C@!&S'LZ?=RUN?+>;Q9XN8J61-!<[5*QFO:9>'UY^WE_&$HWJ/7 M6DN;)OOIQDS5F\TY+=1PJJ==UKSK&^_E#"4N0[!G[74:CD]-WJ%%NJBV-<"5 M1MV"HN5"Y^=>]E:VB*_#9A=[Q)ZT""5.-RE6)7/S\K"MFL.4&[K8Q&4;0#0" MA'(OIZ+J^@NO@WTS[VM+6+]\-C"'M_WA56:KFVR#DXV M$W**:Y<7;B$"?<3TGYZ#GF,OYRIGEWGAKC1EVV)_)6X2I$/-0QE%"=4FN8B; M3X#>_0WT1K*U3@\S!E=(IUJI_B9ACM70S3)#!].?RJ9?F3EDZ7;* >V"JRK= M0B+/"O6I=A>ZP-U%[.4,)5;>F\,@.VF:K^KM AO3A^RXDUZV.FXHJ2@4>SDO M3N=/5U1S-9DJ\GREB(.V(G/9Q(PWV=!Y_"'9RQE*?7^QTVR6S*E:*D_7ZKQ( M582QPX[[L]!10.31G@HQ>X[J?%XWK%H:5SA@"^M5L5YM5.@+A\9/]2+?M2XL M;]K%NTZYJZD%<:#U&UJ6=T H)]+GW\L92FT?9U5I0L1;TTRG);)E_4XJX%QF M4=1"YSMY1LZ?N]QO-SSKP3*WCV]C_;Q?OZ6]0_KGG$A59HC10-VQW)%U8:% M\PK0[I_8!B'2MIG/,5F==9E"77 7!;H6^P80>*L OC,2MF4K0+#!Q-2DDCZS MS 78#T)E1P,M56_+0V[.5"HBJ"IR/GQ7U[Q+_]O"+W3[)V@][UJ&XK@>^T&W M"/VU57K7G<]*BM+KL'.IK:_5L='@S= -^Q]2^O.]O@R=0Y?.5SIUC %_U6G6 MK$RZ3[.@L:RE-X*2;'T'MC_7@.^=\1$.Y;]YQ*<3 ,PFLEMAZ4ELI?+Y 675 M+YOQPS#BAP,*;QGR%:;1&=&&F&2S1K9H5.ZJ6;KQ/=C_]$-^N-3^PICOY(MN MDHV7.*X Q-R:4(A9^<*I_VQC_IL(.*ZRJ;?F;445AGV3[F]2;2H56C2\V/M['+RY M^T>+$YW]S*\OQ5!!4(R*:=LUX&0%>Y+7S&412&/0@&[5SIVHY'MEJ=)2-$ZO MSMM+6AW$T\-OA*2W""'"T_-X:@$'2A!(K !)VAAOAR.::;7<98NUN'(,MX7J MQN&<]:7#YG!?OR\ZWI3A\"%TV*,NZ&N@Q]'U!I/N)6.3:GAO@ M2&F'NWA/F\_V\6>-JY]"0W]CY?@<9\[80EP:RDJL3-/Y" T7,XY^<:+QI&#/ MK1*UT5B%28QT$J]L-"ITPVZ($XU/N>;WWE1AB]K8=H_.CO "?=]SHLD,O2,3+U-O<5B2[YA>XKO1N_H.C2.\DQF;Q3B;=F/3R; M[RVIQ13/6M;1:>L#DJ/WD/2*XY_^6LE1P2S0DQR]0V"C7*K4!MHTK<:LUJ@1 M3_%J(1Y&S%%OGS+1>_#\\D#UGKV^%GZZZR4:Z5DYLU'==49($[7L2!^%CFY/ M&7[Z^#SXJXGD/4I]$+VBEDI;;J57734V(&+Y7IEG6LU0SG5/%;VZ *6:W2J] ML-M4FQ.:57:QS,V'>NWH(<<+EMW;8^RYS$A)%^H=C7,+:LL)RYBX H?QWVU3M./*2Z8$VKQ&>AT M&(I5ZT:MF6\6QOW\].CCTOM%!_W:MXGNT;SK"T27Y(F=Y-([P:6D*LTLQS$7 M!X.5,DQ8,X4B0S=W@()+QO"WAHG37RNX^)[@Z!W^,A5A,$CWFX"KRR+E.O)R M633#B+CXVP5'[X'SRU=;]JSUM5'567*]E"(+)5QO](:U4;?N\.MH5/W0HLE7 MT\A[E/I@6+7H;*:5=ZLD'AMJ](0#M5H_$[K@ZMF&U1 I]>&ZZ$N&NLRZW2DA M2C,VMC$!99E<4]0N0J?A,]13[E]_R4X3EDPJG7@>5V-6O\N75IN!7(_%WPN"_0;X>^ J?>DX M.^V/9%'!1P.5CB_Q=KJ33E6$B^"\-_E=T3A[+J2],,[.V&37S2>;!:Y@Q(9J M7>"&A>I%$%T(,/>MQ]DO0]]+XVQC:F?2R3[AJ'H')%I,995>;;[/:G(TSKXS M&_=+QE$Q3JK=JI7/JHJ:A0]I0VLS"!VG_>C1[C/ZKEL2L.I6PS(E5T2XSPBB MJIGC[=(!,2@GE($\8$E[*K25_,1,**&+5GQ*^R]+X"=AX07/1EF0_((;VCRG ME\OMFC-9R4LC=-YTY']\&@,YL ":.0-2!X@3PX1VL&XIX\D.".L",QK<);H; MO)P;NJ#7'ZGF^'L1PBLB^$EH>,G;I$IVO200]1B7U:3VO"1:B\4W0\+%^X0' MMGE\B5,HN!F=7&LEBJO?K0>="CU)<'>14_@!A1]_7\\1O$*"%1(]>T&7\4(F MQXNFVFPES.^E_K-XA>$$PPMN(<_$Y4TAG;;Q]8Q>]3-W3H6@0Q=QN"RW,)P@ M>,TO3+G33&Q&:UE.J=JL/$RO&;O\O28(Y_$+PPF'EQS#P6Q-P_E!?LC-QVZJ M-"NKQ5[W>XT.IW<,CW.,X\',P_ZX69^OK5$2S[:;=7I.M)1D*W2IN.=-\",> M),[??[JG2TM9P++H+$?;L5RD\I9BJP^,".(-6,!V6K U[:4P>[0\<*@.>WO$ M7V:-3O93C/$^!!^:Z-X)@+!<4'F>["N31'="L>5>/MN".)+6"\&\N4KP+OV18DNXY M>;4U$J9N:*,6$?[?,3[N0_J\1YW5X>L$_VB0\?YTZ8O/5Z$J\82R6K@4%UOW MQCJO2(/\('1<_I:3LIX1V."1@R=BY;;%#,M]?:KC9:>:<7*UX3)1"ETDY *@'%W' M?1:$[[%R*Q:O*9W)0%+K65XUT[U:L1L/723G J#\$ZX/?^GX_19P%,L3$[HD M!:VJW2.NZ0H:TKR$I@MU*P=D8%E 8BP+)0FB9P(T;IIW=87AF@VV4!TH9H>F MU]-IZ(AU[P3U UT.$/'6/G_?,?RC:(&B0N?29]&-R?!11BVZ=['!4?.?4#J'@(=8.D5A^H>RR2 RT.A?-[? M.23-_<7R9\1Y&>E2;\>:=V<7^O&C8/,J"/[>;1\JMOB&,D^F.(68=1<<:]'^OLD4;Y-D%RS%Y6J MF#8#)\:PLSDP@ZXGZDE=[D&_TF(,J6$N@?4(H- _%F$A_YUHR32SS@!#G.B" M]7 1N@46P'!!WC)USZ<61*>G.)-M(X)PSN[9UU_SQ!RV53TI^\GH7-G4^;%J M5'+J>ET<=8"Q^^%(?'0$_AF!;B5> E-1+30R@)I-TX7E*'0SW1=Y MY*#L0\09%\$1W]9B=YQ6 .;8$F83110T_VP&9V;QM4$8K/2^;<_9:9-+MC9B MT1FKZZ+,IX"9'5CAXYFY&&?D5^O" MTC2!SK6IP<*E5TI]6 Z=;_DDA'&HEWO.U.-N7FSNYD?5RO5[A7Y.E6(XH/BE M?2>8$Q#>XY9#IM8OSI)\NO_DHUHM3B[&R42JJN47H$K5"J]4' M%/P%QNJO1)*?5NN8GF4HK9(6N7:_68GIZS))LJ%;\0NI6LF'"UY?J%:RVAQN MQHN,S&;K=1$QL3;]OZ1 4Q>5B7=*$R:H321P_Y MWO&3'H-PJNMQ3GR0 2^,JXNZ8D_QNEX2S+C>N*OAH1N!+P",QUEF# GJO'/4 M@G:SFJ(KAE N_8V/I-:AWYO6-P%RD3I_MXZ7H,WP'.26S@^%85WHE M==TRG4U%:8JM8C1H7(X'\\53Q[,>Q41F[N9*/WW7P"%*JAMB:-K)?.@B0Q< MQJ-[,.=$W#)U:0RLN;FN7R2AG<.#.:=>G_=@1BFY)^>L M=9<#[K3OJK28ZI4B#^:<^MRX<8TUBE.5S>9G:5ZR\)%^_"S@,W7^S8=Z,;!A MDJ*YZ#CI-A!=2W$48+,K47,E(/E+DOK,=;S:ZC(K6 8<(^P&L-H3P0*9]>$* M'IB)%[9$U4#<"8^.@%(W3$PO6F11G;=SO>FH,^G?Y4)G*%MC.**T[BWN!7$= M;?$UE!L=PH)10U_%UP-Y7,';B[:1)!6A,@O? /WM,7KV])V7>/2CJU6;U;IB MN6-NH/;BTW1KN&G9S5;H)A!A6JT*%V]]'A.,)"FH.D%K"(I4,K+"3'$$;3LY M:.FT6]$S1=QEV:F2+W7BN? >G?E&?+S8Y>^+E9?&N*_ RJ9(-E/#&,_CL=C" M[LE\YXZG+GWE^SQ8.?M8RO.&JK?2W>KE@>TT93-!0=D/ 8V5*:2+8>L]U^< M%9;@"5_SBX6FMB?EJH,+UF)DQQ,U.(:&+,T$:CX1PT\QRY\H=GZ^'*LR7G=C MH]@0")L:=_01(:P#LVLHOMPX^ <:<0U)L"3>1M,>F\?S^H!IU[MK]M/Z,7O?)2KIWCJ8:IE2MFQ\'7K4I&['/S MA59CGKQ1L*\+^MGO9JJDDI X+MM2\U*)V4:_,9X\U40 ,OCG)S0?^"2\PI<=,5]I49S>2R<*JYXRGIE/ MW^FMCP3/?.:MR-OBF[UUO6.K+J5-UG?&4XS[[T1/?.*- S[I3LOB M:**ON+;0+ZW*\Y:EK\:'WS;XQ)M\HN%G5D%HE.O:0)TW&EU32C7K"_V9U_F/ MO/S.7\KJ%D+0="T1V/['"1 DC^$@SO[\ _^#V\6O@A=U[< OZ\>U6N-%2/FF+-; M(GX3GSF_(>)C$^#5$4_=I!/PJ[T7PZ=GVV=ER'XQ6= 5;7W[WPYTP&VL!I98 MR]0%X[_7_C?P7QMRIOS?WUYI6]D 6!%ZC??B6_@GAOY/^_^B^@5L8@'YWZO_ M=.I9^-&>"<:#-WI_WQJFI0N:7^O2;V[PU=6?#CH?%3-E#.UV01[_/[]0+5"L M OS_[(!X10T(UNW(=":_'TOZD "_6@2_#_;3*PA_7"BV,E(TB*?;B2+!<1 6 M_]__I$B<^KWKV S)#2&7%]*C5#)-DWPJ+M)\7$PG^71'QT MY8MB3P!;\'A N,%GJ]\CTX)0]+Z@;I"*O%4<[#^X][^OD\*#-\//>^\E#KSW MBX7F(^%K>H)<@9B@*6/C%FUL M:CQHX.M!3B_@&&1Z8FP;)O/>Q]JLUFN5>J4V#;&U'(8V\\6F5J!Q;+U:K74;I?J-:]& M)+-S2.MA8WN"/8&8<4SC&LO=9&_^]S\$C?_&2#P13Y^XF8<12+T=@9]O)OU) M:>;KK:HO04]V M8=4$R^)=.:F!.=.P56'8=,A:3LUVF.8K[2;P6-/7]H,F?Z7VOUC7 4730$[& M*1'P9(*F^'A(->T+J 1$53TX29#6ZW?SR&33#0HS%/],?*H,N^9R&XCKG] MPG>!_['.Z7P9^X#(ZU;5CP0L(7J"-MOU\ RT%[9 ,,0_8/JJ!O:.C& M[.DA>-=6)WMCV%[=)JQ/ULSE5AO;S[&E)5L)M<'8!!A7PMIK'8X<__54ET[&Z7O5'1@_ MOLQ>C@'40WX=<=BO:W),J\.V*@.LQ3;JK0[6X%IMCJEUL$X=@TY?!WIV_N!/ M4%B]A1&)OZ2__2_J>:Q39+$]SW#G%3+9#@9_)M)4?.=OW0/^ES<6A70,/K_W MFC:'%3%@2$#"#CAA>V9X*Z%5+5CI1!+6:SAK!<;1[+#A-8OU M8Z![WIJPF>42JVIQHBH#*C762A4YSBXVD@\T)*EGA"',D4+>+Q5$I^[!^7DV)C M4%VLUEQ=Z+.=^BS=KBG+R#\.B;OVG5W1R.O[FI" )1B^P!^Y?1+EV)O)(E90 M>YWL=)!2.Q;=^;#;%_\1;E^GQ=3:)>328&E9HU;G&M6_OI5KV MYKSJ_HM=":*#H0ZBA=K[+F."C;5G0$2I/A*F&%C)L;'LQ)LI_QWZR/XHB>.R M**5Y0:+2?'Q$C?C4"(=SF!&1 NDD15,I\'CF4L\*6HHGB2+76XR5&0?GU\LA MPY.>>_.@9*$P:[JI1 =7R8&SS&Q$I2LOQ[ D^;@DE:MUW9BLR"S0AD.Q4>PQ M;67,QY_6V_-1\!A##;;Y!-/2]:9=?&NTG-BN%*9-YA82:'2 M P:6W+[]F\ZPXNE+G(,\V[&1Z3BFOGW\)GW.WOEM\5_\I*.7&.__MG!ZSY3V MY1Z>QIMX>4+KI9[-+'.!AMXC!%#]<;QDB,'>9@5M5H*OS)JNX5CKK"F!W>RV M.ZWBA5:W(G+KSEAW77B%90C0+Z621&/ M$>D$01#DLU[A);+ 7Y[187#:[5V46LL&,K& M^_SWI1G:][.KOTJM-L;J,\U<0PT^A#]6,V_^OEAT/N-^T.]P/RX'F$?HWW=4 MYJ5!^ 2#'B-)%K#MX)^*8@!B+R2R!IOU$%\O))7FK/J4KR\G)>JUI6@RCA,8 M*]@.5H;C YR78HQW0<*[%Z6O3Q;O>RH%#Y.W6K URF&N!\NY M@W!):+14OK"@]PS2[ M(S;SFFUDH;7#_AB*\+(K>$'#SI=//!YT\6?1<,.$X-:&RNS!')94XMQZ4%,3 M;#TV (!R1N7FG.'CKTX\TF0*?W[AX1*'Q+\"0:&H=L."%JG,! UC5T#TSKO! MZK*,#L",9A;GUQ1$,89@_'@*$2UCWR_'H!80R=\VU@$:F$U, V!^T&&[DF2@ M8Y^@ZC#& H(GSEOL19/_Z_@^ W(34'/N.S,\^]%$R>WTB\;Q0#!2%NB=1CX[X_RPRS/ ,"%I"PF6O9+EK8=$P, MEO#B%@3YU^AO-$*@=!!&=&XO2;C!4J=(T"_9R49HS3;H73ZE**5AD1/O&CY MR17)!^X 1=V0R>>&4"R!=G)CN[_"M9+WP:5*V&.*CGI\H3U^W8O_'+R_=B]Z MT-/#F;,!2>S*K%[ MO] ,*A+585%MLZH\6(&5.!&,,?S"P)83!7YS[YPXN_+'JR.51;DZV.'*6&1DLJ;)Y:>EG6:77V$RPL(6@N0#[ M'_P&)U#^+^8=1/2I9/0SH?JLR@CHP&>#G2;$1!'/M&?--I==\.2TD=A,M"[2 M!'0,>Y5<[?N+^7$L&IG_D<+06WM@ X:YSU9%CO=JHV]:QB2%E[OJB*"[-6TB M!KF*'3CKJ0FV),Q]N\"J@J4"!ZM4LF?,2 U:5-#,D: %37HN-'3*8V-"D!B] M:^:S<]^2(:%%>8"-UI@X 5"GZ!IR.. +_,"S7.M75#I%ON+"&(D$\'V\NFX9OD8GFV&A M1/M6,,E%=Q)Y16<6$('G51 DYFVJM;&_8*70B##;A4.E/3%1XO%VGX8S$9Q' M?<&6PL/V>KL!O(>#WOQ]C0F&A/U%[G5Y!.T1%AI-88?00UYY^"1J2E"9=X6- MUQ*OI6BU,HUCDK"VM\?=G"+LGW4M"S;$WY&%^-81'-?>BS/EIZ-JKFLE9!P4 MC5@N;3C)?F9\]6> SM9[:,O8\YNU'H/1!W(ZG=X!>?]1Z,8X( :_$<$M5*$W MD8%/8%C-Q Z5?_U5Z21Y>IOYAI:-(7!#7.N*XT!S !K$MV4::#C5UAB 0^L: M\R[Q$41O-20G. *&]K(\-OG[.O;C9RU7"U:LXW@BV#?@:GXN4#O6P?Y"/R9_ M8R1%W@0E'(ATV&YAAO8/'-OV_5;OK!G8?Y_25O<$B^0:F.Z>K19SN1'>C8,$ M1[+->4;..(H4:T:V^D-M%1J&@&GP>8 )H@AM%=W")'G M="8=?!;#((D=O ' M6X=&#M]B;<<*B'(==G]]C<9I6!TUOLU0+/MVU;$ W10>%GVKDMJ1@>#T':&,7(;1!_W].X M.>,:Q.=Q&L9=/*E/;^))$#<)XODEYU]O#2"1-SAY]H26=V]3>4]+D M^',;YK'[%Q(S/7V*?#BP7#OD,4>CSS>!=?NYJ<7C.?_^(7[H1"4@&+*@V>!( M0Y'7KNV5V'M#D4*K:[:2P;-XUAG6G*33[&CY\2'S? <4OR)Y-QS&>F3,1E9X M'+6QA^?L9[;!;:L*7J.R?IOV;+$\V>!#-]\JX/56,1$?XUPJ#9J1+9YCYGMN MRSSSS/ZR5!IA.<+R=U'ICSHR^_FE"_F%)8)K3#F\LJ'(AQ8@O65'.-$R3&_5 MT+6!5PJ^WS]A^\ !C*;EO4M;HYW@EC ;0SL^%>FYE'_J+^'O@ZL%[PWQ1.M?7[G^94^ INWKR5 M*/_LN?OUYK>L:3Z[(/3W#88-8#>WXCCOO!!U^*DK2DC6VIY5%C8[-ZM\L6FE M"MWA%[NBQUT7?A+Z_$EV<=\H/P5Q=YT>XRVG5H4U1O@G[U\C>%H 6Z+_!%#, M>VD#D*70Q80>W-YS@^D#!!NN+IF.!$1%%[0KS(8C..P;_A#,;[M3%PMJL?^] M*M7R!W*3O-1:+X.P[36P[CH>&T-:WD-V*JOC8RW?;JCSAMNY2TSNNF5A#,V5 MNDX1R6L\&=\"=2N&/WY.KBXJF21 .<+KG MSNXW2-Y IK%=E.)F2)AYWT9_G?C )7S;%/#]>_B"[TYR%=]>FOJCI/237\@G M*?9,$]9(.^"W!GEY>S?E = 3Y/TEDF^FCA=D@JIZDEW_KFX\=\.DMQ"^E:E_ M[>8Q3CM\UG\EMZG*^&&)O?_XP__S8*.0(*K0@7,-"64.F-;M%BM[0@C42'JP M&X.8OP])D&$K;P5M*:SM0"3)] WU?P, M0R+O3YWP_*H1?XTV]_W]]!NUF_ZJ@//;+>@;=/9A=-U#\#NV(W^U/%('Q/&9 MH;T!)Q@?W^I\(K"?[.BMT\#Y=">)O<*W9UH*^NBA@Z%'YFZ*V8 SC-+')IGH MT6 6=8/E2S6FEBTQ%:Q40[,8!EU-]F36&8'[).#V//Z'_:,N")P1;5X2LC[< MOU#CA'C%ER@$Y\C#'1HQ@!R7*W!.V=^^MO$O^+,P174AP@_1WQ9FC0 M?2F\^02O^WK9W\6'7^K4ZD?![L>1:H>M)JM,C2FP512VS97:6:[=ACXDGZ"H M-)[X!.&2-UA5,.#L$?'L[BC#'2O")3] DE20_0=G4#=9$N9>*XT7'/?:%7VC;SXB\-=-V47H/,S)=9WOX M6$NQU8B10V,95/)2P1XQ\B7C[L^21)I#Y# MQ?$;;%NQ1\/W54<\&QJ\4Y?B^4;AW4N#UO>DTJ=K8*5ZI\BV]A:O>().DFGJ MTVMCI1O,JSI:& LEOJGT!4$VHLY+@M;WI,Z7XP)4A2TPE4:KGF797*E6:/-Q M,DT0Z<\MF%7 6-!\U],[[37R/<.#\HLAT&B._ZUP]Q/9E6!0@#,OB(YIV9^A M5.;&"Y5B0541G88&UA&=1KB+Z/0T(5/^,X%1\@;CC+TK0MN"YF\V9^TG6T6\ M&AI\1[P:X2[BU=/P:H*OH^/V2H9L?H)6$S>85PV&ZD%G[2FF$1%J:( =$6J$ MNXA03[2.E6#[Q5*FU&GS<3Q.?"8,2]]@[&H"A7;@D+L(U&T(PWGG%[L.^A/=86'B8VNB8VD-(??,QM>DT M(27C.,FGR03.Q^,)P*=H'/ $20@$GB1(*2E=_3G1$:9/3KE^Z="S+,.A?'&F M-<#:':;C;8['6FR!::'D2BQ?;_7@G[%*O5Y&GQ^DF(^^DBCW#]#W7+K'';JW MU\Y$L=%N30OV6UMC+>]*/L2TJ!*7AJW5T-<3V&HC1VKO/ MH6$I"W2SQ-[:? 7^,_;FXK"E:%Z.[GI F"32Z<0UJE#0O0M';K#.!-A@_VVP M32*P#,QT+6P47-)WC9F[LP&\A?_[^T;@]][$'S[D_2+>GRY@8TMT@P7\%]4% M!Q(#532:HGM'%D$& 5C-X,>@9G37R?YK/_#6:VPY4<0))EBP4Z[W+G37B:78 MJE^'BWJ'M($$=8,QL(%[G3>#VS@\J[__5L:@:AW30JXI)@NP3L40-5?R[^+P M].Y! +WU>44>$+8NK+=58>@030@1%[5^AR-!T9]<*0^;+BHS6,>37VS;U9]\ M.P*: A9/OA9A'R?"@>]-5Y,>?RFY3\H!B%S]0"-\C3[^=FP*VN/O%,2/3UZE M*2K0UH^_A8)Z_-4.28]_0$A[\IV)N%AYVH@MQ8(G#9E90%*>]L2>'!*0 YD# M/"F[5+0G+URBQ[??>?)CSM8\^(S/W,&H&)0>6A-AN"XEC<:R:[_EV]1_J^'[0D9H=:_ )K=SN[]CMZ;/K+TARTR$3D$=RO! M'Q4#:D6XYPET,8X#QE[BTR<#/&!)#S10[;"E+I038I2 !9=;\8+@A@\( MIJ>GQG@$(?OU>!0R\UYU@_4 '&LL=#:!CH &481J>*&3LF7J7AES:>Q!;>1* MT#@"#M_V;)^I?<%X:0_>FR0 &5H#CYLS@=^A/@6,YH^*Z'5[Q;SZH"MLFP9R MQ*Y1>5%P/9/QR@=F[2$4"4V?"?[8J!JHU;*?/(S&V06PD'7)LB*ZFG/M-=^K MS4#7=]W3L&<)V^>"<1W:.";(,AI^O :*C@O-S/(/VSD31M%8][H.WS9R^OU$ MPQ<4+LH"?-))]# 2'D"8@YP&:08Z3CN$[$/_!BOIR)]"5U\=D*/_A@_7OAU@ MKR$.':][2'T:Y$AT$YMCWK[WQ/K/S3IVYQ:3]U]M#\+V&A&#,VYHX[>RL@+2 M_O1G.X7S/>R'05*_F!^7_+7_PZ=:_#@3VKLB"5H,NR K:F7H2FOO? M_Z3I)+K^ZF&D[U'\[BO"!\0N?O#Z+,W#JQ]60% 2)#!W(8X@AKS+]@"TZH!U M$7XP 8VIZ%?8! /.?'87@3T-!D9 ^LE 0NA!X(%NO C'9ME%M.3-$0"<0XPG M < G/6A<15 ,(W7&&S!0H'EO4L!H1L9#(T6@(.5C>;:$I:*_]\M>:-9(SKP M7$#?6\A+<]'@#]TY=*<9M@;09T2W\$4HC5"ZAU+HF"N^@V^@V89Z/UK"/L)9 M!W1+H5ME['EF_E6BP+^$-$$=!B *;J#;Z79(]'S[QU",D!@AT4.B?_>H-ZAZ M3NG&QFP7FI,@NH#\5"H:_G M8#-A'02=_1#\WJVLF 1&CK\: #PW$F"2"_8Q#&'KA061MWD?W!,A?\*__=@^ MFL#[86M4NU_CV +^Y#\"<03B@[3J1PWAK&:&, ;'<#\6C:*RBNL UY8?V/2&^>U/LN9%:"+41:@[B#ISA-AJRV00,@'56<#_ M"CS+D J*3:+EA8C2(G =!M>C"(T#QMXZB1_(GKN*ORRX7:4&(EJD#\;D8)DJ M6)-:>\MX(8(9'J$L-"@3'#\XXD]O/3KSQU*T8@'G)D"<&$@0_L@H2+IB*!ZN M4'30$33HE=V\,-D]G$SE\OHZTS^\B=:F81M5FQO>46XCZ-KL$/>"G2P MLF/N5I;?OL9S<&'G\8I\-5 +I7"\L/P%%::, M7-]H80-!9H/E!'I.N_R2%W./KH,%.FC%6 .6 MPTK7V.Y,I"#O8/]HI"#]X'K[VQ&O$MG/='C0*R0_QC"0OI_VJ.Q-O_UIS'TD MT4M9PG) !/H(]I1,7WO!12^ARM'D4$>\D-GOE"=O53ERR/4;RD)-E+&ME&11X=8,2N M_'@T[+:N*Q[=70?Y MZXX(YL,'=1Y/D!5=D/N.KZ"3G;C]@Y&^3[//XU!8G. M2_!Q1YHBHB%3=Y$[$&1%#$P7\]/-X(@I:.XNU^3YX4L7I#>.&?>Y9TO%!MLU M2A0A@K00C)_P^^K>)K^,84D!*MH_VRM( MQ'N4 RA!)TTS9_?=AA(W->CA^7E2/B+\OSV,7#]*$+I7RX.4'L$?_;TT+U&P M 4H_6YM!/I?GZ#@HB&J@((&VS75& M[MK,%PD"PP+A^A7Y^Y:GK=&:)_!:BY*C P\4"0YNOM])Z()YMRB2R MI#-9QM?<\QRY/0_='C)R>R*WYPLVZPA"G$PD4B->ID"2C]-BFD^)(OP(YS($ M2*?C1"H1;-;QG]A>87Z:[3LO[]C9#\K .6[,"\OXUT%@I1OLN6O2@ZTZ?G^V M%PQ_77^"UM-/;/;%O4*I3)[[LO,\'"D&<) M_@Y12_=OY'Z %UY*RPDA(8]X2DS*?%R"=)5. ()/$)(LX6E)I!Z15$?D*;K& ML!6E7.#(KKIHF]E%-H^/><([A?9!26-:[F?M=E/BVD1]2N>DT3*E+V'))W5* MF7%ZVFD:2Q6X0KDU',Y3^1'#DT_KC-6+@T5*')5P,E67BI,.GI4Y5/))G>8( M##56:@Q98=',M:IYUI;I)D_Q^..2J^IJ'IMS6HK3N\Q\EE_E#=@4/OZTI,45 M "F0R9$JR&(KG9:*=+._Y!-/2RXG@_B8:HBL2A*:9<>7Y5QU@TH^Z9%Z%Z.3 MF^Q&QLO%1*V3T,N;F#J&)9_TJ$034[S9=K,:( MMC;CW ;>,4>C87R:7_+)IR7I)=&N.)/$7"U0G4Q;S-5ZFPS#IYZ6C*VGTV9% M32JJ#L;*3.YKHU9]S*>?EIS&V[I#5R8BMRX+Q%)C$B ^;/($_K0H->*+TQEC MTAR8E]8ZI1G#H@B+$@>*4EF=&_3771R,UG8LOE!*:1P6)9\6[6O%NE)/5W*X MGE5[V5BRV$Q A1('=!\?-%.\(#%)/-O,,WF6!-QH M%\0/F98KY$VRNJRV8; M>&4QZ)GZ79+AB0/:%YA.TN!3I1BWMN5N89A<)M4LK/6 JE8"DUA+9;O(%2J M8-C&0$W$85L/Z*K=G=-#>^KDU)ZBYJNS>,<1I[#6 \H"<;I4%1+6&"],2XQ; MKC;[5=PK^@1_O,OA.,5110ZTE&:^7>GWNS*#BCX!('"[E5Y+8=:<8/1C#7M6 M,*0J5,$!#-24M"5;EM9D7:M7G&2Z$Z:\7O+D 0QH=+>"WXFJRM;)19]1$V:& M-)L\>0 #A#[/99:%B8;KTU9SF78*K69WC(H^Z1; );'5Z>1-O%Y("A5=[*OI MZ1(5?=*MD3HNNW)'G[*%M< FDPV[(2FPZ %D.;5IL5N;9=9LUDTE0U2XE4H)94O.<'@.X(X_%-5F$#3B K)F;&]NI5/9.)=FVE26&U*8N0*H\ M@*QL3%&9IBW+;&\F.DRVF2XG;%CT ++F>.,N(W?P')O5\FZO5>S-C2(L>@ # M?+Q=L#K$$*CU5*>U2:WD234-&?@ !N*$MAC+[HQ0=:-84+1V25WI#$\=X@%N M/"\JE?Q*+3MRI9R0FF[;@D4/:$NB#2G>H>H5G.ZVN4I/5@<#J"WJ@ I8R&^= M.)W;X%G':;3I0FY:JL"B!^2JEWOSZJ#85]GY(+V8C-=W M6!KG>SCH]QE:]XH^L=A,OR0FZ\,LCF>[4G]2&^6,(NX5W5KL.];5?:<5S5F# M^2J:NHG^E._A#!F_7V8.IL?XDVFM8VW?&M1&! OGSQUC]""8D21N$HF7CC+: MFVSNU8]RH&7-7&[C-]O/WFSLUH\GH#W$K\[C]Y($=D6%D6UJK@../'__DC-R M'@1C7CP]:BOV9W,*;M*1'D*A!R)21"@4@=\0R4@38=#$32HRB7 H(N*F<"@B MXJ:P:"+BIB]5Q.M'WKZFD5>G%*<31.H=@CBF\_[I'J<^&6?WUVF>_G<7=-]V M'\Y4D4S^O2*O/BH*XH9ZD1K/+HRJ8(D3E*_YI/?'H:"S=SC2_IXP]A-V+P4 M;UKA?)X"/YR $PT(81T0CMGC+V.!( RZW6\V6V'>01W8-B4IQ"Q!XF3\HM@A MPL(QL4!=%!9",%+L<)-\#3?^Y1FI&^*H7QN'40\W>KS<<^P?984NV\JC,T/0 MCD;74)P6VN+$P3_X-CKF2+ DGFOG>*IA:N6*V7'P=:N2$?O'JDND$OU]AAJ##AKMV;"P(LUMDD(PAH7_8>VMDG*Q@66LHY"[: M^P!GHU!?\"E8EWD5;+IQ1]ZT#:&,DMRIJS]Q^CI-)O[Y]5 0 M?[Z:XB,;CVS\.]DX009&3O'5\H VFK*YX(",Q\"&RE2RY=,;^7(:P\V8EC+4 M;$*<.,X=(5@$VO-"7_TAJ6LJG;QX(W_'';BG]^+.&?)YIV/7 K9C*:)WFCB$ M613_B::YWV>:>P&#QV<-AX]ZFT<@11'@/#!.3 B\EV=APKH)I M7:_,6JEX.8.V,5(^ CR]]''B<@R(H:(&.)H[N5G*6)9J-;2.]X*'2XI MF>[(D5UM>\V-=Q365CJO35[#-@J_.(-CMOW.FU8NZ/563JV=F)ZQOQJ7XZ@^=QI^UO%=H"L5QSRGMXTV8/R]NO)9:IKBX MD6?K'3IN@7FN# 4:H6L&?;.U"BN/JWBKEM M4Y"CP-M%L/83RJ@!YWDGJ1-KEWOK57^$DV-3D)EUVIB(8SZ)YE$)_#J9)B\^ MW!;9=V3?ES7S^4H#'Q(MI\3RL9H*JF(OVTTM\'JJ"0V<1G[8-9V,XNE1/#U( ME#"#*SF%(&$N MQZ>4-"[=N4O(,-"135/7J=3QL[^B:/YE1//KP;4>6^!%F;Y1Q"**6)PK(NE9 MX_TH8+\8KH@IO;FZ3$Q83LCTRDIY:%7R]2:?]N*1B2@8&9EV9-HA\ 4_9-LY ML=K+WV7L+%MHF!U39HI3.84.?X<>''%-T,>?(OYH;^V"(I$-"\P$1?*N;37L M![>"B0\V?4? MZH HRNTZ(W+K J5M5,ZJJ5WO1A'D6UZG:.H[!A B?HGXY9ORR_'"";7/>WH'%]T&^KI!=$Q'T([K MR_[(@>7[CQ(_F_*/ES;Y"K=K24:0QV0MAM>-DB#4RPMF*'EWS$'GD4C1UXDX MDQLFD4D$R3USCQ_,:) M2['I4+MGX4Y50>=6S'3/03,D3 ."#2:F)F&*/K/,A7_YL[=++(I"1HE,42+3 MI;E\#7X]9M[=>'N J^T4EUVB01#ZD63R M.D%%B9(1OT3\\AW\S[,0#$?WY%%GU&:XGIU4,B4Q14#1HU[2'L'@)SA *XI" MGO..E?<23<$TI:6B:5'\,=3!BE!V.@I@'-%!W1KF 98'A!ZKWY6H- YP>T#G MN 7G&DV>H+QP)$5<$_'XQ8EV4 MR$ZEMAHC$Z>_CXE?FML6[BFC-Y&(F7+,M4&4(/E]0@>AE$,43CCQ-IH9L."D MWQ@?BAD_FB7;87J[NF4F1=K6^TEUVV(1>:B"]HCR_B=+3!^MNF+[X.?W]/M6) F(^5 MD;;U+X^Q_OW3J#&**_Q0\C^:KYA78*M 15D J;2S6#\=JG:0_ =+8K2HI\LT MI^/MU&Q:3,T*->@L>G%6GMVC+2O$=3H194#^X Q(W^F+(HG?)C00)2&%A4OPZ11W_Z)V($2)&B!CA1&?V MO($2"EU#GV=X=\BZ&SRSJHP3=E-D$"70B!+2\6^9J1QJ;S%$/) #,H#(D3#% M$$T=8(ZP E$T\,O&@/,=_!!*H02#1'0K9 M38_A>2?5[2T19Z"EY\1UFK[\LQ5"[5>&XFC(]YR<$X4DSWDZ&P5I%-V#JH$P M'L_V/Z<_F>WT @GYP'+DC?0Q/'D M=1I__M+9"XY71 P2,WDP 9EQ^TD5TU$(2C@ M"?W01'2"XQ>YIJ*IH5__O4I>O<5-3:=NB%-FC8@ PM%Z)(?17MQU35-'A0<"RD7R(Y&\,'0?@K/_Y-7H/>$(9Y7@B@.\] M8WF=$H,SQS#M'@:WT63E&ZR6AE(.YUA!#:4@(A\\,HS(,+Z]881\[?R==]UL M[W/'9L(:W:$4+9^'.JO^_+&$GQT7.%YD,;##AF^&SQ\;7)KK_'PUS6H4>!4_#I!'#]*$%EU9-7?R:J/&.U[JUGW0#H^:MZM7;8-UK': MNE ;Y0IC9-9H*PQU3:2/?U["-XST749(Y_T^F^4":3^^$X5WOL$L-DJ&#^?P M<$RG#QGR7KC^^0%B,^2&9I=SFFRA6.M-2/5A9UC:ZK+T=+E<)L837NDRB!>@XYB(7Q-DM%$F"O8%"X/P M&X2!(WJ./W(\^/[D_[.9_F@.X-8@>XHSR;HVU 2PMJR_?I[STVV*O"O%^"4; M:U;HPK!K\OTZ] 7]\[?IZSAY_%L6(D./#/W;&?KQ7+H/6CK02PEZ,2< MP:3 MJ5(Q,^7>RK-T[QCN:R(5A06CL*!O$C73 <=:QXUF_M',/YKY']T?]$SXU;6B MK#$N9MU*+,'5XYE1Q>23UABY?][9VJGK-'G\FQDB/HCX(.*#X[N-;R,$P$_C M5*I0:\%F"Y-NN34OI,4F(@0:$4(\\2V/SPJUWQA6)S&X^=&_3QHS1[ #WEV. M41PPW.&!4'8Z"AD<]Q3MW1VM;X@4=$J)46)98&<<2.93-9<&EMN&3J%WAC9Q M39Q@>?BGP3^R^1]J\T<]0OL]1I]2Z]WFK,'QJD*.*OU!)AY+]9O(Z&G/Z%.7 M?]I5J+V\"XH.>I#:+?RNH_C@>8Z>B$Y&>^.1%-%A:6>YV>\-@PZ_JLSYT?_$YHIN(;B*ZN4P7]]U\LQYJ2\K*Y6J;*LVBC3R3^Y&X]?XW2TL3FRZ\BN0^3*O5!VN(UI@';WGEP M,]-"<(B"E=\@>2F46C, M'778Y$GO..T4?9U(1IN=(Y:(6.+;.I9OHXGU8I!?UB:)$K>NCU?.;%5/YEH> M3:"\Q]1U.AGM??ZVH<%/Y#J>Q,O\:209Q1)^ .6?-MOQQ0MB>]5!)DV*S8)* MCZCI*-MN\]7A$K4O2'@\?M)[9.*1B7\[$S]Q/R=;C_:F0MWY/!12F,4.XRB E%4X.SCQZD3%5\<0&+Q"=LI M#[0BJY]>IS, M5<:0M>:);,I=:U+!HPP:448R\2TI(]1N:(A\SKHS 19F[ 4)1E^\2@1I:\? M&C*B7/6S>)S(V/>2G%X<-[1Q&F0SJS'#*FHI/=8G,;(R;O*4=S$+_0UV8H;- M-"*^B/@B;/[F>P@C-8M-.O/66,.%28?C!S?CE+V"$VJL,Q>;M M]^QKB>Y[^5G[*4.R'!8^H81\?#G%1II#BV6BC6MW_;3$U@O_/WM?VIPXDOS] M_O\IB-G=B)D(RZL+'3W[3(0 <=\@KC<*(0D0$A+H ,2G?ZH$=KLMVGV80T#- M;KAM7)8JJS)_E5=E]BK+AFC*6B#(5-0A!DSGB>+2]^BZ0$B"D.1.D>0B5W>. MV;+;8=8OZ^3&++A6E>CUJ[ET/X(2H)J21/J)I<]?=QQY02_F!4TFCCZJ3^/1 MB#Y[UM4E93OA%GGBB$8,CQC^#E;A]EQ0/]9IL\YB8?@+W?:]%%!?(_T4S$>W M5>2!0EDR=Y4E!"B+V-/)8UJY"]X%*(1 M?]\8T??H#>CXCFK.'$O370_23;!_I_15 -<#^0*0A7-G%D[2%@*9_D@PD&#< MO6 DSK#_5,^AIJM/=-?5(2U >7A*O=#[\9_]^^-_*@ MEZF11EJ3I&S;S&LEPL_W1IO/IN:5ZOE?2*AYI372DYJ*VW [ON+K6D^Q KVI MNQTXU]=<&WR?:U-77%?6F^DUT1CIN*C8Z_%0M09KC9R"U3W;,OQ27M'%UF$E MSXJ--3YR1&,MME>%;L4HM(4__L&?\6/E'K^3?O2#/*VEXJ;6<"H_RXT_F=AU MV ,\OQ@*'6GCX7K3'QIB,."\C2WF=[12N?GVP[ M.VY7E7%F-0G7/.\NF5'K?+2?+Z_M-XA72JI>#BKGR6&TX:9'J#A)/X$\X M?JPT]>\QWGZ14LKK9&Z) =]C .;I*MR(C>-JGF[_S"XT M^#D.QU9SW!Z-\0+0V%6P5I4 M7G3M?F='HI7>_PR?!-8+@(>U_V2CP]F_ M? 1D+_*DDE\W!'G/D;3=E[1AUL@BJ=$H+6976BFH5BB%[ E(VNXLN201MZE_ MSBT%\UH=^P%\4GM"?]T1,\[TAH/5EA7POK]:#'EKZM7#'[H#$NJ0^MU%$"@< MZZR)44$LR"V_$RRX4G;90MZH7W3(O%G^G_+&L(,99I*&6= M1C7?[$[+$ED.6ZQ3%K/Y:BOB-(8[5NSH#.ZLE.*G:HJKSE(D_Y2"LA>-R.FJ MOACK[LNGU%,*/&.I@Q>O=2M$"4YWD,>1$.,=E?^]PBD8J?M'"EWXA%+#)Y.6 MAQNM"[:!'"Q +8#U&ZI@J?/-8D&B78E+]AP*8"V0 Q4HM%4/###NE*DO#5RP4 M+$7A&]1?[$KJWE>Q; *I+-G9O4R^0?YC"B"EX=A\.@U%G9'HXJ8B=7QB*E/[ M+H(<]X1SYU<"D9PC.;\[.3^?+O=;@EYGJAUN4]WEQ07M4N7*4,*VT@8*.M3N MN/03RY^_.NI#JW,W%"$65#58!!8,%*:>@Z0)#0(/!!X75$%/ MAQ[;*L:EIWU_)07DDAWRA*H'_2E$#Z"8,DR\P_4]H$>B%=6D:J5MW5<,&ZBD MNN+:8%:HX>!M-Q!+B)L"M6"XB@+Z(LWB09C?'"DY?6*HQK&>8?WF(L?4I^V1 MU&!Z,DU4T\7V$AP649-!@GU*$_S-.S$03""8N#F8.)^J^5LX(="ULBIEY@"K MF@5M,PDI-S<3($Y ;R?]E&;/'\Y^:!TR$<[.7VDNZ'VWO!MR=*(.85?,B$+G MSE74T[?E'L4(!XX<,SFL+GD]I;\QE:XTVE;ZO7$WOY'I0\O!--!'4V*:5''5@H@"%5>>?^+HNT241"NSR=9< MW[3%CN[R7$R3?0?;W)57+__H*8/4SS%S5 M 2.Y+U.GWZB*'Y)!_CP1%Y]R1]=3B@H32Q4[A%?3;<<'[_*=5-:QP30]78/? M1<9IE(F:-VS%5@V@\D8U;*+&G,_[#=",]3__ U]>:% M77$A_\W^U@QO:2GA MEVAG#K-Y1:?H# $_S_:5LO!G"F[["Y[A_X$K^^:QWSP+4W7+^OLC\^'E"6=> M6C*^MM2;97GS]?_>$O/5RL-4QW+<+R\ _6;Q#NM"1K(YU;&QJRLFIDS V[\H MUD8)O1=+B7^F7K#_RRO&4U%R!US5_Z3>? _7)+9E"V6+O5FV Q1@EC[QOQS^ M[.6S2(Q?/W2\*!O^BZM;"BQ7\&[/#CON.\LO)/',?+OA-/',QG?\U+I)M#', M5UE54C,7G@C_ZC:R1T47?O]A);)5DY9\?2L3[E3ZV@$IT M1,C\9*QS',O*G,XQ,IU6<)G'"49F-)5@=)*D5'7\Q_ZM9V;RP]*-OWG+85G& MX)@#O^R7JM6<4$\5V@VI^;1WJ)7JV>>44,^E.E*F4\J5A'9)[/SOO^/]*NVI M;#3%MM M->H=F:=Q@N820M';3Y M?Y!X2ADKM#+FY/%82I /Y46-S-25F55O]R2\ M(^?[,V=#D*2TD0F9?#^R,I!50Y9475*Z8;WA2U,SH*GW(WOCA3D(B32+8Z':FVURLI;.3:$M_GZDVL)G:]XC?*F3 MQHI=R6@2@^T&C(P]DR4:1'KC\!M)\2M"@]K,W&P1*,8R_G[DLBH)KC/!)_AJ MGI^V67Z1GX; S(Z_W1%V4Z4D"C9N#"W!'#9=,9O;@)&QMY?6.5ME*%6H,<8-2_E!L)O*;'QD.^Q7Z%)O63<+>*C. MLXM"M@+6DXN/]&9$>3)I],92/V?S_'(Y&V9;+9F/CVQ9-I<.V_82SQ;)NK@K M]>3.>BH31'SH0F/567/;7)L--UTV3,.?SADPE(H/M<:$YH;3N2:2/NW45D-W M/O< -QU9_.9RT)ID76(B*8N:K;>:&CDI@*'I^-",YG>P-;4NF>12ELH3&Z^O MTF#HD44E@67F=HNL(BUF,S4[\M,91P9#CZRJ$OIR9>.[IDFN0J)=7,XQ*@1# MCRQKIM(N6K7JP)-6YF2C#$S.6:M@!8ZLZTCAYD6%6LMBP^GK6-Y;#5KF1B:/ MK&M^F;8,EVQGQ3Y+C_);@LY3)2!01]95SV^<&A#@LK3JR/-L?NWT% U(U)%U M'5>##C=--U21V8YWC>VZOMUDP= CZ\H6#:(H^ $F%HJ]DMIWFT.^!(8>6=?% MA.]C37O,XJM"F]ZU6F'/: .RCBQ6;]%="]X\T,P VPW98K$LQ,R^JTB8W%'@F0@CPR =/: M\+RI"[A2)06S,F)Z3 \\]F4#0&+",Q77# MKA;-NAEL5CM"$IMFJ[:!0V/(PC>POE9J>SD14\-";<$U1ITI&'H,6L9J=6#( M(29V9D&_K/0&7-,49.J(% S&Q1*G#WC:#!>MVE>\X^LY0 M\0I65":[BEEV6U,X-#97(4?KI65S@N,+H[!>]5>%VER(:A/%P:U7)6RUV,N* MX=1I>HI"9+O$!@Z-36 ^,7>S8I5AS'Y.ZOKL/+O-YJ.GQB;0$;$<,0MH#S<& M/<=TJ[Q1'K;@S80X$(UJCC%7&QM1X;I;3G.WV@X@-GU$8@NJZ9!=?U?&@^G" M%W=::MB@"-FH-! W5[=6\3?&M" MO7&O'.PG/&;W^.[+6P]/(_;JQ4\&R_!G[L-@V1MKY,WS'?#,B>5L7I23EY\C M=??+WN"$S29^:.@=;/KHQ2]#E;'G6(&OG]G ^[X#AO@%+]);:_VL?C6T$1?; M"(9 &Y&$C<"?TPS:B03L!(E$(AD;@; I*1L!]"8*[<3I=N)7D[Q^I+=>CFKN M3O2@5!GKN0VV>YOO92R_Y;9C^;>GIM%OC=Z,Y)>8(^ M+S"G MP,9KWSR$R4\P*S7EZFO=#O1;O@#U_7/@0L@/!3Q9MP7CZ_+OTZ2I0U=P DG] M,',=YB._2? \=7)Z+G 5^!R8GT[A^_STKO/F0LO,\/*KS=2X7%K# M]5 6%6E@<5R%POT<3+Z!U8!(\HGFCI4#.M%IB$ B,9)S#I" /MD$DIH8D" @ M+I![D-C_0,E2OY+U5"E7D@I;M[BSB[S3MCY3^N<4($&,)C1397-M,6AK=8[; M80NV T$"WJC&R2<&ISX B5NS&N_#3DP&D9=P!5V;R!\%QB]^!^LB9%_&S7?M MO7T((G\4/4TT ]^FW9TS7!U8W:KC^1Z\A*2^L\-3?QHV.)JC5A'@UUHTW I3 M40!:UX ZL 2?&)$N$96L4!8.('H7??#7%V3&GUY#OW>ZOVO4WSGAR!1],+J_ M:YC>!N%)-Z?>EZ3O*);BOE16VBA3W4/F4Y*TSX_ULI<8T!V827?G ,><=SLIJ6!IQA32<2(M95U:O.&'L++C;"X)O&4)LCS.7>1<-Z4<%[9 M!+P[S^N/A3-?IKLM/Z]D30POB.9@DG'8N@"$DX'QY2>:.%9<[(;-WIAB$(Q? MS%['38&_7AOJ04W8=TS4WAC)R**]OYC3936/VUJ NU%6-I9F1V#8F'PC\)V# MO OVOO_9'BOA0.\(5BJ]VF+1*4Q79L.A *GK=5C+"3('%9DT]91.HR@U0HQ3 MJT.WM0!WHT&=!C'JLCUL&QNJ@?<#!NMZFR+A-#8 ,6!=1OR)_]#TN1T?"Q>] M8%_&6OM!4 'Y71[3M$-^E]/[71J30VK-$>C)U'2F.6=P2UIM]"R.F]MNNS.5 M>:BLL.DGG"60UP6))O*ZG,GK\I%H%O&J.>XK&FEBC97-KV?5*L_!RFRP4S+Q M1)&GUPH2XG/AXA*['_:UN-$%$]^0374+)D7"$A'02B'W!!*E>_=C/$9NQ/XX M+KB.YZ66KC,Q?&2=_Y+T)YJ!3QZ[2"ZU=V?=1S+9C$3R6-"6ZF>FO5%C*A6: M^V0;P#Y!FXO%3N!!LN5+B$D;260;?_@#'"] M:PH/:IM#Q]A?JM(5A&Y[O1@5?4_IV"?OI>:>[6O<0@GSO1%XFN)Z( ML^C.B7P4?KU$Q/EA;W;_^.[;4VJIA*YC62E?V1Y^H2^6EA/J>FH,SA]@G*)D M][O3'R^0S/XPGJ)S)ZM']W4$6VOO:RV(>\WOM512U!8\HWBZEG46\%?1S(XX ME%K+H%SW3*&,5XSUJ+@:E'LS->K"!V_?,4]I'"6M(\F_;8/P;GS$)Y7\[JR8 MP^F-51:9#%$OM=::FJ=;4/+AU3[RB>+2=Y%\OE=R\HH*9?M%S9GL?WRM58,, MYB09("CK_-9TDI?H54-5 \!J:EC7CX6OA&V+,X+-C, +K=D6'UMUMYF9PD:^ M4-MXHNF/( >Y!AY),E'2^6GCRC^0S(UG-A/8IJ^*$_)R(%L'>3FNJ%%T9HJK_XP]PZZXW,YKKQ2< M')M!3_;EA5(39(*)JL0_4?Q'E4J0(P,)-W)D7%PI^6GA'LPIRB@7B**T"%9: MHQ6,B!K7@L(-J[L_I:E;KNW^7A?)?50W%WDJ'M,>0IZ*T^H5;X5,L#7AC8@= MP9\:08Z"JI9>X!4Y;?5<6O):1=6S(F\Z*]-9E=M[F!B %+#CUQ'Q8# MNQWWRMLZA-,?7Z- KI;'M."0J^7$VLQ2AR^TIP< .E8)E>;2F3;9RJ8EI8E7 M^]G:H%#?364BJD=(DT]XFD4>%B2?R,-R#MWA)^1S61J7TY:7"T6E/=@**WSL M62 %^W95]<\Z(G6BGDJT"B](!.C M<5RR56>AI_ZL.I[W5VKB.HN4LU=C'!L9[JB6&:I2F"3#?R^M4%:/F!:C(6&9 M';.%X49_R!BYACW2)BV9C*H5II\H!G4B0 *.BA4FVG/PH8 K>*'4RI%N3\3J M9,6W')7+!@(4\"@G R=HY#I KH,'RE)/DFO@SCD 6?J(\Y-WD>.>+?67),24 M<3#1#^'TOU!5PD3%ZZY-)*I*>"]$/@J_HJJ$%TQD+P&KUM4]_R4;ZREEZZ=K M/X,4PH2H0?=]&Q^Z>/Z\<2?NBR#N73R'%)&Z8SLOOI]]01% /GCP$>]/3P_K MTHJKC,2@B.Z^<7\"7^UDY+[B3 M7I"AQ(D9DH&^"V<[3)BUH)Q'%81HAOE(SI-NU1Z]9W=:G>0Q@"FYT1D4;+YI M/262R+=X]0V0'4LY5\*Y/&XT*F*'K\V:5+XZP%N"3$;%"%G\HZ 4\@<@24=1 MYZO>=?L526_D&S-=;@I,/J0?3=E@1X>]_-B7SRR)F" MC"SD3+F>DO(1:GW7L@H":^W7EY0JDKOZJDUY.!\6-C)YJ&Q('RE^ACPH2+B1 M!^7">LEO"7=EQ3964J'(X=AVRHZ,7%.7? $*=^0VH<@[<9LD*Q7N(2#L1A-< MDIY2D#2R'\BG\&A;>_W+[@^6A1"[63;6P?&OO^2R1>T0D=V,5.M;LIOOSM/_ M];))WG4663 3PP[ BC9>+X!F(JG=C^M"F16WOJLX+EAWQ0U+OK[P@+(.:8!= M3B-U?1_\/**@$]4N7Z3UBH)7_#7;*)#8=#D UC>W+_W+DQ]U1D'&-T*(Y!O? M=Q2=?0B(#RD_KST/WY MKY=( K+(44P493\D12<"2'9P.6;VV% M^+BVNF^1A XC)>N/M-M#S;>^<9J/UVYH&N3FB!% M_-[I3F+^Q14/IP?D@$>E.XEY!9<_U:YG4$FVJX-Y[70M-54,^W"(I8"1#.Q[ M8[WO+!?E$P#;T8LNX*6<"0RJ(UOJEN)KUUX$%%J_2F&![%M%]:L3*:MXL[SE M;(JZ-M4+0.[AA\+$U]VVKEJ*YQD3L+F'UN5=97O$Z339$L,P/UX7):;;%"HN M,QU.RE.9HJ+.=Q0J0X#PXL'B]' 1"/+O6[=PL]^W;9%I>^\QIG^C&/.]G/]' MCOZZ[CC.U,]Z"XYS>7Q>@V#,FV"$T2(Z$G ,- M4 SY^C'D7T.#YA8?[5AU,,,-H9#C[!$V6(4;B 8HHHPBRB@@AR+*#VJ6WSN1 M**)\<>U35%P;O,%[N;J_U-V4-U-<'46243SM=B+)B3B#'H_N!V;T*P6.'S-. MG%$\0T7&SN^'<.[$EQ./XMZVXR9GK U-C]PVD=+ER8->ID8::4V2LFTSKY4( M/]\;;4[NRR5_P7GSHB(V=;<#)QD)XZO;!G]UV^@*/U"-I4%(G4EI-I+# J:7 M6C+%0B\=80DNA;E>AXG/7A)?KW_+'GD&BV0=9L026;9I;6"PNCK"[3 MLTBB&2C1>+P)U4V;P^^UCIQA!;ZN(4,819I0W/F&%9:#'!\!.(-4YY0H6TW< ML/L3S\H%\PH% (X[J"P$"CLC,$!AYWO2=;X/!E-3L;+L>'@+Q[)Q+%G>]W;Q^"2!1WOKCZV=?A$N@:IH#)*E-]'W3V4D[@ M>S";#;X=&=XH,((VO2N"WH:DW[0,Z MG;)9[PU"L2]26IMP*J$X%V2:B-I[4D\,GD;A9B2^23#N+BZ^%[C0\UGQU>PE MK0P;0P0@H3%(.X)F MSF#7R'M-0Y64T<2C1HJ>GEK,+TB^ITU< MI[;!1"D4RJ/5TA\W.X-(\O=Z#,U^)/F1'O-?7QE;^AEV4-5A][67+23(%P6$ M?-W"CJZG%!66$U7L$!"8LAT?O,UW4EG'UF"[% U^%U6]4<"*I/*&K=BJH5@I ML+V^O@!O\)XC>I("+)JQ_N=_X,O+WZF6KKA0XF9_:X:WM)3P2[3>AU>])F)$ M;P<_SR*6^((_4X#;7^41_P^67TAPA'R[X33QS,9W_"Q6 /.Z.?]34C,7 M^_ MNHWL.X;?/P-^#\ #X)FU?^IF/]W#1W_\TX4,"&LBPGZ-4!Q?I4'YL42\7^EC M"ZA$4"CQP]?%^3ZI/YIV"E_Y@0>.'QA\:_D M3$RRE4 #NIMVZ5G%\0'^*42RV#1_\KP\2#>ILSJ)*VE9H=.$3#,$D&Z.Y61\ M/&85AB%XEB<.,J"\J#[I'C9>S-OI&1Z2*T>O;85"1][(A$S@[X?:5A=%,:8&1\8=*LIE>CCRG MAS,651NMP6"JU8)FXON1C*=.-CY=4_"&-)YWR[71KK&>@I&QU^^:EE>8+7S1 M9*PEP;1K(Z&?@\^,OW[:\K6LL*SZ8J/0X-K-6D70/?A0@GH_M%M94_Z"G+J2 M,5R0?TZ*B MU?*L&':7N2%0/.,TB6G!R5&\0.+!N)4C[0QN*P9\>YRF>DL).Q6**)K&6+;= MXF#.PYZ\]!&:[*K7,P7-I/%^S=B1K4I5IL"6@J',^Z&6KH)Q(9$#1(6Y)MM< MV^512T[+L?>7C"E?;39J.MY)U[+K]'I&"L84C(R1'^I;H53-;7LX*7<&Q6(I M4#;"!HR,D>^6%G-RYVT%6EAV4-A(NS&,C$%(XF8\&T6NY+,9[(C4Q$IE]E5R.%8V<"A ML:7BM=#!U]QRB_>GX:!L%R3/W HR&W]_MCMQ9ZM"R)M@H1S!=#/+6F$#1J9C M&U4F@DVN0!MFUC$75LBXJ_0(CHS/5$IGJ'E+#M=BEO;'%-%:=8AM-#0V4W!0 MT:O064QP(^2KO-UIM"A/D+GX3 >BJVU&&:5KAIF<7*^M-^8FG(*1\?=/%]B\ MI!16=:E3WF7F]69>M@OPH?'W;P>8/:A,3%,R;&*JJ'W?Q,HMF8^_OY-AE&G3 MFUEBUDH7"_YR.2WWX&N/JNI-VV- LZ5)@3]M#G@]*RE( /!V?ZSRW,+=>L8?C MBWJOU^YSA4IU'0V-P4]0+Y;R?,NSI6Q7HN?F6LI4,RTX-,8!K6ILQNL2,!8(-#J088>WJ4&CM5@$AZK33[&S(^6J1;\&A,<+J=(6B%ND=+F:G M*V,JV$&A;D5/C1&F:!US'M0\U5P530&O,'1V4(^>RKT?.FJ-TO69E_/Q0E?@ M-D5[JKJ" (?&UR!K!!R1%;MULS/5]?F(P.?Y2@LZ.F)TD>K44K>%<0?'7+?+ M9 J332V,AL;H6H:9F643O2[>V8Z6]1Y8/3DCP*$QNG"L.5P5]9UE*JQ5E\T" M76"=#1P:HVO;]*L:I:\K4D%CVO-UN-O)?C2!^'X-MHK<* L.)X5,,4L3'5E: M LPDJ#A=[F2X[,G%ABD5>DIE+!>E0G\@P*&QIW*+@DXV/%7"&RXE^LZ6W_9G MT="8)&3[I?/X0.UMQ=5@&EHS3/1:A?US7R ^,OY?C>C]Q0Y@0%O*TM._O'SS5L># MFMK!WH2FE[HWV;ZU<-_X]@[F+1XS2WWWY:V'IQ%[_?"['L<%4 $M_? 4FGRF M/TQH>&,LOGF^ YXYL9S-BS[Y\C,&/9=?]OZ #5B$']KAK[]7QIX#/6U_0Y,\ M#4CS7<7VH/?N2_0=^&O]3_P) [_ZZ\R&^?>U:TCZ+SF?#E\_Z^&FK[A#!Z=8 M].+89CW41C#/%(^UWD\W.B\J778.+D/RCZ-/% MZQ)=80T><-M_%&*Y0Y)_%,Q G'Z7V_XC!>\.2?Z1*H4X/>';KCH6_#"J0ON; MY.//_'G1CEM^[HJ#H*K!(H#Y5]KK%8=;V/+?NT"!X.ZL*BPZV&\9[A"G/][! M_HOU=1+FGD R?2?>B%\\PI%;ZGIKD"2'Q776X.(>#"0=R;?TN&?ZO.1_VM # MTX'A%,6Z*3LOL1N>?-.^X<]T]RXW^[,(]_G=!R8 B)!*?\-RCE3ZZPLU%Z/X(\S:JZ;QKR>"L'TTZX85^'UY\EL!]#/M M_>?/[O0S3]TT'P@+)[!]Q .DUA&.-AT-\P))5MU%GKJ MSZKCO2FW/OAAE$5%P;S W<3K]Z%ZB,J M,XJEV*J>4OQ43E=UV.4G1?)/*=A3Z*0R<.U5.%D+JH-UE.P.5*=O0"5X@Z;AP!03?=XUQ$%4D[SIUQX;DN8YE M@2$EJ!/HGG\$)02F&="M>9W"._YX56F4A%+7AFTLTA E6 01)P\@7)ON4T#$ M/BZ (.(7(.)KGBV,OY?L@[/F !=3U9V1LU'/-X,-@5>#_FB@31((%Z:M[_I: MS]!QV('7712ES:H*E0H.P 67?F+Y-(*,DT(&D8 &OZ> C'W9Q61!!GA)ZL^$ MP<37>]=1GO8WV1M[M]X!,N8EJEE:C7*FJ/0W70;S:'9L)@ RP$*#5Q_!CD5^ MZ?*#D&%@[C1/\J&,6\<<_#$/'@.,O!!Q(USC<'T\6<"1J]!8N3[*"4":?AW-I& M0$$#+8-^2K/(+KE#K#C%%B+#!(!%K3)D[-;$64OZ!,?T'96I9BO3Y,FYOAAM M#%[9T'C(-/R:2_")3:&/TOIBZ7EA+I^&+@,7'6F>'IJ:2GV+03MSAZ= M2))0ITX?B\@%K@(?!66;PO>RW75@?^-(T.E/.REWV[#J!E-I:/;I.=\>[=I> MJ_U)$V(?CP!3A_ 5M71]GPO'I@Y&M0\L'(3<+)W!!G*05KIC-U57ERTQ_I* M2HMKH@T[YI)__,,Q,4RX36&X5HSBSHF\>B')WX:&GSWP[P07>HH5Z-^%A2.H MP%J8UAMUM ;>D&E^RU>:Q'0G %2 L0H$"C=ZK>$^+S+<.BA\'*Y@V@LFJ"XR M13P0Q;F1+W7IW.CZ #''5I*F\=L1SHAJLTUM25):;P! P.C$$XTCD#A7]ZJ[ M(/)'G:&N !*01H(\A<7T(&SZ &?9U0NJ(C9%;(I4KI]0N68P26(S-2=X(\#& MV$A7=G5I@)\4S0S_K=+UJ<.&S M?EC#AEGUQOK5$7M*_^NUPRY7.;\2EPF"W+F_Z,Z-?ME80GH\<:N[JN$=S4*7 MN+Z[+>!ZUVP(A+CMX*UM7Q1D-LI"Y\]GCSV>6"4C ?U:_MZDP\FI->3'V^=D M9"E<2X]..G\C;^9/J>D_>VS:/4?*Y)2^)(8Y'7-T-72)6@L<=XPXF_$WT@OO$V7Z\_JU_S&T]NGO;=7X?#]J3Z9RA HZ7R#[GRY[,2SX_!7AP-$T5P0%*FDA0TL0-P,%% MG;FGA8;:>%+,#I7J!.]XF9PH#YRV30H &K@__F%9#H$#RD]%^:EWO(,/<8:A M_-1;W\&'8-/'5+5.[!\]K7I46:LRUA*3#0B5T-JS80#5(^@I9=EXNMA? MGW65)BDO%;J9HR+%SB0%*R:XA@K6\^ X53: #5* &R(..9T']?'B)BC]]#:< M,A^FG[9?Y2,:)D#I*+B.=ZR80#JTZ%9^PC:D#EW)*X8L-*A92^:A?Y;Y*-4= MB19*0;VC%-1D>W6N6H7@5^!D:55$.ML/UKBA-+%&>5 ^M-R/.]^0HA]#3$ MWR@R]K"1,<3?*','9>X@_GYX_+Z-S)UD1T:^T_*;$=KM8-,67:F"X9Y2V_F2 M'_Y^RV]@3)8B6[)Z/#<^+(TSY5E[L,,+(C.KS80&8_O V":BUMWD$T^C^S8( M,!Y$X;MQ7]V/9#UG9:V-S=7 Z^1NIXEKVVHV$")99W\LZS>6%@:]:('MZF!J M.UU+30'6PJ*&&GC*6HE:PT0MSP&9-UK<\&KW/1?LB0:!8E^Q]]VY1U.AO,-L?G=[O!!"WML-C^H9(C-[W:'#]ZWQV;S@RON MEM@\V7X+056#11!5#FKX,]V%PUQ]IML>4*KW]L?!E>$'QJ[17G4,4QD-'&:P MXSH4]_NNC.^]#5H[0-MO3+K*]HC54RV+4EWME8=FOS2I&%*U;0XW+;@8!/'' M/S1%HP1-=(Q^VA5Z2_B"CE'$Y@^@+=ZX-^\WCSNO)@68'@R*(C/4>AF6E=2Z MNC_NV!\==S]V\2T @UEZ@G+GX#/'WSQSHT/. QM:>"7&<6**O0I?JJFN.HL M1?)/*;A=__OO^'X"&>=/K/M6\BD@^9H3C"T]D:)_^E)\@BLE-6K+)2- MX^@+J4,-UP&S-1JCRN]??'KS@GVUO7VAFR/P,&*Q)FO*VLPTUNV--\EMZO1L M*A-4U-Z9>N((-@80J;N1DP1E,%Y=H+Y9F'^?,VGQZJ2> 3M^5FM(.'!$CX9U M?W77V\\$*!E6 +>@Z;AP 03?=XUQX"M@P[I.W;&CL)EC66!("= )Z]X>P9F% M;)2+H5VIBHL660K#7)6IK#<09V#1/2K>. &!S!FR"JXN>2<'F>\F$ER=U)L% MF8^O:.^RQE#W2WP!#\9,-JP/ADN:^V1[QG, #LTMF4FZ+U;$%;OK3M)+<9GO M"A!PX$5LCGO".00Z%\GMO;HDGAQTOIO.>W52+UP ])- \].1 [56%GN<5. D M@^GF9*G0Z+7GT^N#SG>+@?(B:757(C<6^]3 ZC%:N; K1&85##*05/S&XOW< MZD/ZSAFAY[N9UE\D7NM+8N T'9,U&[NE7^.[[K:^2*!EI=L[MQC, M"AJPK*:#1D;9E*E^I.C C&V"?4H3\;8K2-%!:(.LJ].@36W&!D3%-42DPZ Z#(VRN#7/2M*EZ@)7O*5E>.F-L#!4SWQM, *=(?(444#OIO M]-HS;*.JPZE_(-Q?_Y0"OXS%=GY2]A][WC^8Y6_,2XG82Z9P^#]&E36=UV1: M'S/R>,RG98JG\0DUUO$)G@9O_*_R\A> (<6<9ZD-064E?>'0FC0.5&'=D@F9 MP-\/K0M- IM+4EKLFV%I)8<"LYRV9%)FWX\L%MK^UA!USURMU.6$]GH#SIJ" MD?&'%EO>S,]51RR^,+!6T%G[K:8RE:/0Q[IXNASPW$K*KF;-T%MG%A.R M!4;&7E];+^>C+MW-XMG<;ELT\ZM9AA+ R/CKJT2[WBLQV$#JS-N:;!A!*+'P MH005FVF>+5!6>K/!L7*KM,CN6KGN6)#I^$R]AM,/#6L]$8W:=) I$"5LE&F! MD73LF179'JUF;-I<]7.:WZ?9-,_ 9\9H$DOA-C]7AH04C+7F3&/[-9>'(^,T MC6;%WDQO+F2Q41<;@R ]W.6G&S@T1E,+;RURF$!MS"S8?JGF^V.Y%@UEW@\- MLN/RAJ!;.3%;7+1XUQJGMPM!3LNQ]^LK574[=M&:YC&U!4;&R,\- M98O"3*QG9K/MO+B0O'F?@B-CY&M-B>OTE$'%K(R(#2.T+*XJP;?'R1>#K8L/ MI08G&LR6:M>Y;9/(3N%0XOW0?K]>-186,90*&*W,>_9L%[2BH;&5H@FL1+)< MFQ9#O5BU>EW*57MPJO&5,AIAND W\(FYFD^K 5^;5X>=CJY8WL;L(3AH@Y\G97\\=&C8N&QE9UT>IK\R)5P'"R M4-B.<&Y"".6-S,;?7VS90GOA4AVS7\*:JY*= V?1%(R,P822I;*3S5#$3<8R M]75%;&^]+1P9G^EF/,XL!B69,"NS65!O>&R1UUMP:&RFS#P<:3.G-\*#AF45 MF,FD:I9@I\+83#/@EP&VH#@\K*]HF@DG^4)S WL:QM[/-CI]*:0G?2E;[93! M;BA.=@D;Q\??WY^8RVI;")?X0L?*@EE5[3*Q.71*_'8HW_"P^<0M81)6ZF.< M;8>-D@'[%<6FNL7)M5WIEF:BOLFOYN6V-9H7IOM&:>]FNK(YO,U,2=%P9N-Q MD%&-.2"?CR]_,)RW2ZNLTI2R-:%>%ULTKTCP[7'R\?RZ6]JU&%KLL,QH:G7% M[5",AL;(KU?3"D\Z)$#4D=YIE^M=3:T(L*A3C"@\TPM;_>9D9V;'"[R^$](C M.Q,-C5$U'WEC>DX,:9-AE,VNU?1S'#6%0V-D949KC]R,TP.\DR?Z4KN3YOW^ M2Z'.=Q.8M^>$.9IU1:RQV U[:]SJX_L"5+$EX)=TJY=G\SF3R6A=7)LM XJ( M[L_&^:J3=;22I:1%)KNN[PA[7IM5IG!H;+4+UQEV\9N18>^&J[QM:216SZZ_G3I!9^ONQ,<#J-1<#C)R)/;%2F+2:U67!J!#[.;P@ M5J1%ON@>!VM"!2JLLO3T+R_?O-5>X"V^V5X]62A;+%+([5?C K/TB?_6VL B MJR#ZY&"UX?A_H,[CNR]O/3R-V.M"/YWBQ*2OF>'X9B#XY87LW>LF=5Z!9.:9 MO$ 5UD21_("[?.U"^E<@^3)E]1-%\F,R]E5KNUZ!9/:9NFIQ<,38%\HQ(!^, M9/Z98Q^,Y(=D[(=319CG-$+L!R 9J2(W0_*OW_=*BC.$^T1D[5YDFKLO[\C' MJ8S77H,'W/;DZ"@7(_GJ70@3L :/R>D)45HN1O)EE!;$Z6I$R"-__V^PU)SF&&CW7X,=?^; M4E\WM>D7B^7=@-[_62YXJ;R4NBD.2)C"@U3Z&Y9SI-)?7ZBY&,4?8=9>-8U_ M/1&$[:-9-ZS [_L-W J@GVGO/W]VIY_YZS89^K0+?^$$MH_XX"2&VPWSP:%Z M.&*$T]AT-\P)^XK.J3]APZJ_;HD?/D/T!3ED;^[=,(.\%."])=Y()"?<_*'1 M=6)'QN_=3;QZ=>*?[$67T]6HZG2*PJ-V="1J1_>!=71Y,FC++#&55>57J#%I5;!%62%+\_18N/]]LKIJ;]U1^P#!BI[OC-CV.Z> L M+&2Y[S5'\@PJ5'Z)7G,7I?NLK>1N3NY_K;R.A7AAKM%R MJ>Y6J06LBQOUB:,00%RBD\'- <0^)H XD1-WM1J1NFU%,DV.S++5WN#":=T M$MC2(&-,>Z*S#@KXPNP/9]BLEVF+L#0W[/'&LD\L@7J\G;[^VK7I/E$+-S;A M@)&"VT>0I[";'I=?[T4#WE]83C2_)NN ^TY7KQU.XG6#P6FQDF7+2FADZKMU M KMZ.;ANA=$^ MX&%31F1NS!EV'!3;7W/$AO#GZ7T MQ=)R0ET_#%P&KCI3/#VUM!3[%@)$9_>$)T>D4Z?W>^<"5X&/BB2;V$MVUY&I MPP_4IUUB_6#D)N!C[P@NY"HFT:"+7 X/I*T?F&*0+Q>G,@/]Y'P<$6Y3%*YE#=PYD5OZ]I.\XTRO,F47(FEH@]E6,K#5+FIBS>XU MI(_\*K_G:+UJ..&X[S7P="WE.ZFE$J9\90N]L2]NV*FK $WX;F)(=YUS#.7Z M3^1QW3,UM-+RCMM5MGW#G\$X#=@*\$'TVPQ ! W.3[>]B+8CT+"BTV5OLNS( M9M#E\I14Y<5_.,?-H8*?]V-B#QJ/L:UG++)PA"4;72?20374GF3Q=V_ M6T]ZJ#2=7[_Q,2*2CE3KI,KLS)($[OEEIFD.7AB0F\C M2:,S\^YR;J_EDDP6JJ S$VF$I_1E(NZ^[UU&&F%RN/LJ&N&)G:&GU>(:!+$0 M:S.O)'7"#(X/PJ:QPEM BXM6>@H=R%&M!6>2@LFXKJ&"Q3MX/I4- MV/,4V/J('4[G KUS(4MF M8=B!X, = X?3.83O7'!0]ND]>+[N?/\>0JM%V:>WO7](STH$D]Y!*B54BK Q M=+#"B^RO'M:4OH7?ZW<3+[GK%$H4[$*A7)3I[AU!;5YVI'3TE\@T=\?RDAWV*-W?3L501 M1MJN*O)DV]_(_/[J@[8RZN0J+G2R3][T9-P5JW_Y"]<=ZWXVE#]9U/V4-TY8A_TL"OO;S+\>HC)[W1_#^K88S/Y03=#3'ZG^WOP%STV MDQ^<1XC)[W1_D;KRU8=T.TR>[*C-=_K',-ZXIP\LO2\QC:; ]UEL5IO]OMT. M#,M]6_3J\93[S41DL"H]79I!3MI-M9'3DUL;F<"C/C \A8K!(^WOD;2_&W?3 M_4C4TD=V.A6/-UO[W>BSO[(W&_[P;I-<559RF*B+JC4Z@[^B^E MV7TKX!00<,T)QI:>0 D_5_OTTUW.*\YGG.TJGF1V5GVL8I>*9F[]^\VE?KY[ M^JC>+RU"C>#$K.X)LR*AJCEB*A/$H7TZS?&H)]PE@M%7%Z=O%N:L_=6O3NJ5 MF\HE%C;.UI..GYG*>#QB2E)0]/5VI3(D"$J *!,U8$\CB+E$1L#5Y>[D$//= M)("KDWJC$/-Q6NE,K%-<=;8IF(:(+3>*UY1'5@+A9NS.A:!.CP2QD,5R*Z)6 M#3J+%H0;F#W*X4]I(EZ"&4'.&1)(KRZ')X><[^:,7IU4E':']/ASLG,P3A6+&XCY9H.<2A MQ*+F-U=-=YB6"D$W6.8+N:%3CG3P?1_Z]!/YL=T?A1[^&[WV#)NHZG#J'XCV MUS\%V_MW+([PDY*/YOW!O#NZGE)46.U L4/ 32G;\<'S?2>5=6P-5CW0X'=1 MW!"6I4WE#5NQ54.Q4J\'K?=\]77FP"]_]B#0C/4__P-?7IZB6KKB0EB<_:T9 MWM)2PB\1QQ]>_ IX$=J"GV?[K<2?J33XY' ^X/A_X.S>//:;9V&J;EE_?Y0) M__*$,Z\B2;_)@=\O:?K-LKSY^G]OB?EZ'&"J8SGNEQ?,?[-XAW4A(_B?ZMC8 MU1434R;@[5\4:Z.$WLL)PS^_1NB_O!X;<'U3!%S5_Z3>? _7)+9E"V6+O5FV MPVF#6?K$_W+XLY?/HI/B]4/'BUPK7UQ89-E8Z^_V[+#COK/\0@)5Y]L-IXEG M-K[C9[F@P'P]R934S(5GT+^ZC>Q1]H?? _P&9XWU#=0R&F6U2E2IV6=4U69YAA=YBD6E],3*JV."9I+ M,^H?^[>>9M' Z:>_;,Y/8<='(>E^J5K-"?54H=V0FD_[T&VIGGU."?5=T*HUS+$W2Q('G ME1=]M$X-G3F67DVEAD6P^0K5SS=J4SF*_J<&3Z_<@^EO6$*4XO\*#%L 6-W[6'W0U0 MZV//7 OFIK,-T@.\HK7E=JO%=;')%(R,/7.U6E"VNQQIN.&.!I-AQ> ZP52F M93S^]E95JDG#$AYN6OZB88\V^K EI^,CTQNCD6,*^M9DR&RSGMOB5I83P,C8 M/%W+*+L3I3DT UEUMAFCJ->G\)FQ>6J"TNB:QK:&+]KA;I;7Y(JSF'5*VN]D@]IV*"S,='MH**.V]5Z:E8P(E9ISC7[$(SRI.*#17U0,H, MG;4C8OFM2-0RVZ5,;J!Q$QNJ3X.1P8]$ <]V1[A@5K*+,+.!N6&QH=C.7LX4 MC:^+C?4F--:%\5 2@%S?U M^12O.+ZP8/.#>E@09.+([AOT-MN3>D4![_1LT4CGEE9%!T\]LE58OU\U9%5L MB62NUVDM5P$]88 X'=FKJL9@PCH[G8JZ(@N9V7"35XI@ D,(1#3([M568@#M=W%%Z)"^F++VU&"%H"A1W9K8;DJ[:\K?;$Q'Q8, MN3W$NHVI3![9+:.T"7>K3)G &^'&ZK=[Y8X+>( \LENF0&(XSF89J5]J35L6 M)E0WD*PCNY7I*:5:.!Y,I)4HCA;SFF0O*RV9/+);7";@K$U[T,&QR5*1TGXY M5ZZ#N1[9+:%=]3I$=I,1"XN!QY9S;KFQ 2MP9+?R$[&TS=:9K%@H!4629,I! MW0)//;);TLPQV,*2JIA]O42417+=J$DM.)2*B79N03 6JTI2.*P/S$:NX5ES M (!'-K9J@4^SQ9*Y&-"=HD6L'+4# M /C(QAKK$9V3^C7+)+O2M"4V9;:U!$\]LK%LII.GBKU97^HT&2G0MJU-GFK! MH4Q,#-FN9[>KAH,OQFI%;4NU9@6<%=01'@BF]6#24&Q1[)@MNE;6!48*P= C M/-"7IJJ+K9>JN:JMI^'0*@ZW"AAZA <:%B,NFI0T$$,E&!O:8$*:8 NH(SP@ M*3VKJH4ZC0=98;0.TVY["J2 .L(#FTZP6(Q6>0HLF"ORN]D:QQRP6$=X8"!B M&]/3N:P92/1R0A=\;P1.(3 T?@@N5KEFH]D;&%7=C8=%38Z<+,W.E M\6HLXY*Q)=H-L]V486H)?0RU^>9P)EN%MA2XAEPOXN#0%#8R?81=)%^O#=,U MIR=5[& Q;P<#GP422Q]AERTEJ:1BVAF\,2@+(4'->KPPA4-C9)7I_KA4I^6: MB07Z8E3BUNU+6\]UY78'5; MRM+3O[Q\\U;M@X;J03&%]IJZM_.^-8O?>&4/-C$>LV5]]^6M+VKN7HG\N;O\ M+/[,?5BC](V%^>;Y#GCFQ'(V+TKGR\\8]$E_V3L1-F 1?FB\'_PTT8M?ABIC MS[$"7S^ST?Y]39OX5NG7/CD,\Z@C4C 1A#/Z0\[*:&-N-1&X,\?%J)' M&W$Q:$HC:$K"1B!H2LI&X,\,VHD3[L0OEJ#ZH=IZ%PDL/U()+Q^\_46R@=T# M/_Q_?Z3_^-TE8!-1,N,S48/NS-7U5 W\8N:E1%O3M6\O3"+6OVO6)W^7]0GR MF;QLY\9?9NW]/6"2?SK1%> ?*9H/LNN7;;_UF[M.$4\(QVX$QS[:S7W61/QK M3*1/AFBW?)B3..S$?D=@ER#62%95L-]A#>H4B'CM1/VLXLU2T"KU4A/76:2< MI0[KLMC3%,PU7@-C4_>^G P:KTWM-:XEI*_3?^O:=$?NW,>C>X_SCT?W _,Y M<\N$)UV/?\V$)\CH!>57FZDYP1L!-L9&NK*K2[_?IJSI.A/#_TX5/*S'#!O;O)$5 MLTR[-:-7DMVOP'^II4.O-_HZF";5,/24_;[4Q_^&GZH M0O-UZ3IK0].UU#A,_1G ^Y"&_1>R9)&&CRQ99,DB/D>6;,(L62YZ04Y?@@/. MB%2/%%!94LH"EI+811\@JS9)6O4'VNEKX 39N@FT==_*&/C>TJ-2+;8FO!&U M8^6>"[D&5: :66B-Q_%[MYKTJT?!GNIL"Y&&1/0S8=>$A2_?V M+("/<>N!3-_$0-X%=)1(>&'!.""Z^PXUXA:VB(:-G\$"@*<= 3S!SBHJU]-\ M*1N8PVQ_O.N->$'FH(9R3O4$@4$29.#!_ .)08,+*$"_A09VNX*5)L4=(08E MKYG-!*N^;F\ &@#UAXN7C[QEG\E$=]W(P1\% WQEJWM/,!* '":/:8 AA\F) M'29[ =M#3U?9'M GH]OZQ#A6P;8_'A0P;T07S"PC4*L%:T[]8DN.2M803SC^ M$?P@7\DCB2KRE9S:5_*KLKK$-G)N4ACSDD)Q.#.<9>?+-:SR!O0$EKO;Y(*] M[O!G08%I 3!]( 4VVP-K\U]8 =@!W\':J_HJ,)8P]P!Y3N[-6#JQPI$X^E)_ MWKC: 443)D0U[ X0R\:DZ<+L'3]L6LJ^2T@DF$<0C2NV>[.Z;0M2J+9D0Z;S MVG DP&J44/V(=]@X3;HP\H0DB/E/K:(DCL#S2O<%%)7?EN[V)*_/L^FQ)2Y6 M0S7#L0HWJ$;2#106(A[4^>MV/1M-F,/HP#8_:&\H M*0O^G%K4"FEM$G7_ADK&D>#RZ;0,)*XW):[(Q7$:S>'7A?>]S&ZF*\F:SH<] M4U^L*KNV7]^L!U'M>1@3(>[;U1&U*\/&"KP* 1M'Z;9WVJQ29/PDQ#:X:\_& MW457.C/%U3-0++-OI/((>C6[S'#JF=I07.4Q;DV1&[Q>GT;3A%$5BO\HH0TY M-I!L)]^Q<3>ZRB\+-]F;S&?]8*[A_68ZW9,+\[K("W":T*OQE*;B;LO;]6MD M9XH]!<\R[+<7,CU/][WHTHME*)%\&X<\CB@2,YGHJG\H2#0./,/6/3!:707& MOOKM">]Q/@2TW3N1"?"37.M^YKUO[8/P[Y4=!Y>_=YD,>QGVV@4O>/$JP(H# MNK&&S7V0J8S4:60J7\]4+MFJJP-E.J?O_RW9+T+:?I71CWSV':^(K8V%R.%, MFL^UN]MU>]X38.M':$%S3_R'>='(A$8RCTSHBYO0GQ7Z[6).K[N3(B,52*$H MT/RNF]MMH-!#I_\3B=/W8%D?E!;8*QY2<;"FD46<)(OB43($'D#O>)&SON'/ MLH$']D-W!2AR'R&10VMSK11V\V+!SEFBOAA[_JX%VTE#]8-XHED&W8M $IP$ MV_\!M(C?$N'TLA2.Q9Z>%_N%IIXE9I5R$8]$&-Z6>.((_DZ3" [ZQ;ZHQ%>/ M"*HH@A7T\C[4",AZ)*$%ZHML[*H%!BL+'2K:T$F&*B1, 2+ MO"%(W&_:&W(/-R5^2L3?2W9ETER.6"_=,QD5DQ5ZW<_6FBTHV;!F]%UH@>OJ-G*&/+8I=?4T@)N]+O%]!#H(W5*6EFQ)56ZQ/\SFH(@ZE,O#2LV;?,<+JJ:&M; L!SJ(5) MD:@6)I)6Y/&X;.;H]\4U-VD9]?DLT\,QKC:=[7@UB\\$**ZP:PA[Y^D=8'W< M0/_F B9R;" KYX8<&_<9;CG(9?6K6'[DR1BE@B&[D*KF:7"+%!8_+ MN[ENEK8R@")BWQZ5I#^Z98?<'(\DN\C-<8VK+1\);ZW?HW-!#NN)!CT;ES?+ M7)"9MJ#P CV"?.+I>RV->= LVI!%,&>"!9Z.\CG.9@Z-'5?376S_]U^(Y3;E M.9:AI?Z%1__=$<0==XLDF_Z;=9M$=8'C(!@)=6,B>?IW@\)6I5TD%=]U-1S_@_ R]JJ_I7:@G+KFO@AW'X MMF0GH'2-_#"_#H/)%?DS*$+))?;N_#A ZU[ M[Y2:TQ44OS:U";+W[IWN:^7$7)ENY-=X,+JOEA-R&L)OQB8GR.@%S ?69<_9LFQ8*M?=2GF!]W=V.UT\/%56[4'F%!1O7ZGCYO/I?R4K+:#.3%8IE5:9+19M=8KS8O;?@O*:G0[E.8^# ;>H 4< M4R];Q0-9 @_6N S099S@A?J[@((+SB0!S#0 2C0F/P*C!:P M87DG+BQ%*F#=LA?2YJYD )4G*B?Z86EDY'= L')I1T6"5^KNXA.?PY6Z[Z33 M5'E4E=2+XY%*9![!X5@;R_UXA[<0]\)NI9> MA/2;H.MW$\OJ"Q?CC##L2=FQYNW:!2J0-P#<7FJBIC^L3(3\1$CF;R;MXA[\ M3*<1^G*6F!;68FN"%[*C-A:V.:PVV4"AWSN[:Z@^L,*A=8Y,[ML)TU[K/$J4 M]Q#22)"G,#(>R&Q\0+Y%>0B?NV+XDH20=UQH[>3TI>,9OE?4+6 B=MW \\%O M1%MWIV')5L%(8ZVW];'BZR]_V7X]:> #\B\FTH?Y^SEZU0PKX1*7%K3 XAVJ MG2FN!.CU@NYQ_(DY4K;RMJW)[QS5WO]G[SV;4T>VAM'O]U=0\SY/W9DJ\)'( M[//>J2((C,G)@+]00C0@)"2A0/KUMU>W)(3!V-N;9%NGZLPVH-"]4J^\X*Q6 M5!.=O_'UE]6ZOIZ:?8=RT6]S>0'W>1-I-MO6QE5@VK>[\AK/7&\V" T&G<)3 MIZH-V-9LQD]@E:2CYF4L;,A__)$MX[-N_C.TS-3OD/GM+"Q_,,B=ZR'4'8S*P'\NBSJ^ MSR-R['F>J I2,C/L=&?B+):JBYDG;36(D/Z6D>@E-1&?J>^$Z/TI(/>NF?PN M5YNA4GBF1;M3CA\60T:^5Y-:DP9P->0.,M]CYL?QNE13%:2 JA$LHS72!='P M9YM^(>/I^[2W^-Z5G\!G-<)F!F>SV>B()%(FRCB4U^M;QE+Z(;'0M,I9*SV( MT(Z1R5-3 WQ'QT_BU;L;^7&0$/4MC/;7/1P,$B50YW-5L<].&E= 69#8[A<)""@-)OP-3A8!#P.37B$047JWF^-1#\_@?7:X^9 M5_4FK082TQ4RH\TL)X:6SZBVVAR5ACL=(?M0?]EK0" M:0&*52P8/3*X[POEA-BZDVB/;PW\/;('N/Z#OR,J59 J5M"N?(EA ^FJ4"?C M=^WP@\]^HLBY-1P06/!_;L=M^TT+TLIH_PO/E74,/G5T.(E9D"W "K?&EJ0R M04W>1-QXC(1CV?G;='T9J55FCUP8HRZJR/'-DL?BCC3,#$>"L?#AM ;?A_0S M>=\OG/EC'>7J_/ZFGB,QXU!/74\4;J[,JTHBR6ZX.F%\$A2+1TYVROV"+B0[ M-O8Q]2; FX$APG6E*MO+;DCMU2+*<"C'9[G&W0B-NIBV:LQ& MS'/9DAA+"PVM/"M/0&B II4*'FN\\J4<2K^G5B'\]?D5JI\A"?>X/H*Y?J1: M0QG=)A_A?RZ46G2#?=U>G.T\3)5IPF)+NL@Q\961D9C^RW,\=C\JT"#"CY?6 MH)B76NU'R9@L-TNSCZ59"E2@:#R8"I^29K[#Z(=R^6$>T0]E<\>QM+6B,J<\ MSB0NF]=2@Y'.#.=:^F[87*X)3(-[-+ 4>IQGR\.J-&@U&\#FH+0D@LDC?2*_ MNGNH96F:C" 7BY<#(]$09-6P=+OPRYFW$A 5BA2\8W_ RA>L ;GUOOT!*S]J MWS^8SOT!*]>N^]%X<13X6T<"$I=H]$]@9.D0OS"GR+:W0:$XWZGU-3!YY_'; M6V_R*CD==W'X?/--_A1RO48:PBW/D/LHM&"3Y 5%;,&"$]>W=+ZX!GA&;^T/ M+FN_0DJ@PW%UK,M5T;&_ MHEWJ*!"".D>T"X5O>-Z3)N\7#7Q9#0%8J@T<];:0,>+/I5*7RXL<*J;Z8DTH MA3K/6,C0=I)^B-9G33^G_UP'_A%V?#/O_C%I)-5(85SMS.5PXM&:ME:"N *^ MC$/+EN^7='\JJHHW2@*KHK+$&A/IUZ",CG9O\$.M7]V"^4&AUGL;>N2;[C]L MW_=HZ/^D8"SD5FEPY.$3#/^IHY'=+/I"4Y^^.SW_D,B6;R>?N;A>$['226;! MU(9XS^3M!M;7+5T_.H.!7?9-N=KNB)UY*1$:]];3GKYJ#**DGR*;\DOA?0Z^ M:W/ZVSG3?Y^%.]QFJ32E=8A#]6VF]&D?6,4G-L?\P9K_,Q*7__Y?_!]G$0+6]G20'M/_.ML@ M5&:OVRV((%O!GYV=/40 =(YL8?X7-N=Y[-ZS0@*2Y?^>4HJ=)YQ=".V3=CAZ M0-MQ#U@\__U_O)O9V2HA0955_9=3$^(!G@V7,!&L$Q0:ZHB70OP8O_T7+Z_X MC>'H_ZF'B%-N\LLM*XD0!1V@^K\!S]\ DP.4S?EUR ,V6XZ'9#0V?]FW.=\1 M&>Q^J1HBJ0S0D8Q%U1*]PIF-<5/5?H79A_@^PJ/L0^(0XQ>Q52(>R<,'ICK( M]O_3KF6/,C'\C1D/BVQYCRGLK_[ZMPT4"/Z\+!P5I+V\S0[\.87-FS1G;V2X M]Q8OY_[U;[=8+N?2U4"A6>O4@X%B-?L02%=S@58GTRKFBNEFD6O]W_\,[V6Y MU5J;:P7:M4"V5LUQU1:7@[]:M7(QEV[C#_EB-5W-%M/E0*N-OZAPU?8UE^_: MNH$/[.7OCL);(ZPSC?YQEWA*1K[FO6,LQ9/COM8LI*O%EW2[6,/@R-7J7)/\ MW:KEVX]F<X07=_@+U/(! MC,$ 12&AFE,/ZU^"]$70J\Q?I.'TVYOLBK(\P@*S@,\N#5.XD(A0 (L&%-#A%;#@'5Q<0&#C(H 4O*H--,6PR,OH]G>[ M>[69AT![BA$XF>(;,:(1@K() *(ZT?EY -,,!AG$D8;9@0Z-]D>?CQ/)8X5'F%1I\V M? [1^G =-@*E80<5,D P\5\C,-15'F]3U<:.KYK=MB-;]GWH8,)(")N\+**);_ M!SUKK?D0Z;5Q$\&F08UJT?7N:G(9>@I4>5T?3+):O]V1BEENPU;*W4EWL7B* MK?[Z]]*P^)RS[K*P*)4+,T5@&WE.U'J]P30[1U([?7E8W"-=2)E0KS]OM30N M5*Z%57-BB4,T^9ETT63CS]QZE9\PB.&>(\VR6AXKF"[,E7K$^?/;7SC9"?C$ MT_P_#1/5+(=UGW\(9C!XYHK%R/>9!Q1%AOX'8X M"H?(7"$L[_'Y82#W'0$X9[#4!UC@@PS1W IR>IM'1"J6[%AJXN7@LX(>/MZS MY_-'#YRR(GZM@.]7L49M7._D^(QG]^*Z?X8W1*,V3@N":H$J-*D318'^]U"C MKY0FR>K8R%A2+3Y[M)+%4BC,KBZDH_^&/@L$R;M[H-J.2)0J6597=+J*5Y\! M8C20">1@0AY/H,[K)DU0*Q:Q/HR-&_HI&0Q451/1#VS0SF$3CW@:P.$K"G@M M7G.*$&&-J "$_/:I'7/IO_8C[1^JMG^4?OFN:Y1>)I)6JF2>S%%>2BN*A6^C M@@A&ZN6Q$+-WQ(1*A"?@OK$( '& :O$SX>\Z(N8^T6E@\/<3=)/<&_M>PR: MS*6J)CBK]U*_Z&-D4$7W(/Y;*\?B2N-U>B^0K#XBH750#_=(&"]3$#48X#P! MM9>\%_^.-'.':3@/\2?R"L,UX#H/K8= (9VNNU;:#EJ"ZW?'2%?GH@GW:Y9N M6""5,9+@L;HE(Z<1VL22]VFW!3"D1@]8(AWA-1M3U9(QC^.5(YX !V]S9BE4>R"0_5TLV5;>JQ==E=- MIF&JPV&%%IK MB#2X<]=DR71%]$3\S][1;7.BI73;235?W$XG M%SIO]MSEY,#QGD"A-X\@NV3D]*E MQ?H8P ;(/=OX_?Q6*\[RY0R%I"L070C MGE*Q5V.DE#/DB>!PC=AWJ6%G='B:Y1JZ.6B"R$BO18-\JN"S9&[-*X0#!N:J MTTV*8[[(S.O=E^KPN68.-JM#U7MDZ5C/E$[1D;,8CYY=38X;HZ%63G+S:0R9 MFS[3R/<:?WV"P&%+"4KA[VWIJ1NKI[129BM9FPR?8JO9X7R8/M>6^.'3+#DH M%)>,E>R46ZGGR*0=P:9#+'S Q:\^PR%P;ESR:\_&]7@VT\Q;E3 3>I'CTPZJ M5GN9QKDV/LO4I28O-\.2R PF3&&JY=+]U?EQN;>ER$ILC9NI];,4ZK.A?+58_0@*(C8&HH"!^""< MI!_JI6*YVI=G*2FD-X?U:'(@%:+G8Y:NU8^UC%Z]4UC+M5(FG5K%*Q^DF;A[ MI.$%IUR*26?R9CG:U+I,-M]=198S)JOK9R-R9IZ+E<;\ MH,!*N4#=I_%\<]6;%X?](2<.%LWUK)E?EK9G [',;3NSZ++)=6KU2KEA+<5" M(XSE$?LN#9^BZ7=)^LE24"#"!+&&BG5D2MP,=0-XJ-WQWW^<3-_RGKTG]%=9 MZWG&"B.-"VU5%-'53D.0ST86(36^K**J&)=:9N9I-8U*V?(B_1G9MU/4WMM1 M+C,44X5:6^Y8!:FI]L>37J=WMI-YH5*:+*PE;6K_ Z-OTC+.9V?'!I&E:YP>'Z$,A[#*W+F3 C)/[*J8(%]B-](ZCY M>?R-X8'%*+_,\\9P&I8**)/*"&A56I:P((<7O-Y],+":B@+$]?!9_AL*]^^L MW9O-".;P'#]TB@&[C=%J>,]2Q$8GMD:)&U(2=#O4Y)E;K*LMN?9A(?5$%NHN2QNI"J6,_] M+(-R@\+P\7'#Q9\G=ZSD=?7T,HW$(B\MD!YA^&@AF?RH)7,;)2^JM_)*HZ*. MI-I@(;ZH'!NUN ^=UA\[S0GG!! O3/>E.-"^1SI2L^/ >X:OX(W/296C=FYO MTJ@M-OHPP61;C5I\P3;%1/-L1E\U.\LE^$RXPBUR2E1)K1^K-7ER7:GR._'A M\^RZT'S*)9;#L"1U&UBRS'L3Z5']H 8;';"N%(R[(C%3YOO]5*^!.K6Q$+', M\6KUJ)YMO>UN?MUM2QF-6RR&R4V;M0KRYH-")>%9;\JEJN2H$D^O)B&+0?VU M^!+3-3$2/IM,V8XVS\F.6GSD+(E?11];Q7*Z]&'#\=7I:J]8CFJHW4Y'.*FF M5!OY1F'2R\_.!N'!,%L5N7HVTXF74HH5:XO)Q.<,Q_=E"@2,=#1&6+FQT]! MO!B.9]\M5!"\\8*=Y\-PXP7@)*%)DEZWOG$C+WK'0+4QAT7 ')PXKA\=M9EP M02HF2TQV/M0JM=ST>9BYE!_=6^? LI]TK#,?=:SC'8-X=_=\6^[1."+T MWW^7>FBP"O@'0D%D+-AXM'@#<.::W9ZW102 M),DH31K.(UX\O !^#M%%$DW"UR-[V)$LT@P[)Z*WBWC:.X#SA!0%OW$/?0OL MT8D1OKOMAQV^\ EFJ.\M5T=+I%@T41$B5PJV_+QMHG/;L/FX@^)#X"C#7IV(/I,E=&IA_S?H?Z??]^]ZC.E0:3H@&7_&_@[ZU2,_'.FY5RBN@>+/[N> M@)[_)ZM@[.H6*C6]MUU!2<24YDGXTU4%_RG0@SFMC+(DG\R[E]J) MWVP;6P&\$FK80.HYO00%# T)XACX#M+251U^MUT%D"X!F:4JAC>VBX 1*0[L M5ZEZ #_"H%:'+16)AVZ7T#=$V !$WK791@[R451W3D/*/71YUZE$GEN)]RR8P1B-(/0U2TRVX]QZ2"PRZ']VQ%_"N MW7H4EK1ZSK-"C=^X^"=YC0I9#+SWV *P[,%T/TP*& '!)%-R"!GQV"C%]B%4UNG(]/QHQQ;I M\6Z L4E3:&D.C>,$? M:<-Q)8'WIC_(%7A5D!BO!!Z68:[LPJ3X2AXE]N6178IC9^H"G&RA%$X>$TJ[ M&IZ <^>'A%/B3>&4 +;D03K9!3)>MXO-/O;KW1+/*22*C_;$EI,/#4G0F"=! M0D$>M_-,UU5"74+DT9#0#01E%^V.G*1O82HB-\L8 P0*GT@V-WB;='=SV5JN MXNP*N M_'\-4E2,Q98C22W#4]&!UQ-834$8X@63-(&INH)-\3(("B*;:3FP(Q# ]?L6 MM$EAL(NL/0JR$\.A7!8\5O9M-(':KE!VQ1T-S6"<*!,9'=G])>1%)&A+_OW$ M<+ON]/=$S[5E2^!,PN6U&\MA>K?S]#4*O;" J@FF^J9\>D5>6%+90B$>=,KL M=])E3Q;]PJ <$28G_);>T0_&&*?14G41J>"BT#5E@1_4)B"M1!]@JC/V0-20=4QX_)N^5?46ZMERP9;+.P+ M97N!SL*X+' EQ))VR'L(<#R4*SGO PR^DCAQ8+R=4,#K1R(1KSMWNV)'PE_C M&\-*Q7SJ^..=8^*XU"/J('UQTZWW";1"O?V\NKW?2O2[(0(ESK/*(*DK4G;) MF'@KB6! '+N0F/(&*50A2T0C>WT>_!*HX>,*=NA1X;Z+W>[)3JRZ=A+Q19YB*3PW# \>NNV?,K^3'"CSP$FMPS5^U M[]=M$C8V'(V2XL2V.$EG"VBA9-HF/_P.RO62Q\:@A;_<:-2ZUC"]T#)S=4G, M?"-H5S?#MV-Q#67A^!IHB(4W$<(:=0CR)'2L*]EMJ: K2XA6?NV>LF\X@E=T MHN -&TX&AW&L[)U:$FP4W,8!F^*HCS*[OS^'[(*V*@T*NX%OSP:H]R8.IH@R MVM-Y/1K]W_B8E*F>BG5'U[;)PGT>N\8@G03V&V")@"5X(_0[N825^@Z=8]TT>L*H6E($\-<*3^I5U SERB$K]"-[![I(BZ\J+)43:D< M4KNYYCRT4:?QR?DZ7>@D_.;B/2Y:IBDV:2JR/O'/_B)G=1( MVB7&W)\_]G#9S(&5/%)^M80I&EDRJHTSFS;>1UH9'4"<6#N'RJ*2S72D]::W MX6KBHCGI:0-YO+I"X@#S<-J+L=]1_8,^#1NUMFU.#&FPRV5>,] OYP_OHN!< MLQ<$-H- #4''PT'L9MXR5><+:C23;_9L:V_K$MUM+K]O$)NZLS G[$8W_>FA M$9'(0R1Z:FB$QS;RO!(ZF8[Q4>T TOD<@D?_HLX)X.9WG0*V_X>\V+F4'Y(^ M;^C5WO><*'\T*>/';OKD5*H[WO3'!W"]@W*;G>VUL-HZ0'S( <"S+R5D?'[",;=F^ MQW,R;9VJ22UDH@)7D#E51_O /Y]\.9QY^$> O^(PIZ/ ?6,LD/8'XVE.$OL< MWRFCC\+T,L1^8YBW#]QTGX';\E?US>7#?\"$):SF 4610@@?:+G*3W#-++RH-O+$CO0SA\8P#G=\%N M_QP_@$X=Z? UY(ZIXQ!T5)(1V,._P\4.S'[PJ?YMCNT[MM;N^FR^8[B=CX&_ M,(#>'G?D'YF^Y7MY3?>/S\AO"4O_#+U/A?=G >R#.O!_2 ;(ERL=^F@J3.KC MJ3!73P)U G9VA_ E;YB!.3]3=6BJ]\:(P5VJE6CL)+3 G 4A[UL9N M)ICJ=J&@DV='H@Y5EX)JT!I&J)4;A4PU1,KA($W8;GD'!90F+^_?0'+&G5?N M)W-;QBZK^>0*R8 I$^J*\6OLXD0RJQF6MU)UR4D@ANQL$_*G[1)0315I(22! MOJC0'&YXL@U;+&A@L!9)C7-:A[MUV"0=GJP%T98.,[RM5TTJ/K)\D:9X0[J= M\Y6G Z'N"0F_,07,&5Y]C81H]@@S5,@ ML(;.5:23X^YF&Q5850YBRK" %(-VAP&:Q@.3_J9P"=3VVFF&03I);;@)P%3& M7?=&T9!(]B/4A6+$:63,C$VGSD4VVEP<[_'788W"ZQ*%M[B.IS1-R))V]+ I M\TB= ESH-H+93\70I B_\-U[Q9*%VYI-H?SM*/E5+7T'6,[ M33#Y@Q:8 ;O\0Z?W00L1P*K]0+IZ?"5Y'NW% %T-[ EW!N4^N^DF:94KSH?X MQ23'<5^VO+V$W7C%-ZCQY/;)C$YK."-]0:'I*1E;L2MA@-)?BH&@C2GHMK ) MTAH&9_%00NV,N@/AMQ:0771\_(%!>V[M_CIVXM9#.J17Q$=$2M!IS WT2RCI M*!L^P+C HS2[7XOB(::]F@[Z. QJ>(3=0P.ZV0C 4R/+J18A?P+=.R B\"+; M.+P,@\^>N>M%M(->MU8'"D;L;JU$..\&3F)M0892>,LDW(UX74$C^EA:)>_, M>A>F[E=>Y'FK_?D=>>QUH!4=!A$HA&"1NT&7>\UHA[Q,^-F8(F2^JE8B#(!1 MBG>[ PXI0S)>Q8,,9[CP&)'& M#;UAGX#K_,>>C"H9 WC1$TERT>JWHBA4?[ MN+7E#SR&]-LU#%*ACW%)4L'=[4.G)%IKM#E5:>2I+*)C6Y>$C(_4#SDM1W8U M26[_E#<+CDZ^>*_"R*[(>DUO;Y1'$M3FR3(QTA_)U9(@CD(F\AG$! M\,$G"VV(()J>!LE$;I.:!5E5(/M>ENT1J_C%I#N-W0?N+N---<" MC1F0O]=LS&V886_AW=WM"1Z[/YI3TK?C-1WM^AB1YC?X6+7GOF($ INIENE> M'W1ZD9 N%282I@J #6-3@X,+Y!E]P7'.ML]&@)JH.'Y"^U[O59Z>'&]2'=F> MS9FCW?P\'I1*#2_9[H0$A//JP <\$?+HO?G^$C_1E2?G\&OS^#WY_AA_5G.-VTX#=:'(3/*[0^6"FMOM(&J:E]U+5A M.SY *WS#"K%;+]&:<=J6:J7"N3J'HWIG/NV&LV/M?$A5"; V:7]9NW\>#[U9 MD=,O;Z]*W7WZU/,$]XK=TX\^\(U*]0#TL #U4;.-RY/^P2!HDW"R@KI!S)LY M1 8U^9UMDA)-MPG@6TMI0[,JIX_5KM>9L=?0<6:-:$=%IV#4[H<5RQMN8MYGMH$AYJV2!N/ M.>"0=UT=B*PG>BK5TNW''S1J,#QZ,=AX^!&.CWC/B*,JJ4%VX^W*218"8 /S M<.)4Z]HNK36^@,#4Y,$=!A"%'S 9TVYT>\1$O9NP/8'7J"5\%7_CL6/)>[IZ MXY>:CDBUWZO^)7/>+F)^W<*$L):C9+M$JTUYP 3>*9*=;I%%VQPFOWE^(BA& M$Q7:&!([P<6T=T*U1_-W6X/NW,@8[O^Q;6'0[<%O!D-QT-SN?4Q_<6AJB-PN M*B/P91R7D.*^CNV5%G8I.-BYL"W'%2[H(O&($3[!PCCXZ@&K@_MMRJ2\2L?> M>)QXSDIY RAR9^[1B3BD5ZP-70"G#7/BIMA=07V&I'D,,+I-=?N@=0Y1ZDQS M_18.?IQGNP[]5[$(5S#9RWYP^NWN>7"!@IS9?MBD(ZXA\ "LR;,PQAQ=[6-= M##1L: URO3YB:[%%E,N6XJLG0^G5)]-7+0S2QJ V_HUYR0U5KFX>U5J2*634 MT*8W?Y;:8CU;1_WBNRMT.0M7$;X&3[W;+.?,/:V!6L7:"" M(F6BEDW_=8+.FL[9*';;'X3"GOX'I3CW,@V7:W%N\;*L:ZOP4B]&)S#]@#EH M9O"_ /,;@'=O='&W'%WWUTJQ(EG)YF-^'*Z*C+"Z5_#&8M7\.CU^>F2RC=ZZ ME:BF0KRX@OY2Q\#[=LQRY\L\8);;R/_LO@ 7B-=AIU,F'^(:!@>U2S>U7( B*Y#:T-]2[QN MVKVH]Q4GZJI_U7WKO3?LGPY_V-#),IS V!"&8#N"U 'NFXXG1R*/R)Q0#'[0 MD[PX.'!#YE4WR$$:2MN=>9W3SA7T]%QT3NTW@$QC)K\)N,#?N_B+[1ASE>$E MD*_3P9AJ3O8[[),4D?*UO4>[K_\GL,(T0K1")P)%7/4"/?X@5KF'LY&*#"=( M"0>^?82^ 4DR6L"#"#)9P(Y!ZQA;^L8QLTA#01BP_B5QE34 BLLRK$N;X^T<'(]/ WV M;?W5=><;^"2@!J]-: 2/=->JO*>CXJ]&ZAYY[9[O-)3?,:F3U$ #8Y@G*$;& MU)H0=W$F&O8-D;"O$[UV BVD7SS-5K!I3A^]BHJY-._(5#M ZK8LV@?)\'TA M<",T8[XV8.((8>Y]60P]J8%_#!-YV%D;!11D X=Z.WNXY_>RQ&Y"J( MH #QTH(NC'@G:<9Y%0:1#99=*@&)F@,^G)"2':4S!%5S!;*SK)U@YEZ];R\0 M=. .X7=X<14'K_'J>1 60]@B%HVIO78$\TD%1%OK@>N-4LY!N,^>XT(3(FZ$ MY0Y!B!M;A<:7=LX"I5XJK;S>&E=3L*=(4 ^9<[H>'LQD!JD;6]P]:L3H_Z-UXB&K3+QX(BRE973J1@> M%\=;:P>A3DPNXBF9>YK9&XX]1RD6C@S'0*:6*&DJ"G=9"CD7H/&[[4\B)$<4 M1)>I!)D7,0$%GM_1Z7UGG,&=&C=H"WS!6MN MV6;L*]\H1-5(XAD(1%40+'T7 H5I803$^-3 B%,%ZH1P,X?>QA5X(>3EZU#W MCL;>1C1U35"*=8<.NQY3-YW'8V<[:1IO @[.*6K2RS 4@688[E(1R&ID-($ MI",6B!\@>)2L/$> /?$% T]4J%5&1C),L3*@ZB"U@DYC?W?,%"@I:/2/[1D" M0/&&JF X8 @O>5&FR-QSW^[BE_N=DOT(YJL()LOX(4P_A.F',/T0YBXH^3LA MS,@M0I@YRY7W^+RS$V3<_%UO*O@0>7)YR12SMY.B3_IKG#1D>K92-[4WZD4L M\+VT>:I^D9!.<#^#%2_!.<@-.T'N1+"/M"+?UU)LG0G4. 6YP5:Z+>\T>SL, MP).Q/(ZWS>.S?U\)W$\X78IH9:=4V].<3MT>^'2B9 M^ 1@PC )G#J>0?I>^"A XIV;684!B0\:8FHX2[.WB.TT@ZX3K9%@N5C[.-+= M"*NK9N_CUADAQ:6S>RWC'5Y$B03,=3 M+9,8YJ!!2VBSL]WP(Z 1<'"W;5-=D2FMGM6^;H9/KN6QZ6GW[#VXP!Z=";#> MTS_=,))#\E@]K^PV-[=(P8V$B"MBKNU N4<"/,G1QHKE4-7=;.,E$"11#:E* MY]$F;2[R4"SA\U?L[5QKF >/@=L\8PL.DD[W*AQ4W;9C28C;^Q3R)48,3!@= M0X;AR#5H3$_)S_X44I?3[\"MY4D9YT]^PNQ=UC$PE0 MU1.R--M[^1#HV%=!5-Q.>"?!>#J-R\;<[KT!FE^^ERL \V&!V?83&$4W3Q@* M&EX]!+G!*.[]J3&K%'"/NOW?G6Z>L\DHS$GL%X!%<. M9,#NB8J]Q^\)7$A,$.R*D0!XR["P(U G RW5U_,@3J3[CRWP#;@)&#O\D2?M M0TQ\#:5;1XAXQ5)/ _%J3XYYR_;OQ)(3 M9-4[9_"K50/D #Z':2VNZQF.#]>U3H23NZ8=1X]V&I17L7 34BAOTHQJ3R@( M(_MUIK#KU3YP-=)TAPT-KNP.1E!81$PBGC@_11V='D@#;4>W[SH #K>X!WKW M9O5-[X8MWE]#W9-O[9ZGXUW@ZUC$ T/1K36@Q^>1VC+@]IW((E,QJ9CZVZ8S M>@W>#_@VJ&:GDU(JIQ)G=_C^0R-*QR0Q"2W=B+N]D=#7K 9HV^6BO,KPX@ZG!C]WT]CX=RI$W /,G5-\)+?LE4/2"X=7<5_* M+70II.SI+8X_ZK._ V7"K1&D?EI ):;/$5&?]M4I&B8 .K>W@YD#B;18AD@/ M#YV37"67=6CLD4CH?3>CBU1X-ZGN4H#BC&OV/L567&CZDDN$$214$-A96LF4X]'4J@JF[_8C7?J?3O5?_ M?;S8^T9XR'F+\[WJI;-$N[+4SB@ 6!"2P_+3CBJ2SV["(Q"Z N>Y6_O$8[/< MF9F\XB?(K> T: &G6WA$-3(%47;=@S,UY>Q,2$ ]1M>[*_?6&WM+3YVA]:^$ MR7Z%)36Q#N?;?W*U?M#@@T$#U@\:^$$#/VC@!PUN&P9X[VQ!:[M4]X\.0L4\:GY T"<&)$TQ)3N[&>S01YQ I-]% QZ%-=O#I[!G3YBR6.MD. M;?6'0(N:!X:M='J-##LCDJK1(TA8@70/8A4ZIR)F!-=D@;X8&K_152C^Y]=P MN@Y5Q7):&2"L!*D;A-RB;?I28L_C.SS="0PX5.7/+.=WVC1@G=[<90N37'^$ M;0$#GH=?"VE<6)_#MMD'<] [K=P@4E?E4EEMF\RF6$[D-TEY+4@#?;(W M[C$4^U/35 MH#?3'AN)9V;!+C:]A9I_*88;?_VK' X^=-*6=X$5P^T'8] 4*+#LW^'/AY^, MM[0+P=HXSPMV$Q-XJ=%6J60C'W95![9K^^C4RG!4E>SMR?%&(OY%>^TE[)!3HXK<'R()#79*:(C%:K7YM7W!\'^!K?9O%,;8^+@ ML&9C;M)&6DEC8C*/RL+6N":N:R]932K4Q>&"L\3^I-$XSD\.IH@#U# =[R_Q M"XWM+U\U!-EY :$*4)5)%:KM9NU!<2^&ID@)S'7[0Y\YXH6GCE>9!NMW\3,WA7:D6D-S;,D[;ZG' ME\0[B0$ *,P6WA"YXV@CERTL7C=)+SGJ'_=&K#T3UT$LKL"[;[SQ;B=EP4W8 M=B)J.V'JO'>_\&A(LD+MH?.NGU$%NTJ$_C10Y!E2QV.(XM,:#DQ?(?Z;QHQ_A$D.X>2L* KO?&TV3&CIH[7DZW;-.;=*E!XTP0G1AU^+U[(M6- ME>PR-B%*AC5,\DYD>+I^@72>VQUX;*\A0)TDC9KTS('7D0S3@&8-9;Q;TMH) M?J+)$. 3L4S[9*%YQQY]G"H>7I*C<,$Z[QOT","&P",&MY/IC>:DBYL'00]D MY!_4%-&T!_[(PS2@/M4R,%EYG[GG%;9;T,$]5SM32!M4R#_&)![<4\YW_G", M)C!==&07<1DN/0&FID@>T4C+T/&UOM4;@;1[,C#J=,/B:62+A T-$KIX739O MU^QMB$$$1,B+HU>/QGC ^-^QF%T$KSM)(":MF3$]A8-NFI5)R[9ATY0;1 4$ M NGX!'Q"*OMD59E :3_-!" Y.QC!%5['+!1.!0-P])!UYC#:0.MSOHT$7P-P M!US= 3@AEKT:Y/\Y\['YNCJV,DU8;$D7.2:^,C(2TW]YCL?V==+8!\I?G6'I M64^)I:-WJGK3)7N7M-Q3,^XY-=.MQF19D>:-3ORQE!$>8ZN$).)3DXT_L(?G MYARHR\Y.N@R8L&I!X1095$K]N-(8J\L.&C,AM(UDRMG2K>"$NDSTB9'9G%1( MOT3KXV=NDC>PMLY&'R)OPBGH="HA757/)4U.])B^B)N2];@ICS>89J_=8/I4 MC^W]0,!5NFQ_9I*3'Z!X%: (^P$*/T#A!RB^:X"")V?I((62R5$J.AHPD4AR M$(V,8X,ARZ(!FTCQL6$D$@XGDG]1DJ!WM(5!0AC(Z5EM'N*PZ>1 M_(32@_#A,U%W6&XFA\EN)SY*=!8- VE2OX&O/'CF,_=L9/O#E<2)L!M$!<_#V4:&?J98;+Y(HA$+K MR*/>5MD&OO+@F9-JVU19;2HQ6>6INRW&.*962^,K#]8Y%6=B2N^T2TQ!RA@O MX5EI.9M,!O'#MXO-\6/XR7AN,?'\HSGC+5U)K1KXRH.W*T9LU!'0TBAS@7Q7CE9I6)B,-^HV#;CT /C95:ML%&=20ZJ)D4YRU6Q' MGNA3'>CO]>4]CUMUW[YI0<\S1)TU&=HLO06]TG.B(<@JY,@:;?S*C*P*TE]. M?+C=7IB5_G90Z[3BS$;*L,UG5)D>0 #>"C-1UPS[>++=KK^&'A"^\,IC'YWZN- MB4<4*Q%C512(IPA;L2)I\Y+EC2DV>2XZN>?D8HDZE=Q+-1VKX/HD&7NVS\WM MJ @^-@4B5Z[O5< ;H-$2^ ,* Y;8\%9,MPF]NU5R 9U28?O/=YZJ]Z<%['>' MAV<%/_A*8ZJN%(]7[,U -UP\QCLW?A%L7)[;[?3*VABH((_?[.5_+\\#&@X9 M?U#*-8OA"?/"6.%T:J;6EUEIUK@0*^_9JQ^PI\F=S,>="J;=Q)_:B'0B&?B& M>F,.K"Y3=]YJ/XVE.WIW+#9Y2BSR M$(__[XD9:1YMV_-\\'(#J3D@<3Z3EIV_J+D+ ;5WS4Q;2)$7.Y?R0TSBEHDN M;%Z>Q9>TYRLX.0KOW6GD#\F4CX@[0$3X(>ISQ#T@@HT_)'U$W $B(@^^9+H' M//B2Z4X0X4NF\R+B_0G7OZ>T7F_78$Q_.OYV47WQ^B.VSPL5;#/!E__?7^&_ M/LNEJ8?P9W41\67KW MLO1>U,O86YPRQT^1T=L0BF)S/'+SX^9DH.YO4:&" D;9&KPR,OYQ@W5_P!G> M@)P@(+0?/;P\LV3?BMF=C>YOO<,]PK\*OU/?TJWW_3]GV EUSMQ@)QY6)<$Z M;Y0ZLI=H>NZJN$^D]W]DNI6;MH[9+*V,X!]NQVQI,\OK.A1B/\,4G]<%<6UA MD&(*DW7,G->DKBPIFVFTGF^3=+#(7_]&X\%4.':0MGXV9<]G8)^!OQH#_U[A MR34XN%#/LW6UE.U*UF8DMT13:$?Z$\S!<:QG1X*15.($!W\UM1LJ@4/B.D1Y M]-0FU3&DW8\G^T@^7DKSQ.MYUQZR2/IB\WMQ/#')%Q]=2^>]# M3-[.O'U/TKRJ)CJ')+W?S=Z]7K1%NCK"S/9:H.YX,4M^/9"<23TF%*2YWNZ$ MN"@[2\QGF60X/8B![D.J)L+_O9CRX[.PS\+?BX7_2#/Z- ]G4L/EHI7O-;C- MUB;F5EU5-M3GJE!GT[$PA[:=?K60KLY+:9 - M'W9$_8=4Z%RX^ELH2$4@.U5^,$] MMB".T]OME7J?XV-.I84J!@O0)&60!['N M2J UUR&@-=[8]1 M\L[>"#I[I(6>F$8TNW^FW?!L;ZK1N^8+ &,L*KPBN*\1%?M%]AS )GT)G1JQ M!S9[/&!P-P':L(8&MK'@-38Q&COTC(Z\3+7,_;?5=S3\&DGVZ\XO)0XJCT\T M0CF9R@#'@S9W6@V685;/5,4$5)R3B>!S&OZWIZ$T]BO""%\TW0<>V-0#ZR/B?(CXW8#@>TKKSRA# M."V4OQ8,SE">DWQ(G)2.-R^_.7]-JT\!>ZFDC^L5_7EY+=5$SY?G1I]8,(WUQ.N M6YU*^>#6N3QY2U=$T]+IP*ZQN(:_SU.:FKA-7=3M4Y5NO^TS)2)%;K.56R<: M';0Y!%_;LOG#EE&12%SO1_.%E%0PG]/K5KR>?6Q> M4T:5=#YL;.8QKCMJ;%"9-26Q;=>D1N/!2#)Z.6W%Y^R[Y>QWPKS?@[$_J7E\ MD+/7[495SZ1Z<0[55]74EA<3S6MJ'XT)G]%8;2A((7/:+VO]:B)9;=!*U6@T M&$N=XNROZ6;9I0"+>RG OG7UE:VK<^LK/]#&^C-?B\M6WL1Z6\IEAWTY66N- M7SJ+=+DLH(HXSN=6UY-RU5+(JH5>C DGELOM:&,@K!+FA!:(1H+1>-QWMOCB MP/>XG-/CQA7A 275;*/2OFIDHW7K^A[U7H97IDQ.M<16\WHNF%% M0JINUX1&L#43_MHNEUW%DT4J'6EY%PK(@)+S*3H_08Q]49GUTUPN9^Y/D:<, M0T18$W96&W<,E#8,9&80?@I*"X(UMV0HXDS/58R;+:D-/-8'D1>M+>ILHIU6 M:C;*;1)/E6TE/4B YA$/AJ,7ZDSA\^==\^=/E+BV%0 MH=K<%'5D*1'@SSCP)QLY?_3EUIIQVL)+4C%[(JA;URU!LMMNC46HJT>.\N!; M0&>W@&[=C._:#I-;[_?6$O /8D(>+FT3'B6!:\R@[AVV+95+&6H^E\[..2M= MJ/'6LA"O7M.!/%JU7OHQ-B-S!3T\3H\?]<7(G R2U+42229]UXHO6,[L>KGU M=F\M5_XD)/5AP1*/(:1-QU:9BT]#:VF0[T?TVA5]MO)TGD\4\NQ2FB_EYC;? MW5;5Y0H+%NJD29Q*D+MW)XU#(0'2V>:O?UO6T(2VJ+[M]_UM/]\W\T>^F3?E M")%C'[<+DQE=SU^RW%):/YA,' PHZ7PSM1TC! M6P]5N%C9]JTW=FL+\NZTH[&)]$\+N]"JU6>*-7,I=<=LN=HT4^N.4^JN\K@]BTUF^\-RP)I)H/!4283E7VTPG?_W+ M/!P6#08P"F4'B!<%&@MP"@/0/.*F-VG4%AM]F&"RK48MOF";8J(YN0G4ME9A M&E\E0YI4ZBYSK2WSV$Y,&W_]RSX<1K1=J*GC?SZ_V< L'/48C%2ZL)'#OL[PW_]GKVNUZQ6!P2BJ_LO1 M"CS0LP$3)@K"!(5H4VP>3K%?O+SB-X:]UT3J(>(H'+]L7Y\IWFW#;*356#!HSQ?8Q'V8?$(/+_@;DSB6#O)>AS[[J[_^;9/Q-IA+LRJ94[,;0P52D4ZTCN\5R.9>N!@K-6J<>#!2KV8= NIH+M#J95C%73#>+7(NTECSU MD/\[U/_S[[M756MMKA5HUP+96C7'55M<#OYJU\\$Q\N:) M=!\,1]$P'Q92@T0D,1Q$V1@:#-G8:,",A61L.$PQL63R+TH2O%L?,N[E$:N$ MHQS?RPPKL:=)JCM?#? A]OI*<6KH^ A(I3MQ*],=SKI;2>$G^,K8ZRNSB:%1 M+->ML50*\9F!NGK*<^OT('SXS&ZV7NQERO*X$ZXE$JU>K=RKQ!KXRH-G/B]Z M0V.;36T[M:[XN*D^Q>/C:@/TDM=7"F+<'$W;N2HC)E?]S715DX;AQB Z8%Y? M.>G$=565IW-N$2F6DJ-9-_0\ABL/GIE;Z@W^><;K3$EJ1,?U@;9I2- L[6"= MR6RN*LPE92MM&LNVE=0B4C0%D[WD#.VL&5 M7"J/,O'-D\GPCZ%H;;5M5OJ2G3:[?V6EQE1CAM@6I/A4%^16+IPQE<8@=?C, M3*A08%O/F1$7CV52K2NQ5.IWT M2SF3.4K^XCHVQQ"==9GX2&]%VK/1N+$&ECI@OHS&)MI9I1KJ; ;38>JEM8@F MBQ@*V(0[H%4YP332Y13#S9?)VG)26%O-6>,83Y5*S6BFU"HK3&W8RS9SY=+3 MDE\=XRF1'PY%*U%.22&EV9_/(_'40I_@*P\6FLLN1$6MO40[8K139A:Y2=*, MP96'"ZW7'V?5U4NIP\P57L^IC_5\?7Z447M]HQ(?QF-#J149CJLEA1-"B\DQ M1D7A:528=8UPIY8J=5^JO/9L;5?'F*JXY*29O)QJG6Q7:C]ODLE$,0]7'KQ] MS,N3J9B1M,Y<4".L_K3(;2-PY0&8'A%Z,IMZJ\O4A%%,RX6&HQY*TQ8E^U=* M0G_PF&^L(YUL/=-(])*)B=&$*P\ .LJGS)PD;C$L>:&4\\36H"\?R7;,NJ];'@;E;+-\"89UN-LL012ZF"A Z:6 MSD^;^3JW4%ZZ2Y[+]\0<2*D#T&>;@Y!1>BR^<)O&NJ5F$F:HD((:DV6Q:;H72[JG4:M#KJ%4 %AJ\Q7"_9X1,-L3A-#=B& <\\ 'VB(I:W MTN"EV=DT(B_I!%H_\EA*)0YW-$PH(AO?Y&*B]H'IDE%VEX9FO0#]@A5$$ MGZWC 1L?QP?1\4@8\$E!&*30,)4,QYD8.T0'>*W*229=44=,(1N:/!85?L5- MCTJ>B;0=C!\?*]/.IL[6%[EY9-:OIH_)$\E2A5)49*+2PX+4W>2MV>1EV9U,C@H)H?M4&70VTD+BMT(Z/5-6[<4R?4Q(5#JA M1*S+\1VIIO0K_9CV.,LHJZ-"(E,R.H48GPASK4IEUIL\&>W^(T@S-OKZTEI; M379>0IMG+A19Z<:P\_3"=R;'Y$FQEVU5:XUN5 K5ZKUBX6F I*A5+>:1Y/'!5QYN*<":[ 6EVN"<5R^^G M55S==KJMU'2\2"<*FQ*Y]&!/6WXP9K:EZA.7[=:?9Q%#ZV:FDV.*QZ0R&+'3 MS;;(H34[B+>72FTQ \7C\*'"E#<>];PX9?A$>X9YK\8I4N.8D,RW*JEB*R7G M.7Z>:V5&L5I*GJ2/R8DF*Z4ZVT2KRM121FJ[&I6,^1/(B8.%EL67?D_40E)G MP:TVZQD?$A=SN/( ^"F142LM+/&836,8&50CCR^1&4B4 ^!7Y9?G]2K9FC+= M36NS-B:1S2H!SSQV/#Y6'JO#1H:9YZJY<&]L-)Y'1U6D3GW3JCXG2QI3:JVV M\XPP5L8S8'_V0*8\5F-B8Y),%KAP>1SGM[5.H&K4M(E4J"W2_::1Y$*3]#%U:MIC2W)D@/6D5H0OA-.) MT()?K(ZJ4V&^DZNNA)M3#VAW-AFG[4 M9#8-7N/#T[2RCD9*_5"6X<4)NYVVV-3C\PHN/7U ML$XN=4E 7/\2J(UF^T3I\-IV>V%6^MM!K=.*,QLIPS:?464R@$M9ZKPC5EW: M?._J\'D]-N>8*)P6!!VO/5#&"ASXLD5TQ0'"+6&*1I:,:F-[&9Y5$"_$X2#A M['I@)*1R*2^%4_EGH2HKI1=EX@\2OO8@87\FWN R+"#Y&$ MCX@[0 2D*?FRZ1XPX-'=GW+$7&G MQ?+E@[N7A@SQI^B^[@1B$(=?>[;L^280 M)[_V-&9_)O%OTE/42[^:$KQ[8^;JT\IOLTH@M>]1$CTR["&$$N! M5'55QQ@USC1#)WD'TR-N4?@&#J=;[_M<1:]W.#'C(?85"UVA9>,OF^-:7H;+ M K\=F^?%30;]4GN]Y,*Q>/]9:S?*!C.A8X7#X6 R=:%&93[7?G&NI7[6'\FU MYR]+_6VV[8>7P]C3>CO@T+"0JF^*[7R\OZ)#@"-,D#W)ME] PW:4AJ&J6.>: M07,-%?DNY,LWW^2[X>?O(FO86#DB93KA::O5+*1[G6RF MU1RFGC)"T6K88WR#L>BIN5<^H_J,^EXL]KLPZN7Z5'R44^OR0&W,4KT9TV*G MK?BCD7M\;JUHS0L;#4;#9^Y^?@=^!6ZNR>H&HMDJ>V:W^ MG(Q7&TPW$F+*_8:Z2?0:=)AM-,C&3PD5GQ._+2?Z;H$_.M$_Q8H<8D8YJ]M" MG*4]E_AEW\AO!O;<6CC?3\V5_IK^@28:\B8BA[UJ3I'N6QE?W,JX6:3AWLT1 MTOPL? [1[!/XS]JW;V]?*HI/3Q\8EEJ#P^?M@WDB%^+UP;!I=:P($V;JL;:$ MCW4ZMO3LX^1O%<;G!0%3EXE?1A/_R*GLF]Z_+Z&^YY0?^YB]WYD^7]ITMYDP M[?(@%DKO6 MJMXTX7O+CB[A>JYQ0B]CC2\-!)L+ZAKO/QV]J$S^>CR^K M6OP.(_-Q\7$3291?.J@6>A)1;RDD8RLZN_0R;OU;*]%MF(L."@=1/&1ORRW? M/#JW>73S"357K$:X^5YO+]W!H+(HUFG<])M]BA-;;Y;8WG9KE;9/JM$?]>)_4@JJ.5J(LWZ(YJO/N MPVZHU76GT2PWN:Z4K<^'E4VU$I[Q#;\;ZI6ZH;Y9T)U\2)SL(.0W^KI6R[6' M5-Q'Q%T@(NRWY;P'1*0>8CXB[@$16#2=;"GF(\(733\+$;YHNA-$^*+I;A#A MBZ:[0(0OFNX$$;YHNAM$^*+I+A"1>DCYT_-S'<,O=CC[.+\QSM-X.2"A>=G'^,_"N!'X3\#'^5EPSCZP M]ST+HG)\/(BOV'P-Q2;Y&@1O]^R_A##[5@W[_U#(W1@6/A5\A@KJE@[SRU$ M&M3ZY/#3R2$]FEF&.<>W&3XQG$7U^<+$<#@*R->*OH96=!6C@&4_/<,E]1"^ MO25XK1DN[[#"S2L13HF )M)4G91[0\KYK_.="?$[V/CUNS20,-#/VS<-"/^\ M?=NZSP_FUZ(Q@.XP \H %9)O M,EAFUKJ4C8Z2W*:5K=51C5UDLNE/EV@[U;%'*K*W:2DL=K?"G-O,DVQC&:J6 MVWR:SHABPZE@)'&JM>R7#9#[7/J%N/1\#5)]LO/)SB<[G^Q^(S?\>^@DN\X: MGU5)],C6,+KQ[) IQ)]Z_>&XIPCF15020 RGX+\1ODZ9D.ZZ654Q+!EB,'[DY?P>C%OWN+RYA^,-3]ZM MX7)K,?E9T\WEW1W;MI"^% 5DV.(SS9HK20"\WA\Z08,Z/V #\VF(A?9("?[R.],T[R)F8\-YF"EOYG4KH8CI6ZCLY&L:&(^K!>M]FJTH@-OV0@;9*-1/QCJ\^L7YU<_KN43 MKD^X/N%^7<(E]N&M]W5K#>EBTWQ.*$A(S;<3S,LRSBRZ;%SN5V+%3AH4)&*^ MO:LA^0,\+C# XX^ES+F7<3 UQ+NFD6AH,K_Y)2JRJ*#0$&9U[,T@@7OLD4UQ M>CM=:GL*W0KF^,]-P$0PA%;$_Y_8M!K@S8",>,,,\(IB\;*\ 7H/:*J!08"% M@HAO%'5PC3P$O$\2\+\RPL\C3Z/WDL=#'%X=>YYOP$<3WRK#6T;\QOD\%G7\ MQ1Q#8PI?P7/&JJ7C3V,1&"BPL'C=1'H \<(TL$&\'C!5S)OXJSD&06 U13!B M&)ZEXX7B5>!EPY0.$=_K77=1"?!VJR)X@KG;!CD8$__=VT 0KR2@HXDE\SJ& M!EKRL@4CC=WWH24XBDBR@2#J@C4WL!P2\ 53?HD"JB# %)\1?@T&[1QO%^,' M"VD3O;$^+[3V8>R\>D26+-#A0 &$)9HZ%X4 4I:BKBKD&; 8136=U^(=C%2\ M(OQ58(AD$2\9OL,PFJL85K(H(;PU?*E"+B'WN!A;8931Y<$$8X*^BM/U)P!R M\^$*4W2.L8Z'0#3Q]#M\>0+^;N&T.IAULJ!#Z"/L!"-YV"Z&/(%W)?'D.^ MD+MS!/F:W/UCR!=R]XVAY$,T[&/HGKUO[$/<][[= ZM$'^*W]$?[K/*!XR;L M"[,[QY!OE]XWAIB'A&_VW#6&H@\I7ZF^!H9^L_7&NP'KN^Z(?YG0\-ES$X\V MP3\;$-RQ +'/#LP(1[_Z])3]K**S-LOWZ61')^$C^>I?BDZ\TT0#9YW#==K> M_6*D\CD@O&=K_@@@O&?._1 @?"O)^3D@O&>4_ @@O*?W?R4@^*KUCU6M/S^+ M+OS 7O8\^%.5J*"KQOE&#EYXSO270S_SD+RL_/OCN9."8,TM<'N,?+/IIQ*! M+P,NB/[4PV7;W=RC!/A6UO"?.T[8R$/LSHE@#M,FMZ2&[;.39WVM]UZQ^_;@ MY>&%%-XO["/$K& IYYO(_L4]Z]%B4] ONRY?](A M2OH7!M5%)$_\H,?/EX+)[Y//GRKX7QA8=?Q =>2K_O>F^O^AJ7N Z<_:OBS[ M%F^\F_J5NO14JH_0_LF.+W^+"A4-YE2U#%X9&?^X/5^^MROD;/3QINA\-[OV M+GPC[Y$':1KUFBH^)Q]OW66?=A;Z=3;A=X/]W([>/TGCI*3LZP%JCP^N RG: MB\0'U4QW/DB1\G$?4!^M"?(AY3.?SWS^R7?'D/*9[W=Z"OB0^K!? M^,M!ZNI6'ZV'^'J NH68"OO,Y^N=9X44+;_P(?71VNP?!*E[CVLY/.KCK#[-*ZMRZ$G=LIT.R+W.*J'VFQIA=D]#NS.1I,7FEGZ M$V8,^^Q^K^SN&1!\07YG.3[6-9;Q$E/(Y :"*C6:,75US.\S.J1GK)X<9F\D@DXI=AN.OD2MX-H[_"JE_'W(SO3W5[PZT6@_AAPPD_!I9.J0B M?ISL.P8:6W)9'".7O)_#1G^[%K)KJ9O5(B*#2NN\F0;RCO[U+_O '(QN_5\Q_OXM3^@?N^A^3$+VS8$]ZK8MXS;*$G1,/2K3"@B2.!4DXF(QK*B!Z2+%6Z^V*X429W<:8 MQ'HI]4%NI'P%Q)<;Y]KW/62W^H+CPBI(I_[(IMI\%J\IQ<:+A4+CL2U.L"@! MKR760>*7=%O>FJ>?DYTXLS%_)A)IAJKO'$Q1-<&?#<\<$7;\^E+";M8; MC@61&?:E>'3%M%+M5++,-RXC[/AJ?U R^UI9"K_TAHJHL7*WFP9AE\3"+G[^ MB,W-PC-550D)ZEQ#)@KP$QVA.68%PT]]OJ=TBKL[C?S,Z8_+,+K7N;)++/QR355""W-)?J]PF+= M07(X5IO-I'BBT\""(>6K$+Y@\%.]O[]D^(V R:)MQ,%% MZ4E\M 9/G-@RU)-D+F39^6NF]L).?G^Z+E2OX4)XSLT6V.2@-F!JGC'KY8:I?Z*ZPH(% M3#282+%^W8LO:'Q!8@ *3\A487Z[XA3*^8#F;"I-2RVHG$9[/F'"H+G;D1$?F M"FDL:D@8*!J,A2^DP]Q#W^_2D> M867MT2C,F4QG7AR/IU)[GA&:%\IBG8T&:W7;7888J]AN:(MFIEM3B!I/,NY/ MIK'Z&?=W:+KX&?=^QOVY,^Y/":OZS,BD$CW6E.9M%&NFR^O4>CNYC+#*M2KI M3*^*$+/)3]?KO%;LSE946$'._05"0;<.@K95DY<#H@N9 $\PY:?:GS^A9%_Y MCV#E?Z1: /)K:?][@#GCX-9[W.NM+9W_G[TO;4X#@ERXBI&YA.YF):EEZ5Y MGED-V@;V$= 6!1M[B$>O=)/[9T\%_Y-=B^\W[YM=)'#S>7]/['NS.P5NKM]W M<8/ >^>-@]G_.!)<22XQL,-Q[5Y9ZM+J$;/#?_@62>'QP/69$+,MW09>?O_^S.YEF_0K*IF];C M!DWN4,\G#(T5;@A"?0M(6D@:P,<_2OI"6MG^7&.),+-)T7G< E)$8()"9/V+ MV'F-B'+$LXFT#.W0S=?OD X&SJ/_L\UG&(-N/S1M%8G!HW%KB/3K@LIZ;IL7SXJBGV?5WWND/^*^J2OPRW:^ M6$QS92);KPC5!R)?3H4)KIPF&D*RD4_GN7J>;_SW3_]\)__UK7]^O=JJ7&GR M#:)9(5*5M6H%/-IK@G?9/)EKIS*V5MG>^G\^4D]'G$R&'+M:STUZU,)$[.)FRJ M7^_U6W)Y(=+'+25)FUKE1E(1*DV]452>)"7*#5$\^+ EWT[4GMK=&B.LJ-JJ M:%NAF#9'+8_Z[+>$3MYUJF62S0I/ZZR1[TIM#K:,';9,.VVC/&'F8VTV-N9- MGMNP9A5"! M9(>D)E'*+&;%US+I(OX?]=FLC6OC%9M8:.V948R'"LGYRD8MC_I\BG3S!;LU M5H55@EQ)\PECUA7NE*1TVB3H+BI/:5*JY:U5A1LW!C;BZA&OLFNY)R=MP^'; M:[7)S0>\69\-8\3W1=4,9==[(D2S;$6K\ M4\CI6N@.R*.GA];Q0;POS:/:+!.56Y-ZE3)$5/SX>)SK:32W+F2CVF0LK?@0 MYP"FCPX&'[540N[ ,51[0=+4N+JJ9AOSPA@5 SJB_#!9M*3\U#4%5:C0_77# MI(H:*N^QH?S+*3EIU\)6#P63H*G#P:2FN;/9-%+MS&PQU 9DQ0WU0ST@K[(3'E28 R=;Y!"$8! :@(!U(IP;?A\&<)Z2350;@^P@.T04'8 H6QY MCSF%(GDVX9C$"/(>'+0%RREFODV@]1FVFTN6BD&;WU7?"1,[S\4 )/:OC3N# M$R*FECFTI FAVH1A.O '-D1A*!B)@IL$?#B:-@%?VE,@NQXV(*:N!1\+[/"E M,>";J7F("G=):P'9'!JP8WN7E.JS'A&230#5&0'+3Z5"\],AV9!7J'JTA-\2 MDBQ[72(20%; L=D %98P\)$ 3*6^I$N&# A[!%!'DD,,)-6";-!=L$=Y/"Q+ M@4P?H0P]&PX(/^2Y.?%3#8/P S&$(N$-R82CL_]&^!NU?)X,%(<1?-)(@O/J M V#LL@W.39;L$3'0S84G,OA12#;.#MQ&T]U$H@D34P=-WP(C.&V/@O ]'"4: MUM^$9"@G^[4=^(]'9CCNLSW 1^(YHKFB22.Z'XP=4P8;U*O*VLN"53&(-UE[ M:M?:[[Q[KJ5Q;-#KJJWMY5CF?=VN0Q(V%M+T(&WSY**0A80K0B(F5_[:L)N@ MN9_!"4F;@93UV_F=9^B..HJV1@Q?:,>67#NM/ZT3^[F;CXBS$SCMD2*M4 (G M,,ZM5S*8HN>GX8]L;RTJ2Y8E)C0C9-1GL9&02I5#$[*8!75[@2Y5G..10-?U M@4 T.XPW/6#IWZ@1]@\!DCUH$J5#VVE#JCU?S>BIR>ZOSRH*,K(#=8E_L+6C M^_U#"96(*=JF@:]\O3PTK;#]!,HU'-M/&P"B;,+?L0]0C$XXWZH#W5[9CT#1 MY+]I:+")2A^ZPAX/\NG,*EW@@ICM=0%6BLPB?*K"+)]OH M5(>C;\#8R+OXFD%TWYW0EK4A>H>W;F\T63<:W:I6:<<5CK/Z@]($\C82CAV? M,/OK 2^T$.:I/L@+5J/?68U*DN-:JK,Z7(S:;*%<[<>EE*"VEDY67J;,6I_[ M\:L!URYO-:(3>#5B#U>C,,%A9%.2+'FT:17QUB@P& #90\CGEXBSEGE_C9*. M5JD^@-2 BY6T]!]H$PO8\-(6^]V>[#L-9 5!SM0N7LQCN(C$:5=8P%;&,!WJ M0$9G5=2!*N/A0B>Y*2U/6M6*KH)2:,3(O%0Q^N0P**9ZW(;6U MK)"/BY$JC_Q]JONC-'-\V@92>X$\CF/]^&U2'Q+9(_TNG8+9/9@!Q1CJ!3(3_*?A9Q0RYS\IF,"0=Q6O:#=1#[; MWM;'";]RL__HNV3."*HB@4T,=!0AKE(.M-W?!=GW[]"S?$]].X75I]?*LU;^ M4"PRD%L[^4R55+YI>I+%VP[L'7Y6!HZ'>YIF$C0MR; 'P()X_J3"KD9:NI1Y MRK#"))^R.7(]S7:E!5+8XYJ7&Q3DUQDAIY]:=M3%6H H["Z#/-[IQM#1> M9?_^: -P5YDW>^6JH:L&"/51_'//O2>WVZZ,5U_1U]WF7NC%?FFA-EW'1BJ* MO*S=^,O^&KT)INW&F+ M@]\-3!U:4_L1T^;J<>.&#,?BZI"W!_AJ1V(:VPA- M99!1#X0KZ_+&_+U@T/:G"&\+'D>;4O&"-H]%10J,552F/ M)"&=Z=:N%#O>2Z4XG^OQ_$OTY1LS/W#>Q7:U\))B9(["46D$<) 8ZU>:K?&^7-Z&VG52/T*V?+=S:"=_HW89\( M7&Y(LGD?0IE2CUXF!K)'KV9 ^*%Q_.!-4ZEOF[KK@*MF/H3)Z"8M9?OR94&@ MWBX(>XDM?WC0]OP]K0%K;L<:Z'F.0++N2!)_3-I.7/[]"^UXC1V<-8/U4_ MC=09F:XM&8K]-SJ ]:>6](:EIEX@0_[,.82+:.\@WEB-*N9:%3LAL+L#P MN7-9XWWG//H0<<79/?='B,N4OZ9N,[<7J]MZ,V10T;#]Z7ZRNO?/6RM>95M? M6T]4LIW-\JVG0:7@\G03.-.DP5I/4U2O)HJ*RAV?<+VL=__(JP9[3[4P8H M/@1#?SLK]4$1AS]'QT;YJ4JF.SU.JRQDV^R.^$&N>Q-TC$_U$E"S9!\F[Y0T MNA)6OB?V?!PP_G:S?BVE_$.6T",Z$#\_*SXN/BMF>:NN)Q92JQC7A7RVO>!! MNU/N&*.EJ9"H6B/$R1'F^ STWQ<#RM].Q%_+__ZBTWXUM_I+J?9'@..WZK:^ MJBT*(3>QY,&(:FE2J%KLIU%]70B2X_'C2D!_'\#DBU;^?ZURY54O WA7+H$JJ^S*51P5&H(ES!XH=ZE>EA7$14K ML'8OY_B0H9'=?/V-1,V2FBX7WT+:L1<>BV@M?KY.R6-V'D5'PB MC_M]?A531:DT7CEB?XC*FQS?[;97C\BKS?J62C7W5:%UMR"+7W_4DSP+8"E& M]6CAHTV%D+8%CK=S];ZQB3Y 4HP%%':S6VW')SJNVH&TX3<+FEK0>W.V#4W-PL1]H!1_Q*R1D/\F'$/SJ[RM?3W*=DVM_$, @X]_Q M4.&',^*U#!$JS$0"5;EK#L7"\5C HGMF$;1FMRQB$W#H#68N<GZO'\5X@^+1US\_>NZ2P=<.5J @ M#_&S^!SB>O.)KS]=N#^6]7^:-/_GLD!#=X"Y:UG8BYU8S[M='I%V#I!?U"S>F$1W*3V^@?S$ MTI,ZWD3*^Y%XO,(&IO3>3.EM,,2[SYQ%Z#![W:2&MZC M4^8G=IPN&%6]^MZ MG]SN^#G$*R>5_S"J?W,R7#R/YVU!]%O/^RTI_&\,-M]3"C]^R-4SDC878VVO M9^!G+A0:M%J:!K[^=_?ZK!TO9).!4 ;.7F9"%5V-Y?@7:U4Z&;(;LZ)]K=VL M#2:Y4F6<$&KOSG=J.*:LC:!> \OVQ@F7<-U%3*EZ^2B6C@(;7AHT_D1U&#D*%J]CBEI5JUI4P+*\NUT>W7S(]?+'N< M(/&6W,:::G_72&B^U%TTV M9$=B?8V[8[LQC0]RP,QT99(=K^SJ.EYK"#%D-]A7[<;[,-?'Z0BQ^=^[R:CR M:DJ3?U/@48+4Q8#6E[>+YU,3/L4D7TT!?VUW_^KVD6#"T6?I_O?R1R-?S="[ M+O8J9MH%I5A7=6%2FC46K-:-)'KOQU[G<@)/WXF)AE<9[*:A[N"L[+I,CLHU M7I@(?#VN,8EX34"'-2'.BD82[SF+?>]['A^(J;[Z)%_;,O]XV_%I3,+&'^?JLC+8D^,,! =8B?_IW7?^\>K3I]GC ('_S6*G4G-9EO M101_R;HQ%3XV//NU @ZO72W_@FOA%XBJXG.;.\[$BZ%;.3E(2FZQ4Q/*6SU?700]-?'-#Y$.+P!!]PO#%1YD@+9:;<*4G/2*P MC46\EVU+FK/DH EB7S5!GSFP@:M2_/@%*43X%4M"_D'\5\,8013C\E&,6]NH M6SN!+T8Y;DV88!/K(S:QS@2>:;Z8GW6R0.35F$8I9('MUH8U,8X@8H0YWMT/ M0E"7#T'=6@EO;9U>#%'=FC!?TSK=SS[9&;O4G#FI/E_*NQIHQ;5,U'PJQ'O( M+K&OV:5[3SKZG:SNTC5N-ONVH4(&&A#%=%$!I)N8UDMF<]]Z8K?(SOPH9%:B M)V)T3:^GVBS3EWIE;M9IS!9WG*)9ZX-BHYX(Q?A"C[;Y99$K==6AF$ @CF:. MKW\(XGQ_$.?[$E;D5.@NL"(70E!RZ8EOQ85L7%#99EH4LI56??S^4KC7MQ^# M5>PIM\K9!IF-K.#E(SN!7(_**%!]6'<'_?V?O0J$6P<6 M5=0TK<>-%=VAGD\8&AO4(0AYU8PD5.KV4=(7TLKVYQJ#%GICH!^WAIC!,HK( M^A>Q\QH1Y8AGJ%KG#MWV"G;Z/]NOV;GY\)6J2C[+42DEFD*W\.QR/$*%8\+Q317)K+UBE!](/+E5)C@RFFB(20;^72>J^?Y!O87SW7R7]_Z MY]>KKKW5-8_N+Z339"A2(GW8 MA%C\I*^*H:$^M69$3Z>,^ M$^-1HJ%VLW--U;I+CHQ4(+*IP99'?28 Q>=U(=,1&@T@#@5A]30@.82J#EN6 M5XK1BA7B+@E%9MWMDW)/Y-'!,?*P96=4K%)IL+;YU61*IV:K:*_=7,"6QWV. MR*[%,-V(QLJ6 #JI@5%W4,NC<3:9KC9-MQ*TD.JN1G&[*L0H=RA&3SQ=U]=/ M2K98$59\0N[FI%&M75YX!S;V6RX<+6>.E4R$;]<9,=LK)9[62\[+TMYO.5RE MFZG2:JUJ$U(9RFH\WJ(-=-'(T=-;8Z.B=>IB7IO5[ 0KE:7HQ%V(L>.6O6@E MT;/8=894UV+FJ3TJ1R8L"HD=M6RGM)K8,\%:8S4U)S7F9C171O[@4M$_>]^>5"+KT=Y6U!3Q7DD)9F#YG+HN1;8LG'.F7:^M;A2M?#W M+1YLF$CSR29121;S6:Z9A]9\:TJO5-K^Y9$B\A-F'ZZ)WBF)!P(L??=F]V/H M_$$H1 Q4 T5'"6C?;3BBGS8 1-ET_+(WL0?B?)F0(O[9 RH-XM6]__L!\=%6 M;7S$P+L*PBM3CYS=CRY4CVCQ0A5ZF0(&.>@#@Y^EHG*[,AJ%JL;BFU>A][$H MQK22ZYB;#SQ BS^Y?J'Z/1\E1H43MZR^_7W*H+]^[U;B; W,@!$?Q@CJEJ6T M T9L&4&%R< VW04GPHFS]S\&C ALTS=C!!F.W;)6_)?CQ&\>H'L5MW[",I]_ MBA O7_/VY;*VOU72]M6)T6'ZOFM^;Q.;+I33]-J"^GE9"6=VW8(@?UZ[^KGR MZ!]5&@Y,T">;\L4,U2>NO7W!O$S/AMTZY_E^9<6SA)];5IC 0GY+"_GNTNLT M&Z9N?Y7/M4NOGY+R6Q\0JKB.C3(,T3X4-#H6WA'"5W3GHIDQ;M7S[?78/39Q>Z8HA(8Y#"^ FR MF^9%TQA"8S/!VYZK*=C+MT6[NG956GE)K4G)T&S_YSEIF,J9/2HK +69?UI0 MM45)>']^[?Z@4Y)EK2"KO*)T)Y)EBUEZ,C0RXD1+==E*OEBL9\!XX=513[ / M=/0X7_9RX#"P$Y_73G@1SF]H)TY45?\80Y$2Q_E>9EG1>#7$K#-<8S08%-Y_ ME/$W#<5LK-130G2VXK/9[$J=Z?EJ/+WP"J M2C^I?XT+(2DH^U,:6@!2'!Q(. M2V8V34?2,2P,@@6!&W;'P8(K0[+2*.92!4OE279A)S6RVVNQT0_;Y)AJH4I_ M.HX;@E3NRGR M&>,XU[,*UP1%;S4+(7W,1+M%LBRL4G*S7TJ:467">>6CJ0>2IO[LXI';YEX< MW#W7)I%2O"RUUB&IV0O 1?TA<1VE]CB^=F(8WB M'F;9H)D@P/%;)NO6E[M<[:3MK2=V:TOT(?@#W2+SHBU:V@MRGC*$L5:HTQ5R MR7*I0K&&JG8C",(^1&/G_*L@_O$MM=='%K>>V*VU]V-PQ%GU3;9[UCJZ$M9D MMC*K:Y3:UUM/N.@^@A+0A8@=;YQ^Q2N?#O7[N2&ZY>E#+W4Z4S ?)<6. "%[ M1VFW9Z6((2IV::!3MJAH/;J.3#)6^'!8[%_[N4@)SHQY\40N88&9JUI@MP_" M,?$%]?J*6*C.B)"AHDNJX=?>5R5]OUR_NKF-C)"(B;14)^Z$0!??%P$8.$E) MJ&HFUE0X2Q1#LZ%IDBQ$&]N!@H?*A<*OYP!.W['#!&>CN%II[V[6AST"+N , MX,@Q$56DZ:F;O]78A(:)?%:*7BHP^Z\3&*D>?/T'7/$7O2QGRD,MP M74#2]T!()WFQ-]5=7W: _X.=G%(9Q"Y4^Q5 WGF7YA&6Y #_0@ITS=_FA@CH M#P/9P8]VIP,+CIX8 !U 3[$DA8&?H=E4=W-4B.D"?)DUI(W=B@E&V/G4?#5 M4;]Q09JZ%A#3G2Z@*M%9A$\5V,63;72JP]$?G@/S](G;* Y:Q"Y3J:$^Z;BM M8IY)::K)#L="-#X:=[C=E? M"R$:XV'FY(:GFWL0H8D!VR4Q1'MK8EFR+)%) M-+J_D) NXGK.S-[7XF M0W\A'KP\#_]20YJBHW0BN%KR4E=+LL'5D@<:'5PM&5PM^=6OECQ[6=RO%Z^6 M7"Z7/WY=]UH\#*)0,@$ E2E 71E#SMCD7'H7J!U?3[:F)XZQ+HRJ J"E5FBZ MSK3UV8E+\DZWN\=+\F)AHLAS#?Z&5^,U=UQ*_\*[C2]N#@8J]"H&GF>K@LW] M>-MLCP<"BD=(1CS3=<\";;BYZOYI*EFBYTO2%"1E_"]68X M0@Y5(DSL^5R[GJYJ;X(!T%D_>44?1.W/$007^NR.BYYG*)LYH #$%/OA;QU0 M/'P7:/K'KXQE3@@'=H]")NC??>)@,XPB ?#;9VY@9NP0QS8G>'E0H4,YV(1E M$'V>"6, H-@X>&%O?RJA2PJ/PS8&G"4*5TCVB.BOB*FT\B,S<.PCW927/TY F4!/Q+**4V[-88HG<#1,I37E7(!G)(788\E/F8P_^(C73!3;?+ MG;H6ZK'LO+)HI?4$=Y)A[U74-R[OI@&V"_KQZ(]$!G%IT_!E&W[HF-N6(]8A MI3Q_&KTK>9$VWW]N%R/+[M+(ES0W7L]E!G19)>7%GLN,Z/BHN!:Z#L<&QE'P M>-_B8SM?W_ *OT-!MAUW.4+.2Q9O*A3)+MFB;9>SXL"LO:8QF'C$"BZASS#H MP$4X^_N'K;HL1JH\(B;2R@] (@/GW13Z)@J_>Y7T:A#:@,*GBL39-?P@^4';(6BFHZEEVG^GRHWQ]5BDG'J"ZX5\F*NWD71;'R M[Y@C=_JY1-0 "TD_D$VA6:V*BZC+\*Q63@^<0:<^G;\JFP,4X?L3T40&\VN) M)Z(K7,Y1R&Q+W%:B0/?'BMHD9\E&+AY3R)Q@#5\CKK/IZ8^%%(72(9:X U? M$UE3*#P52KK%")7J<)U<#E.#691[B\B> M%;(XK)<""Q<:XYK,2U[I!,V2!? MIP4^QVBO$A6N/5A@WT73,.$G&^FK![PUX0>W7UC'_?T1"._0S@W$%1YD0XOX MWOJ/91X%9A6,BCS,0R"0L9DZ1",>"ND#2$EOZPE@/(@QD(=>X9,\%9)1RP/( M^8PI=!7#*02_L(38-GS2!M(\8PWO>?Z@-U@9-<%)1O[$<2/HZ_I %_5_EC 8 M4H4<,X1?;'&9!8@=H 1;MJI&DG(2=AV)R[VELF#-,]S)"XM%'=BJ MXDIZ2])=:-"P\BD<(M3AACC6/[8[K+A&IB]KDU:$[JP7,\5:PV77,$_LA+\% MYNT8*[2/B,<"/1HX&&+H2A#U.@ @Q=E(\B%7[ W(?EXX3$\4GB$Y%F,= WRD M.,^9_M[#C]42+($EJ[#+S2KE[48>/6DQ MZSD..!U>GYH8#5DB\/PP0\_"(H;%1@&?- "*5[Q>9]O-3)+Q!Z'<+ M/[1M%?JZ?@0(^M*R#*7V>6.8:Z2(I@DE@8A'Z!!%ANAHF"@^VQ/4WC4K[5GYSY^"P2[4OZU,4P JNCF!&@5-!BI3+X,] M\;>Q==KY+;13ANTO;5C)9/@8+YZ+?OC\4&1D@V[ MV]CSXV7:WJ"3G4B.!8[6^[ZDXS';(X!^LS?MET?P VV@X8+#88[<3<&=FK! M1723=( 34: 9A-#/GIJ>E9!P72&X3J'A>X,X<9+L@-"[64#(#!G;E+,W_@AG M;TA3.'RX7L"A>HP[_(%/-6P&O?0).$"4_>,Q4QWL,Y9 L H:;WL$VP+KX70K MQ>OV =E'"8JS)6%&Z11_/VM'Z\>ZR#^ MU"G,?62.FYU6F(.6QTIR@B[/)F'[0]4?,-+IH8&5IH\%WT<$4)IM]&0/DOJZ M,7!Q<'Z3I'?@-3TK'?X<(TT) ;?)!$4-L&U2\! YY!S9SBL>I6)B5P<#. 5M M"2!;!GFO>GE7GO>HR]B,[8]W'RQOP1C:)%!M[\?0[X+Z!%T'YZ4,2CR5G9YXGYM<\:=H]G.A+B$ULEZYG"DXD!?B6!7((U3E5+803O1)F MJB<."GK\B4?C>K)O!XB3=B H!(/QZGQ5B?EL6( M1#-B0HK+8IP%\02=D!B9C?NI.=+VJLBBW:9FP\)*Q8:+?<5B)2+H7J1DV,'/>Y'(Y2&ETVL[RZS-FNJ!B3UG H1D7RL.6@ MG9.K"UW5!+I4BY1K58IJP!E%C_LL+<45$]/5E-8@S?38C31F5GX!6QZ-4ZKT MCAHK#H<)Y_F!4F+9:/DT^E=M,:UQ9B_+CE:MRI MN;G$*B^D;(9AJ1Q\7T-UI(Y:-O+F*M\L1X#FFFL[^=3N\7:TAHY_'S6-E5(& ME)-.75BI\XZ8"8WJN3)N>D11>C+D&M51@^>E?CTW2A2[+$?BIOLD%:,R-8A* MB80XZ$>@K$4&0$Q045S[9!I+HH\-DX>#(4>TGFXZCE49_C]:CBL.V")LQ6M#7G"Y.Z8B+Q/^JS M:*@E5](M*"RM_+"?&X))MHO$_VCNUI.Q5D=..<:'8M%6KSR,ZT:]=DK\M;4: M'UF%0E-H#\A82E[%[6H&"?71TX=*,JYVS6%$6Y753-=-UY*2P<&61S.BLGE% MU$4^RX-1K%>FC$0E))\45;!JQ3.Y8:RM3?+E9 R(BU0TQ<&61T_78\U$KCB@ M:D*(;%C114NKMV34\NCIY'P:RB@:$R$KIMMAS/EZ33=/BO^4K;9GQ6K(UMH" MG>K1K8H <*]'8[7+)5KN#\M-'A2L6:SD2)G8&/;*' ]@G)%BRW22-'AVF2I, M;4L@M3EL&CG!4Q/P7#\BF23H:PN*GS"9V(!#38\&8*SL9;I;&Y;);#??&;5K M^7@(VDGJA$EM)*H*-Z:U$<]F9ZVY+D29,I04V/1H /F&+/52EB$*[K39:PRY M5F'<'J*F1P.H)HH9OEB>:8(:K5+]' :B=BLV&3QV^_52(+VVF M0XE+:$Y.2&"$(2TATTL]"6P.C)(-4,AQ;0XU/18LN]31[<2@PTMZLQ/CASD6 MA&JHZ=%8"]PZ4ENPY2DYR<^+>DO*M9XF<)$^8:QKDV@K.HA$FMHD'5\6%DFU MP_/03)T00C N&O)JH3;5J"49.( 3IHID,\U(KM:+D6S.3"FE=#(: MHCC4]&@!KME3@:'91DX+#>>)L9Q93.58#36-'39M9:NN2^<'$VW&E(6)VI8DUODREI/5HLG5A]W:I=*27\-Z([;PR3 MX##%UMOW:AQ 3U^7II#"FQ>[PT!/]1UCY(7(GFNY[XKOU$#P_7#RR']VK,U3 M_=XH;PYO*_03C8;9LP5Q=ORFG?Y1\&T !6Y#DLW[$*KW\.@%+E!>QJL! S\X MA!^\:2KU;5-W'7#E0,&9,-[;@W1[49\_*H_!A)FS94\#1GP0(ZAH.!)PXAXX M$:C$G3 B&B8#1MP#(R@VG#A;-CK@Q.]QXL\OS'P50=W+/IXO>!"+H@__WX_H MCW?..!(),T>%O#ZT'FC\E=V2US9(FB,+ **$LK9M@H=N@/*\6_#-I8)^KU10 M\7#\NG7[_Y3KVRSX?69?#9Y]Y> R,L%0#X$! MN) !^,3+ HIF7=0V?&):>&FAQW^/Z',Q*_&)B85BHH$!N1"NO#&?SZ8D_\1) MCZ9K2X9B_[W-1GY/B76?O[>^4.$@R1EGHE[._MUXG@3U$*6/BS1^&3G^ M^"+D7L3OUO.^B/YZ(;/OJ[\44EG:TU_O#2,*[4+*EH5T7L@NK=S:R"7,NO[^ MPN-OTM]2/0$B68[N\UEU/:LYC#(H*#4O>XEZB"28RUU?<@OLU$!%[-$*FC=D MSQIYWXO:/Y[0%/?!+XQR]NY]8.7%S#KT400*3/@? / MT,,GQ_J[A;AQ*8C*0+ !KFRV*Z@GG(#5@&0G=KH>$D!!R)>6ZU;/RG B/NK M1*/7BY]]<0D/G( @:/:1>ER9R4ZL-$JLR%"W:>6J)34MYVLB/H?$4.=NWOR$ M;M+A8KRYQPE5!CFJ>'--,'WK^Z]OK?\O>E>W)LRW7/DW:L![A[A.6 FYLTPD MN[)9)-MB79,';GD\F@V]$[/,5:[G#?S0.].,6YN,%_W46Q/F>Z*,UVV&&9_U M)EI:60I2(:-SF7B7EES..SM/TY][@ZYIHD)OJ#[F-3)=;GVK]=7R7FX]L3M1 MU0]8WL]MGH\TY6GP%)G:9&KU-*H56VS+KG"H3@O.?HDGSEW8'7CO;UB];RWG M5TM\N?7$[D2!/V"M/:? ,UDR;!:8M%;)5XKC#E>:94-#I, X_25.LZ^MKO_@ M$@.7X,JAM.V4 #ZL]OAQI_@2T[NK/_YR48U-]55/-+P;#W!YVN?ZNL>7BQL8 MX^+RT'O5O:]<@&/G*IJD]]@&>BIG*!5T<4'^>1+^+1GV"Q4Z5H4>'Y^#=D10 M!ZELHCJLEE/)85"AX\H5.N+AX,3O@:VXS=GK,$L%C+@#1M#A:%"-X!X8047" ML8 3]\ ).DP'B\0],"(2CK(!(^Z $10=9@).W ,GF# 9#QAQ.49"K"\AGIN/N$/+** HKW7W5'[4V*D@8QO5;YH M!9[S2\NGKL 3V/G SI^Q\Y^[7,JEZNQX2\"MTTG>:@\^7E:\5>%SRPH3K!;! M:O'-5XMW%U5BV%>BY?==5.G.E?TVY^&PHMXZS?;P=MQ+G%SVM//6,_MXJ^3M M:'V_>?L;2-]OXCYL_7;S]K9'OM^\_=V([S=Q;QG^M/-^U\I\N[-Q)VZ&_WZ8 M^8^6X%LGRUX^"]A?8F\]L=ME 7.V6!GL9$N61C&7*E@J3[(+.ZF1W5Z+C5ZJ M]MW!0=X3B<"M5<[BJ4I#$ I3Q5PP<@@DBP MCRYN+>J7UV$?/=QZ8K?6872%:L++?RX5NJQ1&YAS 0S($%@SR6*J\'%*S*Y! MMTZERT/-U:+44G_*9:0QJF7)8B6.L%*&ZU)N98%C%.>S=IXRJIUPXCQH+=F0#V[9C)E3HRA M\$3D@8U=Y9:-;Q2=^'P:^-I!BJ^A@1\56WB#"JZ4 EEJ5AL5DEW)N9*%]T$L87[034/A YLFY ]&2&FJ!RD:03AA#,C<6B4^.F!SZ_G>V@1\.-0[:P/BV:>5#-Q9@P=3QA4+;=%Y2B ;P"(; M$(M>Q08$,:S;Q+#H"'Z 5XKR&M6KOU$LZ^;;X4&NSA?!:">L\GS5*8>>I$6$ MG_1JC;9A+X5A#!7"15DZD0>6OLH&_S>*@]UY.D+L3A(J"W)UO M+=!!W..C_8N]*XYMXJ=JR+JK (50#0+,7'4Z01M<$&AZ+4:F#K^:3"US#M W M]@.ZL>/ORQTN_N*6ZP9I/C<[-OQ)=3:(#MQ9ELS-C@-_-P$._..;YICP;UUN M U?XD[O"E]R,N"NL_+FW'\[<^)L$L!? R;([<75T1+*0Y?$/,CU_L QVYXO[$K:7[N\8#+KE)\?VT^GK;$A=4Z^C4KG&Y MT2@E% Q2G#_9@AT+8;5FD5I3S)6N^0NB(C?$93OB 45P:D$IDRZ:[OO%K?.I M=) OD\5W*B7DKE+VD,'^^65PV-M--=N.VK5H:+[FU:?8# XXDLZ/%B+%>">E MR!,WLOX=!('>GR+R933Z5)K(-]'HFV"PMZMT*?:DJ/4&/2%9,55:1>5,K"EP M2*4A^F(>XB=.7EU"I8.PV&W"8GXR[M[40S:00^HRY,W[,8?_$1MJI5TJU\"( MI#MK-ZZL,[*^J!W^]H_&Y[U%'4'A@$*O[Y4#]S_:9 Z_>>-LRZX@Q>5#SH]] MB3S&-YX=^X:IC;= I"?6*;KPT9^-DJQ9"K13CGR.->+SFI(]UFD M^PQ)!Q'"3Q\AO$U2PO>)%7[2R$&0]O1EY3)(>_JZ AS$=VZ:]K27@4R8?3AH M' "\W''K[^<3!6E.G]^C^9!@QAO*G27YMCD:.BE)6%$64X^ -;4H+$2*Q6>M M'RB*"J(902I3D,KTT;&(-ZAN(NT(F2Z[*O"52:33;=3&TU)QB%27Q:H;OTH@ M,@A&W#1=Z44\=>6BA5_<,-]A%M/M+H2\W^2(+PC-SI8GDY?C>&R6*))\%I0S M\Q*9RS;3$)W%-NCL*O'F;Q3SN;6LWUKC[SX=ZBM"NK,J7XR%LL60(/'=">LNAY3M=Z$[=5( M50EQ;*I6FA5%".3B7M(035_QWM'OI_1!TM ]S/762O_!J.Z$UF=3-!5A:SPM ML%R[T\V'ZHNICK7>2Q>*D4&$[M-'Z()TH2^4+A244PKRBH*\HB"O*(B8W%G$ M!/;9QJ>Q@$)(<*S2$! 6F$BJ 1_J1TP<8$U0C4-B!23+OF#9PEO/_([")E]\ MWG>9D'3#!?K[2">YD";_F>O.6#T*4? MN2R[$]B1_*ZMAYVP(RJ \*BX%@*PY^]?V8!ASL/"]0T4QE\V(1"FME'(CE!/ MS1NNTN2EU5,C66Y&72HR%&D*[3T03)C9)I'XLPC\^\"_OR?__G=5[@V!_VOK MW*2\*EBDDIR3*IL40O$\Y[H> MQ\WPSNXFZV]8WFIC9 )5$#@M%%UUJGE3&Q6+-9'&M9D)"$NB5T,[WT]B@V#) M)];4R\&D=ZJJV%_R<:5E]_B9DRXJ5*\V+!E#I*HL5E6&NAI(NB_.?>'H3I = M$<1[/G6\)\B."*(GGSIZ$F1'?/U0Q*GL"$6U93@,K2SYG<."OP-W_+.[^A^CD;QVM_&BES/<8IM+NM56A M+11'46F6FD426"G1-8YA\HJW.-Y**3]?Q")(G@BB%5\_6O&I =*97=TW6N*F M+C93(3H2U4(*)P[J ]>.*0N1QL5EHU!0OV[1B\LAIEO/) B_? %<]>>ZG*F* M D^VBX8V&SCTFK?R;:-<0[K,(EVFOM;=V&>!UC^.U-?!)1YU^*3=VTH.,E^N MK=G/#1/PRS?J^06U3C7@4YQ'ACT<91V5LP7+*3!L0"PDF_B_"U>+2;L6+K.& MM(\A/>UKFCO+ZDBU,[/%4!N0%3?4#_6 M"X+B[WJ,=$WZ.)"5XP#!P?-C?>F M9F^5CO5TKBQ9EEBM#/O347%=XR65"?$RR_4[W<6/7U3X.+1 0.KKB![H6LJK M$HE"=*$](GEO&%%H%U*V+*3S0G9IY=9&+F'6]>&'$"FS?N))*MD8"C/'M;B8 M*,X-G4-$.JZ O242' GAC #\WP* F,"ICFP"0"%4B))DR2."3CP0B/V8G-Y' M#(4_8AX("]A3 'N< WT5_C!5>,]2'(SK%N/Z2A9;0T;^*:D]U:?6(%R;_X=O*7W@\\/W(N\V6##-1^(D/M4CR+S3" MG6[W^@K)0-?_/1=+V/1P<0"&@ BP-I1$A3*W,0./K%3#C'R5](:UL?ZZQ1)C95,M]W!90 M8W 8 Y'U+V+G-2+*$<\FTC*T0S_9]M/L, =/NA::M(#!XMH$O( M[!PPS6>Y8TX?:6CV]CD>@:O%,._VU64B?!!GK]>/:^ M922"A#D@4F@E,AQ[JR'2Q8W(*:';C5%M9M7?>Z0_XKZI*R@')U\LIKDRD:U7 MA.H#D2^GP@173A,-(=G(I_-;56N-/D&T:P0J4HY MS9<;?!J]:E2*^337A&\R^3)73N6Y(M%HP@]*?+G9()"=H:A_B9\IS[( Y>\+ M#>>G8$BN E&\W^.S8IXV6(=Z<$J\);S"BY%$GXZ":%^,RW14C%!L0DR0-! I MB@1T1):D:!S\\$1"VC@K(UJLT[.,X@H3AQU6Q($K5"9#$4*5PY:#8FX2:HN0 M0"FF[9:,5*B^E(AZ?5NUVLZMRL&7TL&6DKKKJ,%:) M\*'X="9D5+%%G6TN6G&FQY]/1Z65#X,>.H M6@@,TKRCH4X\-V540WQ%K:2@BU'%30R7E<2L6+PFAP7A4;J]&DWD/-SV:?B[2'/+%KKO2LN2L M8K/S"5U_XE#3_?F+%&"D1(09B!+% #'2IP=B/#J01#9!Q^/].#5@9>6P\T)] MP@Z3"\TE*^-BSF+'S@3()Z6ZD*.T<8OCZEICDN(C5C>J5,<+\7 4L&5J-(P7 M$FYM3$K3+E5-R(UJ/ED[)?]"FZ?F[*@=%RI/@U:LU634!\-3\K]H1QIU>S!.:FJDD:YTI58Q%AJ>DM4!#_6BTG=,H5WO2+D_(/?3ZWVIN!A) J1>1$;.E&>QQW M4O[C7+?I&B0$16X'T"NCMH[$^"'R!(^:%J05T[5Z2E1@>UI)&S<6(:H&!W!" M2K0H)W.<-+T3(FXKN4CYJ&,D^3OC:LM+0".RKEZL52;=#C4-,C M.;$JDAS-RU2<5^E)JMFO";E9!]_.OA&4 V#M_; OKNF)8ZP+HZH :*D5FJXS M;7TV%%%3VG.%\8+).:^U9BX+AE]T;IK0>1V8NFXN4'Z0:A,28;L3V&2%$!-< M9(%%J(;G<&^B K8[G>I@ CN4=$*6[!$Q@+_?:X978.@$.^:V'CWZI;G-1,*U MUNQ' J_Q+Y\Q>W=492<.4 2V#4 %327_/$3.4!H[\TC!:63@+'9:5 ;>-B+& MCTTXHJ1NRMJ/#:O9:3\#Q&ZFJ:7RS0C?;P*:J<$G UN6IO#9CN6"RP'D7<_K MK2$X\NTA..RF;;T=K^8S]'1T:6J#Q\V+W4$A0?('A%"8[$'K?5=D)Z[J^R'D MD?_@6)NG^KU1WHS>O 5]/@]M!S?N]&_"/I'(;DBR>1]"0>-'SW%;0"*\ZC#Y MSC%^\*:IU+>A473 E1VEE]E.O9WM>U[O'\78XV'F;!99P(@/8@05/IM!$O#A MH_@0"4>9@!-WP DZ'(\$C+@#1@2FZ4[X0 =LN!P;WIXU^1(_7D6Q][*;=%6$ M>&>3A$X/^O#__8C^>&_:"1U.Q&]Z+6+\E6V)UW8BFGA7N^3M:O-H5_LY+!^( M_M<7??J]HD^Q8>8LYKJY:&^S,_8E^FH@\_I[C"^O;O'?6-TN)P+,>;1W)Q+ M4 ^!30MLVMMMVB=>SE' _*+F[A/3PLN1/?Y[1)]+6<)/3"NTZQ(8R>]D)/_4 MY[FQ,*LG,L14!_Y 1DE&JD$X(].U)4.Q__[O'_5=6)N@[?.ZH"^Q+%G3QYOS4] M;E$J\@X.F-SDM"3:X_A^$_?AS[>;]W>5<_H3S_I]:]H]5"MZ3BT:6.;D*'GH M^^&SJVR[W>N5]*_MGW_VZ^4O<6#P=ZZ;WS\.5Y56" G:)^Z;!VHF$4TN!Q$^ M51?D9#G3F"@)E-#-_/A%/439*YVW_XCX::")%]\N_E)J^,XCJ==1PVR\;-HA MRA'HW,BH20.-LQ9(#5FLAC'RC!I^0C_VS3!@DT]\81#P:?%= .8_B]-Z)T;N M [#&;J&0/ K0 =OQ35W%*/HQI]4)HS=,%::3;IP3^%"?9Y=SKI"H9-%Q+H@] MGB]RN3SP^(9J\$VU_S:N_)VH_@?@FW>K_KB[;H1J+;5,%J1ECAZ1P!8:Z'0< MQ#LT?7&P<^LBA1^';+ZZ1G^X4W4SS/)-K-0' Y2JI4)UG$KZ&6=,3%1$50\U MFWR*+_<+9#%/)GKH\#C")9%H$!$)E#>(GWPXOGB+YJH\K7=F0G,M *;>SC^! M5IENHZ/T$%8P)/.U@RA[PNY7]]D>S?W #)AOZ&=\4_?J'H,K08I (/C?+Z[P ME7,&8)]U--V0.0BY-B DVP:.39A]1U(-+^4-+.619 P!SHF[8K+;5Y?K[P#0 M;^Y=WW"%^NJ\_0[R>UL'\^,7FKORL2K72DO[AB#J'K#C!9/7[@L0?K$0+@: ME8%@ PZAOXJ/_?(&[R._C&GM)]N?/T'7'T3?K@>?M'1JC JS MT>]8!RQ,1CD RI9A-_MEM7ZH#CK^77W M(M687B/*O91A@\1@[K@.VWO(MPW07*BLGRRZ!^![J^1'+BPG3 M^47R#@EP2EB"E>A3K$0WILKKI1,GL!<=G-D+CH;I>]27UXHI>CKS4D7%^[4> MKQ34_F 1>I^5N>$6^@OTR:AHTY58H3MZ+P=([FZ:MTB9N']"[.O#QY#%B_H& MA/F4FG,3N@1D>3'8&-#E- RY<[I<'VC<;+9^DG4=3"24Y6&A;![O'H,OZ))\ MG &\\:PODGKYVG[OE5,MO?DPX>CAY"Z=.:6Q(Y:&E.< M&$%9U)$'.AJY1A9UH,B?79%O>8#IJ^CQR733W]7?<;K9=_L#(R2D.C,^TC;: MA6QU"/47%QTEJ7/U,NX\U'-?@.J>$*6/L:!01K^+X_F=7L*D<\-6O2ZM[:BF+KH)3HQ2?,T>BE$$R:(/Y'7* MN0=&X!L9@3L[ _=5;,!90/<.F$&!9 /7^C.[UI>&:8$]_B!,AESKYL(\88[C@U:1FS2+QF5IUF-E:F2Q65K M0^_6GD@D'H3/OG+X+!9XSE_?<[Z)40_B;'> Z486 "=,?KV2SQ4;DC;BW70O M]+0P 2\D.._.(NHA<4U4%VA'8":"2-Q]P,$7K$/-%$#7B.7S9+;2&C577(M> MA/QKC2@J",%]Z1!#A:X8;X9S M'-+X,PO#H"_/^\-EYHD,M:UF3RT9!3')B0F$Z1)7/)L0V([ =KP8GKLU =YA M.I!P4/1%J!+$JFX;JXKCQS1-1]+]\NE3WYX&[NQG=F>#V-5G0SJ_&[LZ@6_T M]#HYD8U92F"[6A*LTPH#U*%(D3AHQ3ZPB2#%+%#S(+QU!UK^6GCKA'9/E6RA M8FG40E!E,'V*B58J'^60=N/;:YA8<#KS"X:VO*>@1>&1R$^FKH/OMX5^+K"= MP$$-'-0@N'5$$N+GYUH+SB(^P5!46X;\@(K/+V78E)N@=ZM\ MB.ZM)R-:"B4[) MEV&K'D0%Z0O=0"J30.\=%T$.+[XB&^E&M9P'"N K#N;\Z! MBQY$^;[-(O "LO,U_L1J4-7*(3=?D P>=$C+ 699S2P@P&.\@B%L+!:DK 6V MXAX(]4G#>9_?IIP$EB];E$A>*+K5"9?C9_D(+6;SF6ACS2&+@@O\4A05'$C] MLO&[LFG(/KH,@G@77B3V[!P#[9QBNGT=W,N2<,$+%VX^U2]OTU_ B<_J>\*P M]QHK.P4DLL>'ZG$Q-Y!&3TQY(5+XYH7$0^):I:<"E?_B*G\/,_WR&G\2Q9W5 M]W0U7R3KR_B*5Q6Y:I;$4J2XXI"^^T#NBI5%/JN^8]3VCR-!T;W$4'=&>A2B M\4A?=B?P5_+Q^S]_.'WX]!H3"O_,@ M-%!SLWJ_/E3H @$9#V^3?X%^AKXY[&1S)H=P3/2]:A%^1\1%;MDF$&RNUFHR+_0"'>ZW>LK) -=__>)3"=-GY^S^[LWEVGD.RJ9O6XV;MW:&>3Q@:V^4A"/4M(&DA? K^4=(7TLK> M^*.)\!;(/VZ7;P:S&Y'U+V+G-2+*$<\FTC*T0S=_&0CI8. \^C_;?(97[.V' MIJTB,7BT@ [E80X.F+9CF&CH-.]S/$*%8\Y= ^Q]!HX9$$*EY"D$*?+3.UQ#IXI;UY&76)W2YO_?(W6NK M?_QJYXO%-%K MK.L2Z, MJ@*@I59HNLZT]=E01$V9'Z<,YQZ&V$.G:=?";7#J!XD0*B,VS1VX.E+MS&PQ MU 9DQ0WU0ST@K@D'/)(@^%O\G7^4:3@%_EFQO!OYS2[IE.C(=V 5+H "$]3\N/ MZ?VGGK!%J@.M@ R_Y2=3W5P!0"2! 0:J0U1U"<7ZU \"=(=<0+@)2AFT?2MB M!+&61,Q<.-2!"J'7U#+1".V19"'< ]=N@YBZENU*$.5 V),R%4 T /9E/*@= M(:F?TM^XWLN>50[90 ZIRY"'2QYS^!^1CEK=GJY+"E]HBE*/X09#?5([B9S? M2XDW+@?;.6^7 ?P/(4OVB( (4@$# /T^B$8M2S*& &GD&TBA_0U5$$(<1#T) M(EO@,Q_BU8T2IVTY8\$,O=#ND* MB1#CN LIW5G\^'4B??HO!!L\Q(_<#.B0>(N(KD[0*N7[ X2$\[41V\T%_+2_ M(AQI2>C2 C)_HW#R[E"A; $H#%".;%,'^HJ _A#J"#DB%L"/\!Z\^3E>9#U;\A--!K6CR7\1&_%+ZE]?:>QG M=2$6(Q-:ISG %-\T+DOJE9) -5=E),70X=V1W"K)53LZ MITQXEHHSM:=!9Z:OH.0ZJ/HM,3'1/52'T0XD*[;7'[;56_)*CB-A9KW1['3% MF#LNR/W19"DTI$Y^69C5K 6;\SY^_*ZA>2]WN"&H#+8V?6MCR!U&19(M MJ[YJU4:DU"\D\SG#KI,&]^,7?;S!2ZP@G+41EZ#3Z,4V-B8#KQ0XZ#"1-&0O MO+$+!!ZP3;7=_M@'=1)44PQ04&?_=^5] MD#_G7GJ17RTIKV)5>^N_02 OU:(DF3)(X)./!!(2K"$>A\Q%/Z(.9R] M\N+B<@4AO@N;%(K^ODGRO7CTG#V_([G:2/A6:MD=J77=:+,;[<8GI+N6[$HH MMXYW(] 4>$38 !*CHYH?.15[Z9O#?!_>)/YBJRA$#=HCS7>&^8"K"%[55&0 M0CF+9\EUN=M6,OF04KL1:X9TJSU:+I(,64C.0$D;&*RF#!%KCLW))EKP*E.\ MD(#/R ?" O84Q0KFT,T+7W<_#P>E]K-'8;([=K[2J&;[\BR'Q1[+[Y\@L.'_FBT-'1]57(7" ?!Z[0 MMJJHT*H_$&V^ 9=M>>:JEO\-U!-'A=[["D=N?!0@V39PL 7,0NFR5S9^$OP4 M.E;0PP46R 4R?$V3N$C,Z!ON6CAHEF/4'M>]_9'F^<] MH$ %GA-'?P^T,T%[&&7-'6X M:NH*T0X3)=C&)'[Z#\;OMI/T6D)3X!!/82)I2:ZQ;8G?^2U10T@NWQA)%H ,AVN\O7E4F-@*3G0C.+LDQJLGL";VAN,[9/6FO*&" M1$!+$)(& \A?3&_9M*:F9RNW@_=^\DS<">*5LL<"CWUG)HCAB<_PO7ER2%R] MW8TM)?$O? (\[+V#1F<"A1.'(KV];MNUYA#3XO5]._3PMOT"18,W&@%)8SL6 M,(;PA\9)U9J:"X2M#*BPP(MXRM+4SYM!&_;H-X9IP7\D&U+8((1P(^Q!96CB M3?0$U8! "XFUK*LHP J64[SA@1NAO7\+?BP#;UIP64-!(JQ;E]QL/Y\,L2'. M9F<%0\ ^'"$.E@/;1C!1WY,%TQI*7BJ#NX6;* RXD3"X(CMX*Q*-L6M:VL.^ MF8(*:1H 1:$G)J0%--,H!T+9DAH"SNJ.!&]Z0<_8-XJ*"8=KF X!^T7,038? MDLR4M1W;M!]M0#L">-_2R_W )DC::,2S>.YHVJZ9VU6LQ4B5CQMO\CT@\49J M'X=/!Y8Y(6P 5TIC",=O28:-HLM(H$PD7[*+,,,&Z>YTMI5$1#;+'JG3Y\01 M*'];L8:#-EWGI Q#KJ(,CC!1-AW4#BT"RN91AXWQ+CI2JR&$4UOD[8]WAPS; M'V!2O\ 2/[@)88H)%YNY+R9[,H70#GJ)O!),C>,G[&J?']]["T.5";0+4+WQ M_NCVAX>,?IFKT,IYG(3CA3XRV*,U%-ZAB:W.WF,>-@DU>&Y(P4UL\I!1W9NV M[4ZA*CD[\]D.1()_T+.E;3!S ,"#/RC$2_@T+XKVO(++)OI,]?+XL'*A'N!4 M-F/'R_P+%('-M@_77?OC0S,O[1J_[)KC*#2$RZ>BT!NLMX%Z&.FM_,B)A"*: M*42M.E G?L@ M[(%O#NUMPEFZNK-%$ZMC^ MOJ&DGS0'SS*+;):WR$)A_*CXP3O3QSXTI6V3,:8:<#D H3[*>MB;$[E-/L*S M^[%QR79M'AP/%&9[#Y>.? SDH19(>&_KS!,+!,P]S(YE;P*EB+"AHP(QO0P- MW_]G[TN?5-6UOK^_?X6U[W.?.K>J[0.(*/O<9U>AXCPK3E\HA* ( C(X_?5O M MJMK3UK:[A!)>4.[3DHD2 MAD!)"$ [3#T,%SMDJ ->"G; A^V8DZ$R@?:7K:6PG9:VF8$#)1_J]\/ W)61 M.?/4/D%0B,[XP??N4 ')0Z? WT-]]F&@^V^ S\F&C[Q'P>4MZ(VFA1!ZLU&A M+?IQCPU%]"'^^?C23>1R^^(AD"7?!?O[($!*=V!%!"3_2_M/J*(>5RSVM\U M+8*/F8%.#GM!&TH8?87/ *C!!AKH' XRV,T0G&@NW(G_TN!K@@WD:R3[J5F* MN/ .4-/ZZWH-):4;=( 5$8MWS56X<#VAX!R8!]L C0&./$-@;&,$^[,U<#);>F'M^ACSK"E4J[I"03VHC(11O0 M@,JMHXXP^O4'V@Z'NS"4^^V-$0](F!N^P M+TFB(VPO) N_F$M[+%E8"IX4Z20QC ^'<9%1*$:D:38N)@DJ*;()=D@DV3A- M2.JOD-FD[=$R/V6Z2RXZ, 6M,1TQG%!+J.6%2(KQIRU+Q7JK-VZ0%K$:CE9I M6EMT>RIJF7S:4E)6@F#4_('.R&.GEK$KO%%OP)8D_;2I(MF>4AY;39[B66^F M:-/49-00*9%ZVM(9TJT:V+-D_-E%*O M(-LJ37.PY<% TXV%4$ZDR261Z\?;);F>:C:S(]B2))\V]:*SPI(E![J0=N:5T%UGDC,&VA#?]J2KZQ&3L4CQT3:6:C3 MY*I'K9<-D1:)IRTKZ6G-J>J>QM>D]L0NQ$W35AMB_+!E+S^-2N*ZE>,E$?0M M85J,B?0(MCQ\>WD54+0OT ER4.#'PHQE!NMJN]2V6@O8DGW:4FQ,%9'KJ4#W!\E6OJD* M9:6#9G1(^UH^KO=C6BHFM I+=6VWUW2^B#HE#^9DIQ33$]W8@F!H86*NIG;1 M4M%(#Y?)2.2!KV:+O$#)-&$P":E462Q$YI"DY54-&![GS(E9?JBL:E(SD?90 MRX-)M3+V8* 6)DD!$$ ;:\XV/)PI/66U#%Z3'RLE\ISWK,ZZV37:8B) MP]-NIVZI@-!+\8ZY@34EEQXJ?Q^R^JRU%*)JBGIM51,!DNZ6%MPJ.7A MZZ=593S5R<*2Z IY,9:6-+JOHEM3#U[/3XQ>T8PV/-V?&&EJD+-I'7::/-(I MZ7#S.<_K<3Z:IP0B7>K[DC 2V<-._2R74-RR;?!1.LI \Z+&52#LL$-. )*6M-DS5&C^N9!JIM?- MV>\J3(QUFWHZF9;,?HKBM?X(Z>L'306[ MSU02MEO16[E65YKWW%J.':&2*X>]]DRZ'-<6:<+72Y;D]ML.P07UG@[&.NF+ MI%N/+W1!6\E+VNN.W8RV0$T/1-5OCOJU@E=JZJ!56C1X/99OYX(!',AJA3#- ML#7*@_M)"'JV8)/3D9*;N 44JM@K(?2&B>CI59N MT-=U:N:F>[W)(DZ&56<.%X&BJGG9&.8IGBDY$MWOV!F6""9V**]R@IUVBFRN M*TC31H)>TT*#*X_0(>@#TAI=LRM7^A5'R EU$K294XN5=) M\;FI-_)&%@3%-IS8$=!:^J/>A",;MI!CI":5\?OE>#9H>MBMP65[7F>AL'Q+ MHE+C5+6UD! G' &C02DK=JQR#TY M&/Z+B2B;U8L4S-!G OGA*DY)/7CYWNADM9K&Z ->IJV,;!U-H9 @RW=#]^,Y[&G!XF+^ MF.KR):*\3E1Z9C;)-'[].3GYX,*/?&@>NISYZ?% M-?+%J-R:0/VXT->[:F;=Z4E&/U_^ EI<)5\T6TE?7U9+1&L-*KU)M36PZB@< MNK".)!"^_X-=E]9N61C; =&@, S$_@U!PS-EO FB?"X+>R];XXTK$ &HXD@0W L"@H]!R"#^)<'NMV,<2BASR+<#NLK6-$@K M0H&N,.CXD)*!HG0H<+-MY4E+E'F1WB8X;KH+TB&?K!:*&*(Q!K5:% T%?,)8 MCF$AGS-<=66;1HF"L"B*-P3 W%9/V51\\<)@(XHJ(J$+0VBPDY!7-N3N8$L@L"@X'J8^;^/;CF5?W<=&TX[F"$'64,(DM_1B:5B*/PPIRXL*W:4&H M6K70.5KW=T"O\UL.\A@HO@%JZE,;8D<;3:TV7QY:$_-)S&4(%]1U+4I1K9;0 MY0O9T;GL@]THV[[!\'P1*N+M-:8VJ[^);(6%YU#^LF2[X/?VE]U!(=[;# AY MW.4PC+(?=MJMLQ#&G(B#6)'G;-^Z]:ND^\6 EQ)T:PTS_*O5,A MJVU)LOT[V%I_AT$ZI">\&AS;!$*#%V^;HCP#P_? F8-BSR\[^?9EWXMP?K8D M)5Z'JU@'+ _7L [)^]B+)1OQ0F!@NK%UP,!T#>N @>E*%H*\3V)DNHZ%(/%" M7,-")(.$1+P0%U\(#$U7LQ 8FJYB(3 T7P",O9:#NY!H]'L\ZJX9W@RQPWDM,/\L"@HGJ MG\LHNP.SP F!\&7]^A9H\)K5?:M;Y$^2CI, Y(L&T,4!KQ93I+OB)]^/BO\UHD0IF3?.A6P/&!YP/)P8%;O*".SBXG4JB$_<[=%6\M67FR6YM=QQ/3N_< %3PP=8-K@;>W M!M>VI;NV-?4V=P)OOW^H!)7R7./QR4^X,W(A'_TQ@Z2UJ<2WZ2Y6IN/:SQG5 M9#5;&/1- <$'\^L/14+TB)T'/:XEE_2+K85OB!_G385^-WY$,?MA]KL8^QTN MX_:EG*-)!GQ%'AAS@.:(7B>9;G3SSI!U?UXR/N;@3QV3_OD*V.LUTR^@]O"K M&.'$\TF18,0YVTG+4H&P@VNBXM!LHJ@[.LF^H/A\ORR4IZZC#+ =2."PQ#*J MNBQ-417B]>8R#!Q6QV'U;QQ6OWI0_/[>JUT X4R%VX&/(WB;C1ECHE\C!SRU M]ARM,JBDQE%T+U[LUY_8'14[GX_JUL4/8Q#&H!OSC+T/FBPZ2W,3(F7J:5O. M@.)2[#LBNMR3@= 4/Q,PX?@YCI]?+J/D>WL];IUCL-Q@N<%R@^7F^^1K7;TJ M?&(?Y?L44&$H^[U5;]@3YOAGC7);O[S7*>UNI?_G% MEO05L?\U[JL/M9[@9K79,C<[Y+#D.L-Y#)A\:Y&CZVRC+I06E]LAHU(K&6?( M0DXHR85:VTZD5LX,[9#LKS_4'7FN2!L&BI\_Y:L#"KQ/8O;_:L_9%;'_=W>3 M?7:KLYI.7K-S!9](K[MMNF2WB*JX@%L=-)RZVK#"34XH08GU&#WW,N(C%"C#(%DFU^MF3X<[6;8 M<&ZI %["=FUI"5Q^Z3F2Y<"5EIQ5,&&(X(ALCF48\-$MR!_![VJI/M6GY*1" M2%UC0,IS)B.X"S&)G'GT78P\GT/OUL478QC&L!M+"OQ::"L*X01U:"7_!X,1!J.?#497[DN^=8[!:A$-'NW%8:XG2R5_4J[G4Q=TY*\A,(&J>:=1,&XM M (4SLVX/[7Z*3QD"YR; EPHAX @XVH2MNH-T3-33)8Y1JLW$/*^,1#9([KPC MDF5UC>MR;-X4+]PF^^,DV=/[)]^BX/86Q82<\#IMP6^TNM7L/-48 M#)#YC'R+;/*E@Q_?/QFV"KQMSFN8"(M3Q7"J&$X5^PD^A?.Y)B%H/(9_CB J M,2B+"3;'9@DMEBH"->.E2_I()(E-V4KJI1K!&'8P[^;ZP\^6NS-?0R-4< MX)ARKRA,25\?U=12UF$6"(T8%!])X%J5.!_EYO*X;M[Y^10UGG5YMK)FM5H$ M]9H^;=3DL:(/RC[50/ 1Y($21VYZPGF@&#]^.'Y%L[;@D]QKEA3 M+^M2%:5195[3W E1FQ8DBY[6BU6B\6$8Y0+$.);<:9F2D2K'XL0JE\K56V4X MSCDT/\C ETHF[Y+$F7*P,$[\]!ECG+B8#U2-KRVBY4['.HBJ@YHRE] M&<_"1XN*:LU5.A'G:V:RZ\OVNMK7%@@^T(EZYHXA\475.&GEI^1L70%^/._ M7$@<;8@.4>2C[ K4VK/:6N+.(/)\=JUTE]-:5"^)6K;$2F4S6^"0R+.__B3C M=PQQIO K%OF?/^5+B_PYXA8?D/+@J*H;BC=O:%/-#!IN)+U;(;)$L3OI"E2# MTXS*NI=R:B>0].=+5<3=:5_*]:L"*,GQNC$;&(E$L,N3%-SF8W=DC,"YV5CH M<7+JVQ"@,D[X9,G1>()9N"F=Z \ZS"?RI9[=JE-Y%D[1BE?X6EUC"(Z-=>I. M8-PCYRA-).Y8XE!POW/^*>IRN-?E(O2"#BU#@5]F-42D2'OL !"IP._';H0W M%:!$*I(CCR,Q\BZ"?-K__7N(<\9PSMCWSAF[/BI@><#R@.4!9Q/@;(+KR,*Y M/BI@B< 2@24"2P26B&O).#L;%;Y9\A6J08A<)!$'S('IG^SBEN^X=%>;!''@ M#?H?G,?PSJ1.$ODHJ3"I,_PC=HD$J&:4KFKM<5_1:VE1M]AN-=^A/YY'V@R% M=EM,%!&NJWGCM._"I0<.OY0-'ZTI\J7"_Y6VM#SB4)T)*;MM.8)(^!3;&45' MBQS?YT0RAK*EDK$[ZDB-&HP3&")>5EJH-%O/#Q M_,G3P$=R DI$KMM($C.'I.:QLN0/Y@%\H*.B[%V,Q/7NODD4]5P %W(:I:7E]/LS M)UF2A&Z17Q(K+MLK*PNDM* D$I*@[ACBI23O[Y=$\M3SDP&V RD-^T*KW:H. MB_-HA1!'(DF'YC6/%OOPR:]79+!)#L<$+F6;$F]YKI1 M6G (F]!YOP0N=88#X#\N)>2"7HM;7V[,])CI;VZY,=/CXEI?XR!\I^Y7Y75% M4T=SH9M=CBDIER?3]0;2_8+39'?4&7O%0MT]H.NPI>O,DL%9UE16W6K?(,5[2J1CM=&(L+ MB)3(B?=224*,+!A9OA&RX C]=4;HKV_*UY==C7>%=(]E9ZU21Z298'\+RM;3S)F"5!@I?OZ4 MKP\I\"Z'>1'FX(QFX_-)S),N!*RTYJV#"$,(1V1S+,."C6Y0_ N!Q2BMW MU7BN26CCD2MEN926M"" ,X$G[2Z1('$Z' 8Q#&(_$L2^/!WN:[&-][EFH3!? M3?6H..ZH4K6GKUTX,>M92-K), MHM5B%DTBVC5)>P3F[YCD2W5>OEVFY%,? (.C:G;DW@JR2I3VEV.LZ13(&K M-40R@1RZY!U%G\^A>U-2A7$$X\@/\\N^!5Z*<6?9+#9)EICR1'4^R YZA4( M+ZC(WAT9QS7V<';/-\U,PZ[19V'@6;=F)65)WKAC985H)FG7D]EJLU=?(#Q@ M UN,/BQ>A:\NQ(#P/0 !IZIBWL6IJE?E9'R+CDHD!M,T_#=%2>_D4-9[U64X&>3K7 MK&=M?287N*JJ=6O**("/X'0]01T:B#@5$^/'#\U#YF=@ M4P/:-]$Q0*P!I8;X]S^>90=C?#([^#'L]B\2*@.P+YPVA=.F<-H4?(ISQ9IZ M66\HE2K.M!Y;K!,:<"IK0P5NXLGSN1ZP#CQTV>,<>)B[LM$NC\83;5N05\U+6]=UAIR,_]Q M]^6S\.$M/:9E%H@\'P7525MOIA*+:0/!!SJ0'COOB?2;$J;;3#BYLF2IR^/' M\[['85+MJAEGU1& /^GY.B,GNX6/FUW/BGQ22+7+N:XPY*4>1^:UWC1+-#DD M\NRO/PQ[%WO1XL(BCT7^BD7^'"&'#TAY<%;4#<6;-[2I9@8--Y+.)!:%^+K< M9_0T3[3K?6=FK6HGV-R?#2^0);>>JJ?C0YVAM%HF5R^F&UY@))!4L,V31[(E M<%(T%GJ<6'H4 =8^;?!F?J+SZ:S-BHI##*?V&8S[%5=4:+]5(G60,99%=P1D M6@GE-@ZM>S9V%V->TL\#]^C?GC0TP)__*MK\\ZQW_\A\T9 M?N]\LO520KQ[ M\%Y"<0#3?VS+U=#@?CO @% X!UMI0<[-7WN#>_3&1V7+L)S?_R*"__[9]H@8 M[*"[X-7W#-BZ>JGX/>QY:#D*/LSH-/#*((G MT0@,R7;![^TO_YQ ;%^@7#"&J"&M+-_[K6I+H.P2:C.=C5CM^[T_.B[F/A$_ M[EA^'N*2!S(>N*#W0>0)"!Q@U ?&RL*NPK]0/W!04,",\)-%R!R;CPY<[9(# M(K8#7/@14-#53A%+C6AHEY:M*1S9*N( &6AS1'[W_@$:#X3H\^C]%+S_]U\D M0_P3RFPHR%5_"I^23[]5A*$(\@$F]];DK3O%DS&&HK,COK(!) =M&>-_%,VU M(2O_#FCWA/=C3W""@(HC_.195-CK*RH#PWC*LGN1GFT/IR'ASMXC(PYRMD2E MZ)T@3TA4B@SIM ,LP<__]R:,VZ'>AC!4(&LC$!TZ0-*CD@I?_ULR%M+*WV5]QF@R1YQP+]H3G8X_+\U\I,G;0GOZO=BU]5'5Z%5K: MP3X!\0.5E4&NO0?YD$(9.3/3[085M[,:[KUR,^*A92CPRVZA7,YPU4BN61/J M=Y%"-7T?X:J92$M(M0J9 MV4.6JZ0)7CK3:\(,*7VVW(@AE2/*?R%^;,CU ^<^) MAO.78$J^ G>Q38^/@GDQ 'R0K1&LV70K)G,5$.M8P_;5E2EFE)=AIM'BR3 M!BU,ZZ74'+5,/FU942EB,IEFH@2EYJ5X.U5=B#T.ZK\';X^M!*>V3JP%?26. MNZO"(-:M%#F1%HFG+ MS.=&V0XU1RT/Z9GJ++*)ZI G9IURB_?[M62M.((M#^;NIL8-*JFOBORJP)!* M>C9;^A/4Y\'<$T,-:C=S1R-F>AY4FJWTN-X8B7YNZO(4-6(Z'+F8 M%F74\F#NZY7-%ZJ.DM33BE$4)RJM\Q74\F#NBV9+4$9M1M"UMKU:Q3*%:"LU M@BT/YE[-U&?QZ)*?$]%6+T5FO.*:;#9$DC@VH M!TTG43>:8#.SA3!=5%;=]KK0*]HCU/2 HVA1VC^E#I\V"L MO%HV#8UB6'XJTBDQT96DI!14TSAHVFJ4S)K:&_;T6AQPI)$=*FLF:'HPK<6T M2S5:'%_B:RXYGD9;W#*ACU#3@VEUE=%D61H7!&*V9/*F[KCNLA$L.P#HK9P#&3\JZ2P.(; 4\ D&S-G)O U+EDRUZVNL.8;QQ#8CZZK M3=%R?8(AV9(F2D*F!^7@"!<2T]9H0#G]B0 MYH]Q;'$+A+$QT;;A19?>:7="J5&$8+!>X8 G=RPQQ;7Z9;0K30 M (HZRS?7QN@8 IM@U"7=LE416@V!%,5JOM+7&\<0N$#GY\L*Q!1AYF66XD#N M)+/>401>J'JA:C8G37VFK[F1HI:\ALX=0V"_F9GDR46KK]?JD[8/5),M9;EC M"+RL]]WY,#.VN3'%T%('78WI!]%M04-/IEIO(FH2B9Q='$7C&._/&RA\1 MNC8B.%KT<[T*?1R!4PH]+R6B<5ZH)7)L2&*@A746UIFDS6%D<1N-7B6;[!:#:?;M:B8MGR53O5.(K )%UN#Y3Y1!=6 MXW&''!2\BN MI-"!BR8H#2W?BRB:*XU&#AA)R(GD@#F TXD,5\'4D/1#0VYGM ? M$ M6B43W:X+C')^]"L"7%FR8:^>XX/S+\T]$3_PJGS$5?4.?VXX*C2(C7,"68)R M:-[ONT-VPAL;7PAQX,/PG.U;=US6O]Z"J?LV*X[_5NP3Q5R\I8D MV[^CR''[.W0>+2 17G7:[#BG'YI*0]KT/?%BD!J3_3S,SF!FOP3$8&"_!,20F.H7 M0!@:4QTCS$U0G<8:^TG)_M[#M*_9J5^;Z7@0_CUIZN.;3,03GQY^+:X?9@X= M_GP,=6^F)EL&FN___4K^^F"&)\V&U:Y")\J&\TE[&0F2H"/;[)6O2P$]R(AX MC5CML0- 9 J_&+L18"I B50D1QY'*/8N@AQJ^U3#LO#398%Z319"!(^'95&^ M+^.'IY(/Z/!F<_7"4[\.%DA,!U@]R&'UQREX' MA\4N3H=/[:Z6)QEX![VM'?15;7)7=;PP\VI'#;FC)UW=)]%LXF;VW*H>9]6U.^1<:^\JWZ/7-^NRKVK!OS[$;&@2J&6D:A M7AF=2E KU23#/<&!^[.;#M=78^"U1*'3K]S_G&+4KR7:?'EIA',6DSV6IOI8 M]RBT.KJ:-T[[+J0:<%*2J[DUM>YH,B3)7@$5-%_.5"I;H=D^_LFJC'2NTEC0 MM!'72\ O.[VL+FB)C]]1L\FFS3K6]-C\^*5L^&BU48$'^+_2EI9'JCS8I0Z? MI3JB24CV++:(MP?%IH".6\1^_4G>Q6-GJL#VJ]BI,<*4&^3,H3A?I""5E>S$'"R'(]R/(%'NC;@Y8&3[;HQ-1(ZMUJI=7/%1MI MM_#QZE"GP0)CYG%RU@:44!LF5M,5U1]/='12$UTP0]^QL=-<0?J*Y75AOSAB MH^A0@D0ZF1'V0VSK3]IE-T^%2_C&?QBZ!KH6&DH*">B)##Z1$J,Z<)IKH3;O M%2>C>CD[S%U:+YN;B97/$FM.7S'E7I//9)>E]$)DD,%',W=L_(P6W\U+ZDUY M@5\V*C%<705O/AB$+M4=.N64$Q7*VMO*9A]O3;36::T[GI< M[]+>\GQ=*$5C5+PI=!6UTUS:=)J8H_) T)"-DW>X4DV1BL5Y-R_-V!=-L\$%;T!3B1!:L8"U[(6!-;Z*[$#K#7 M]52QH V+#M?VRKGL^-(NN>9HO523\]) 6+6TJ%-=RDPF MW8" !HW99"R&XZ08S(\L-,E-=0/QA@Y D8S?0'@V/$5XHDO1(Z>\%1W'>E^, M]>ZC5PRBEV+YJ/CF)8[PGC!O]PJG^AV0^KTF[KBF6]HXD+TN4O0+V7,X"CM>0(R(7A0J0,BY!F,K?2Y' M3="U+>AB=A+"SQF-4@P_-P0_SVBVEY[J->//<[7W+PH8$[N[8KL-JZG7,GEO M5%UU5+V';H2")B1)47=T\J5T_^\0&;T^H+C98.IM3?GLISBO<,ZW&FN[K2F? M^W#A%4[Y5L,NMS7ELY]MNX(R%U?DNG^YXEAX'Q:N-X;KC>%Z8[C>&"[+A.N- MW<24;Y&QKWRK_O'UQM+6= H<64/EF+%[ZPK=6[C.V%E<\J[CB15I8CE;K_E. M#/!1)CZ9B^_GZ?&$$;0BP;2 M@<)T19OP9G6P((!E98J9>9WC$P%@H+I@=_$D@=/=;QLP;KPLV+L0(VF)DRJ= MJ->%]*I5;U>\\BQA73J=G'';B3(OI&A!*@OS$J&:A;[%(1%G44W11/(EG>"G MI)/GT-6.)D)MG &.JWWA:E^7 \U'270_:8&1U=EZ19BYIE#J+.:M:K<>E3N7 M5J@X5?"64,G4@Q!S)+)&248PR*A7MKBM&8:7+3*H*>O:"?9 MD*QVAW(#:$%UN>)W+/GCZG()'A(6#;BG.[),G?K(\FUA"Z[SA>M\G1)[Z_[0 MT.10SE>?M%P7#8L7:^ZJRZ]F]G ^ZZAF.GMIA=#Q\I:R9BH"'[7]F#IR:<5/ M+D0RABS7>.(N0>'@(2Y]@PMY_4!H>MV$C0_Z++05.QT]G(RIA8 ME4G:7Y()?5&\-+XT0<%S5\MQETA7%T.EPLQRFM1 ^,*&&E'R2^Q87(D+QV%Q M)2YN,%&0NVA -ZPSKM#?5FW6"7]I*_.R"PMVQ',_6O MV]4?N42&V4.@<6O((((&0489@I+GK.#K/IS_X-5 H=29-R9ZC@&39*6B69WB MI8,)Q8K3F29:C07/U,CJ,.,+:P)P(IGX9/[#/OO=JHOQT@+W:=0XR*''H/$% MH/%Z*H,W]1W'3]AEHJ1HW-1OV)/VQ=-;^X.X4JH7_(0^I;AEE=, ;0Y'"$L^ MEH M%!I-ON4JB5EI2A,:%R@2;\]*^-N3(#.<2HB#Q=9,*)7>[QBSP\+WQ,Y*1XX( M^1O%.ACM]ID-:\N684BV"WYO?]D=%1K$QNL]E9;1@#O,!TZ/&D#U=ED_&O!H M\,E&BI"K_!^@ M28\N(!'^L2U70ZO[VP$&Y/@Y>-+G1OJ#%V^;2D/7,GP//)GHUZ$Y^0XTAW-Y M^/G>8 2F^M=2_;4D%DSULU#]E6P#3/7S\/K+9C:F.D:8'T-UB# 88C#$W C5 M,<1DT60@2/W\>NJO++NQD_C'%_Y.[=3<[B9:=^'2SPO;%O)V(9 MDD0RE8 J+SWTWZ'S]Y]76SU&0#&'?8K#J(O3X5.[:U S".^@-[6#OJI-[JJ. M%V9>;7^9T>^_-+CAYE;Y-AD;<_8-3/D6.?O*M^KSG,=^J3+.%^OYH,DI>13FTV^9HMIRI5+82LWW\D[=P)!Q2HYE&C->IS*PT:.G6(.E?^H!/ MJ87W](^BX> MIS&PW#:P?('W^=: 94S2S4FJW93YTK2HY @A-<\;E]8PY.[2:-I,GB 8EJW' MA%PY89<7$ G87W\HZHYB7CKU=S*;Z\(><<1&T:$$B83OH3CW/12W184KO'S[ M6T%KH&:AH:20=)[(U&OGTGUCK>=5?;8J51E04$V&O_01S-E@5F(40Z\*4:^I MK)E)KZW..9%!IAY-W[%4 M]D@<'JW&"%T>HZT.IUN[(2'3;*2ZZ3(+2V.!<[ M%=FL-4<7!C&JYQ@3LY^E]6F-SUA]?37,#!H0Q*!=&;MC2'P;#\:P+[F+$6/8 M63#,F;I)#[1ROJYU%:,QD%TAS@B8L MG;R+OUBXYEN&#;/:$B@1&ZX:P/'"3X EOL7V&]VY_:U0=-L\D%3T!3B1[=J3 MEBQ37:<]@FK$U:30*LW]W*6=B/'VHC: TQ*$,8(^X8 M&L&,PQG)S!@,9Q]#9S-)_.D)%.\J%-D)V7K M6=Z MA2CR%_G^:XAPA/=##L=+UXD]4Y[N%<[T^F'ZO>;M;%8SG2I+: )PI=4R7ZO4 MR\REL^6*SF3<3!*KF2X9:J;$)F5M7!^)263>)F-W5#*.PQH89+/D*WE'9E(5,0$

[\$)=M_+%=JECZ#FY;_3J1EKTP*4% MW*OV6-*/VC8Q;; R:3 -SU@%"@&+*HO' -+K-A\O95(Q1F<*?"N6=)5>W+%GB4OGD4^F ML[60(BR:EPK"<+(:C+.%%8<(B&R^Y!W!8IS".(6K<;Y8<%H#XF* M!MS3G4^F3GT^^;:0!5>2P 6]3@:\=7]H:'(HY*M/VJSY)*4T-7Z^U*4TTTME M5M*L;5X:LALCFRDT[8DNM))1M=R60+]:&HED#-FL<>*.9DD< ,# A"MV_3AD M>MUXE3LK16Y5\C%AIBU9S_2':U&^=((#[[&CAI1;E'50KEM6/^M-%:1CQI#Q M&L?9#1BL<#VN;P%6JL_Q(+%A?XA;SN;S@ [S -;=PS:UO=)C@"J>, M:V[=Q)1ODK$Q9]_ E&^1L[_KSOSS:F[E@#6"2S->18*26R=R[O\5>[]O_WLX M\@](B O"X!I>N-(19FQ$UA%P:XW(F"C 5;P@&]89WVAGJS M;K!+^\C?'0[86[9CR?G7[.>/7"*O["'&N+5B$#6#^*(,$;';IJA1K9L%XRTZN M(E!]@4LP>I)NU@,D^50. T:2'X$DARGM&$D^@B0:#^1!NI17^94QT%.&J0ZB MTJ5%?\RXL4Y)*DI\KNKYJXJ]H&=1#HG^V],1_O8DR I__JMH\^U:A\L318YA M)F2#O^&WD.E0RVVC#5/)EF%(M@M^;W_YYZ.\OJR)4=CFG+N_M6X*89XL=??^]^\='Q,O>)^-:/''3U6_,@D\O' M'.G/HTSR0.:"=/I]&7\BE-HIA/)PW+L><1,QL@%?QDV1#+B1J;2*F)87@2.) M>%;$&P/X#WS.C2@^^C42N [@(.\APQWC+\P\7\(\U#4Q3\%$, 8[1NQB6TX MZ98:<4+T@_\:$'H#AG+A$T9DN%'/(K:#H'@*?Y$T)3)JXNS;5?'3#"K0(S6X&*87 M\N/>*"-/V&V/91[CXXCA(P4SU-0@%X1K]D5C/$+)/8&\%#5CS-.1MORA"[5M M#PJ%L8H@;(:X?4RLH+H=') -@'P+[ L)Z@7PK7/X62"0&E0A=@1/,X.^A/O6 M?:3]V.FF2;!A0'UB-(Y($1-X"\O1T>LM547&>,2U'2 I$4EV++A5O-%D<)&6 M+S:ZJ\2HGL\"(EWD*W[,&*^*9F/?:.!YG(A6KV';H_%-4A<&IJ8'>X!;,+>7+,0U)[J]IF_@^Z/A'J^E7) M<<2\.G:J0[,C"%USHJ2K9*97YQ>__E#4@8X?4C:8LGL7D#JCN1[$!P_1,6T9 M< B:=+==4(AS"R 9WAA]6_?AMF!%FIILW04HEY9,29'N(QN$=9^'V,='(9<_ M/*I))P-=\[66NUB\ 4>TM)KI2QOC)[!D=HP=V0"2@[P!XW\4S;7ACOT[@.TG M6WPL0$7X]R9UAKB/H4UU9T__M=?M7E]1&1C&T^UV/PBWZ>&$HAV^18;B#9RM M;%/TH[F],;D1]]A;NNS\_'^[LWD,#B(]RG)^;ST'.]3;$(8*](01B ZAD.I1 M286O_RT9"VGE;N::8.]CCRK0=FB(P!$2D?7?D9W?'ZW//0-U&=VAVT;KB!I M13E-P6/;SYQ-HE/XH>5JB U^!XHG1*(IU\/SG&=-M9 MD=3CK%[*9.L6RN4,5XWDFC6A?AZN2_ M0PBH'Q]C["0*&KJ.A MV*TOQP(_*<]Y9@PF@&1+Q<*R(:*FU&EQZ+@R=, 1+RIO6[\88F'$7,ZY5;== MA6@[RMWA9C]A)]P=W3LAZ(1:/4F$_VZ-7! ML+G%<$^S>X]/]^ M=>"@#^!F2#XH=%%J1Z,;=JT14\M2FE#3!:(]5]>-'LO] M^D.S]XP+EO^]Q5^^[?+W?5UMLGHZR4M^7B\TR.'$$+YP^5.Y)$%' M?4TB9BNBD"]346^NPN6/4\>7WP&N#60$[,;J[DWVF+PAY-8PVZC%5XR7>^ 8 M&4,SS[2@N0CW/TWQH:WPB(K>6/*.0>/474>1T$^F(=E@H?1A]^6+3?"F2-@0+)G@"TY'HI"H2%WD6D4 M;!UU"]I+D;_0\E+$/V4NTZT'OY/__.?N61)<%3S 66XF^3C'FAK,D#.58'[? M!S(4;="6%I64H'=MA1K-E-PB:G%?!QFQ?-=DBF:MR*^2C8S(ZB.=H!:__I#D M_6$=S[=QO_MV]C\A>&SMLVV=->HM@/)H%M7,B!1QPR2.R%!R-?=0X-Z(&I&C M@+'M^X!:]Z]CP'$LV_K#KDIUNYQP;C)P'IX]@[!^-&&P9$W%D6Z6,_IJE>\/ MU^OUL%1O?)V0CYGSO5L1TQSUZ#,/X[M.8 ! MS4)238_=.2'Q>K=67D?UKK?X.J HBA.R&'/3KDX5IAFR4C"K,AC]^D/'[@_3 M__]]8?_/#UESH]/RNLU^M4-HI-I4^.1LTJA]H=>'&S;6PT2J:@DUC4B-:MV$ M1(^A"4=3]X=W,9_$ZQ/B_VLHLT6S[X(QU?[WX+>&D&BNY;PWTE=Y54P"*]UW MM"_$F-8PT6+&XT)?![VD7BC%HFJ2[)Y^Q" M.CY(C/ST5P86%#J>B:D5-:]/RXM%MUN+SIHIE"I"']M73N)9WC#-\52QP+V# M4K1VCV<+/*83OT]I M&VMN=K88Z2I1\Z/#Z !(ZZJP>+J;%4P9[KMM:9G17-FP7*@_M.$K4H8EZ[^V MZ2G5/.%1QG" 3C;EU?JJ4S>Z[46H4 0DY+P7V@5I+'!K!'!OM.&K/<<'YY(] MDG@;ET)(0:Q9J_"1-M>#7/2P8F=/YWTJ3>$*1#QI"4('Q[X+"*(V"-T9DNL" M+S >#$T*-\O(%'AC2[F/9( *' =9$=(R;.CNM=0V?3M MD8F'*;RD.>I^I[O M!.\/= HP\Z'B!ILCO0-,;A/R=X.^HS_.L9)>;X2.\BKC^<0 T(V4129.(K@4L+OD0*#N!MX[*H1S0A MN#5OZ0$_50Y)\7;Z3(&$1 "=;$%3 294JC9/A:G08(E4L]!6"9TB*7KW;\_!A8O!ON$YPO)X!E# ]&\#G M4.JP>6RJ![."%)$B\E@R1^' 'F8"5V6'&^!7^Z.W(5];2ABATW9/#@4T"98 MZ9X0W"-SR=BDLTF&82T@0X!M[PZR;!=CR"V:ASX+/)F&I@-$.!3D0ZG'P3M< M].[-HAZ;U_;(6T :N%&M$3E:<+_25)3@[#VP"7H-6AEM^^:0:=!RHKY-L.'] M(Z,.J;<_V\=F<' 04SW+";R6&VK]!3'3_4]$4B;0@MF1JG"1 O)# (]"6OA. MX*Z%^\-T(QVPF0;E(4P#ARV"Z.GVS!7L?0B%*\C2AD2&&G D)IJ#0BXF.=LT1GFGAD2U(W1WC(ARU98XL- _; M\1&Z!9^I<' :>@*M%U2<33/P1",;"8PT%#1JC2W?4/8X4=88%N$P@M7:X$=XZ.TH M-QP1!?3WW$N.V\'@Q[9L>N=T&, MC_=&ZE(HR=E\Q4X,L^,T"BP=21B+P'4TX"_(NI]*6B @OAERDO)XAN/X*E 0 M +I?RFC0=H<3@]-?W1&2)I+FA%(@*C0+^$V 8A BW:8T/(C J MVC^TG! Z0.T"Q:W"D(L52D.H2(50#05BVTDP&"=D@*-"O'.\]&.2O'\X"3)( M '\;N92>I<\Q+MVB]%.^/C:*8$*V[5BVH\$);()P9J"F.4K(]$C4N58Z_"Y! M$QO_2WJK3WG(D?- GW=Y]#Y47.$]]L"S-1.B+I"1X"S@-%U@/I6:0R%Y*D?I M@ D*9GAJ_>@IJC(H5* 0DXP@3:K2N%**0D)SY[W?XML0IU_(YTJ0?P@>Y"V= MZ7O3";,8_?IC6D?*2#SY8).U'HKA1N2.28+B.UO-Z-5PZ9?DJQ[9H5 \5Y)G MOH8D\T%! NB,7F M:'O&103AD0=U&#B<.;/WSIKAZ] U\0 MMX'C21MM>FNWN[NTW-@1 ?!MU(>-RK?:](0Z,B&UM,?#KQ%KB'J%+PD5'O5! MZ=K7,T+<76J!PBD]&%?!#,.Q!*KYW<;DV!(!&1E;O1 ]>'20@6:$/KE[T%&W M= WU^5 MME05$0[.8619R@+N;?OHO&T;'%5%P+>[%&]=@:>FS!N6 .ED4-'> MF9'V8%X'%A8$Y OI64_)$QA>(34#.QF80(5&4J */#L]]54[:MO?XT-H=9#9 MY,*5#=D+DADLX8Q#\V);T"%8#1_RC+.1J[UMWP/RV PL'^2+\AZX;ON>HC2&3H1<. 1*PK?T7 M\6VT-1B!100V1C+BW4->W!!;0YY-]&K$6I 9)..0L7:,XIW9N#L6\BXO13+O M -!'F7IO:ISVYDS5]RG5C_&^M4\;O)F?Z'PZ:[.BXA##J?U22:57=D!AAY!P MSTMMR/C@;ZQOJ<^92F&S+)PL.SY0CFZ&XC0[&J96SHB7'$,=6(6"VBN.3JXI MO/^X^67)DB\GC'S/K&@\4RT OAAS5US_?&3Y+MR2KF1'=FZA5OB6OAX-,G+6 M3*XQM]C+O"L.6V57;_FVWAB#7+I7;;Q-HWS] V^S[4,]-0"W/C7-MK'UA9^,%/AKA1Z]I#]O/6E/IB3R$R].Z(S(6WKV.Z!>CRU ML^04ILY[G"Y/[SG?7-\ M+/2:O+THQ1URG-J2L_'07X3J'[Q \5Q4SX-"VR_ZG13AIY?Q4GP0E\TEQ$+B M_K 4:>3-!'^L[?$^#2CP[S^$/O:"24]M/5E!Q94PL'87>.'A>'SX@K RW@A@+@CF% #$'AF4')E0008.,!P'Z4=&#ST)].8B0#7W-4,*H4I Q M#E !'0U2 1U]"%X+M>B0[=]"TGU-$9/T69*>TFOQ?/VHMV8P/2D0AC.:GF8T MT3BC"6)P(=;NG+0U1)S^DE;]'-=_*@-1*IPY;Y MV")G#/1I7"AEY((UE.%>MN1@R_C3ELEI8Y:5F5I"EQ*@7Q'[4;NSX)!*_[3E MT/.2W;0QBA&Y>FU"T.5E(SX?P98'?0[E?-WVZ!K!^]X*U.FVTRC[#9$^[+-@ M-:L+MF:SA!:CM+)8Z2]XF1/C(O&TY61-N@-> T5"&[/FG(Z5XVT.M3SH4R_G ML^.L[M:(J)DI5/1ILIN=C&#+@W%ZA5%E,9\TQ_JL:,7SU:[4&LX:(G/X]B)3 M2M5J]7F?]QVN 0WK;D>9<6+BL*74[+9'=174A6F5B:>9?",MECDQ>=B2C-?3 M*86?5@2P6$^[-)VO#!U.9 ];]N.K"9-M*8"/MC6#%K-6W:@M1)(X;$HEOGL&6:@W4](!. J'4K71^DB*HLA+3YJ55642W"1"'A"I4Y])$ MSFDEWM<3+;41]XPR 9N2AP,P.:,DVJ.DQK=DAA_'L\WYH,"AI@<#B'(SA;!6 M?$>(ML>Q/)^RJ5&B@9IN!W#V#$5>+LO34]\XY9#DO<1GFM6"]5<*U+GFY%6GFOR#X5'^'IK6W;D M1C&8$+W_C8#[QKM!" M0:]#5HQM(?T%&2+[#VR-YS $=1^I/]-N-X/K8#0/;]E))=L=26AN6788Y$'C M0MX_5%44*)LOI86$@G#^0_*;YP0!F=7F^TWVZ.7B8:J%HGW!Z,*,,Y1P :GG MC<-YK(2X<M+RI]/ZF&QD9\O[%VW9V M5.&=[E'NK@IY>TN1[=]15,7]=VB+(J?_JS;@3E'[AZ;2T+40VYS9]GM^U(?^I.X"H>X;$"W$5"T%AB;B&A2#Q,ES#,F!@NIJ%P,!T%0N!2BO1>"5. MMQ*O7Z3]+IWU!]X0^1H(GS^H<%(B0'L(??A_O^*_/DB06/P^F7AZW21I+R-! MV8@+W#9YE& O><':!Z'OQR@$%HI;%@KJHT)!)EY1$2[.] _Y,ON\_F-9X( $ M7\\3S#=@B!AYA\'ORCC_LRL;YGH=_CR0_)/AWC=6!I#7_:20^(UI\96,B% K<8-R\,MR\%HWA6=-J"GLQP*NFU87Y_L4[NO[2S&V]=\MW)5-Q[R)@ M*0,[.!@9QDTC4GB=^'\>KN[ZN(3LEH"690 >2T!_C=!4'\/[FY(LI]LH+CRU M#Z49G\"/>F3>^SM!#.X$BN6CJ.X7; 6'A/F?$TR5O-*)[@A_$-;>3:2(W98R%%QNFRG4ML*[<%L[:4)!UL3#(9?8KVV:FF86 MJA5G8!-"K2JLAO.AW2K.4>9A[!N4DC@5<3:I).\B#\KXH^Y8^K!@S9$/,)YB M/'UCY.<:YWHUD/K!\X%?"ZE2;RWW3"DU(Z*KKEN?6UYJD%Y S&#."ZE719SG M(?5Y\B!(96/O M3KMTF[;\Z__#8&Z%7L"1?$O <_THFTZ.\(WR'[BD1VVN=: MPL(E0-WK:WQ^E>:SCHNB^EJKS\Z3W"U2,STJO9RYCU&(^ M-/05974RC8(XG/ C*+U,(+T4PYQ:G;BT5<9OJEJKCP=?WGS"!9NFYS9-OS3H M\]6:R_>:_4]4=@JH+'98XW]CA 5CY7:JC[2M[;DIH-2E%6K,.0ZJ*1G3H#$K4]R+ 3]2[S@(D M4[(P!7V[9@I:UP.I;K;/UJ>HL@"#$@P.KXG\F8Z=Z.;X++82WX6)5^SU/KD> M=<5S_8E:TS-&YL9I?6!K'D$V,!X8T;3*N81FS0IKM[P:1GLC,;EQ$K'D85U& M+/Y8_)]7@*YXNC]1W?D\ HQ6M.A1*Z='E#2% L!KR9EA R) Z&BB$R\AP/=T M-&TJ<43^*@=Y8@_I<+^Q 7AZ _"'S_L9]]$/GS7F\MN:]_/NC>\Q\>LWPX,X M$%:MOY5J?9YMG.8'%R M*YIZAPI]M##;T\LSH*+,+J(N-" I\Q5$J?.I;PA<7Y MIL7YY]G$)Y#HCUG%YY#H0BRE%MYT/BNLR2**)Q$^S?#,G M=N!?>CY79 !<7,CQP:@;T4^>IJ0_XAF7*;9Y.EHGB!JU'%#+MA0OVT$%\%!# M(7'& T8"?*3G)ZDVSX-!NN(/J5DWXQ+49*&8O,DUQG)0X_^-RLW?0;+$*1;J M*4_N!IV>W(;T==446/O-U11.,ZAMD>IM)A!EOU@M_9_PVNLW7:H6I,967K@^ M%BR#.O-OOD/VE#'O#>N*G.EIV\S>%I#]\))A?C.RK&--TT'!]J"W(_725\<[ MX)::^_".X.A6>N=JL;HAF16 @F*BON:BT[Q#Y?59*].=#-OC7C'S\M/+!:_@YAZ>&4?6OT+A#*O96'-Z9)> M]=51F6C-6V:"TJ2R76MLAHGPP55Z=GCCG[&Z"R\3#^[,DPS9-QZN,=W>A+#I M>@ADR7>#>R@T)Z)!T(#O65B^H43&TAS=* A,R&:>%MU2YF27ZE'VL4(GN[J& M&ORWA<;M!1([&_MSY58?MX(MZ,8?/T%WJA%?O0>\XW:,CVBTUZ)8XRL.7[GB M,(ZO.'SL]T$<\16'IZRAA:\XO+8K#E^\?NS/D2L.SWX]41F,)*,B>9!ST WR M(7%'P)2AQG-X&1$SSZ5I(\,G^:C0&\5UFRJ,FZ/#:]:.MSOK-6N&9H(M:)#D MRQOKB_>N4?>(&]N%:HZ'3+AA^M,)[,$X]W$T^41'B :?')M+H#T\CTV;,G!' M9I@V)&T:'J8L2PL7ZH[NZ56(@VF^\UJPK=VJ[6F]\N/0C1'(T M^) 67I\--TS-E)P5Y''?"6^.'Z+;U& W$6DD::;K153-F6Z>M6P0W*&]>1J8 M\+T .-M[XZ $N+[A[8_%O8_L3EF&E@*4OOW!&IH4ZEVP9Q>*OBG#>>Y2!JHY M<#"1QZNV0S+9%N2"%7Q\&ER@C:ZE,_<9#BM M6T:6X=(B.D86FC<._O8#\(NX&UO9A9,=24[ 2&CT&YC;H..^?P4^#M$,T1P: MWE -#3J#-'A]U$%F-(K* OR+:^$U[@_D Q1-('.FZO/P^+-D)& M,:%=%D$7^D$>&1HKM$S0H(7OO=O<=N?*L!/@[CX5CE0)&L .MH\$KX03V>D- M[FQN<&E[.! SJ![I!K<0'O8'I4X-66OS5A_."@[>!.@9)$#;*Q$W) LV],0_ MD)&@?)G!7>[!U?+!$:R(:05L#:<'91/NO>$MC[MBHE@@;!8.X('2&YJ&\F=H M.C"TL64I(8.&GVV79"RYH6&[H;RR1^VA[SVA-GK;LP2'L]MY[8.THC<8&IB' M-Q+"IRW3.$YEV($#II8'KD5*4AN?P(Z46[Z'JB9!/D>K:R+6-3TX"=^T(?DT M.3"\[HXN,YA+AO_@?C"0WH%H+0.@!+G8%K19T$K,+0/!BQ1!$P+NYBY.VP!+ MB%:0E]V008:K_]_>MS:W;62)?M]?@?(D6_8M""8 /NU,JA0_,MIQ;(_E3.[> M+RH0;(H8@P #@)*57W_/.=V-!]^40!(@>FLK8Y%@H_N\WPVB*G!XRY[F#&%G MVGB>(-4!L/$)DK= X6"7 :J9;(,Y&T*?GGWO/]5$+PNS8= I_8[DJ)%]XR^"X2(K,H/>BZTX+(P-UE MA^.0(A$A)1MN&]L?$\_FN4*&P/^ ]L%.FI&33S L&ZJY;-6!'.@<&'O*5#Q,(9'M5BS'R.AL3YAE][ M ?(*5[^9=0./\HX6+DUP*<)2)EK)WQ(7O9+>3 I1T56VHB Y]AT#I/RGCP/C M*MXM4VRK"-S!(W!=%8%3$3@5@6M8!&YC9.HD$;CK^9#;-\D[LEN7HV[)/SY_ M'EZ^Z43?YK_-9W_]\;__<_/N?VZ/'T?;3,#YXB$PONC"1HRGV89&)/SN7[\# M&6GO_HW$=.B@VB[U'^8>MS$>*/FW/LFY-DYQ>?U&^PK6F*OU.QU=RZA'X^2S M4/;!G2Z>.Y8/"O]H/M,PX.'3#T;7.2J):N?A!Z&Q[4=&CD^6G/MJ"*6J:QG84YRK-%&R;>;2#^%,5 MV5:Z#>EWP1Y901WN4 WYB-WO43>C/,]%S[.G/,^&>YY/=6X<<@UN>JQM==WV M\&9@=5HW;6?8N1F8[<[-<# :]%QW.&;#]C/^5OZ+*_#E>K]=?KS\E?MT;Z^N MW_Q^?7WUZ>--Q[8'K8YXNMQZ9Z(20&9[,;Z7#@&34+G([L MG")L=ZUEY]WJDY+K#2M\^-_KJVOMT_N<3XQ.\]576(2>^?+N^O PJ=Y)!V!DO>S1Q+I#T9N@H,1;&ROB) O\JEM\!.8.PE0 M3B^FR#'3[&'8'QR$>2*2>SK\VKOC.?;1/$ZB!QY-GLV'/GA%CLS+8"+?]S4? MG V??)-;#"@'Z+F0MX+9@WGD\CB_%XPC!]::NY0""1@;Q9C(9=%M**M;PGFL MN1,,^NO@U&@3YL^T,+IU N\O)YM/S0MHL6X7"[!Q(XPR6N++"*=:#Q\$-*@L M /RZ$F M]"F&Y3U ;^ ^4*$ST 3_-^T,EG_ &,N@P M"ATLTXB2,4 [1 I(\2Z*26+R_#$1FR^T=]FAGUOX M9[$$Y4W*7SR?[J&Y,G9,)PV!Q.0[N-,_Q5<[Z,K[(A8 M^T: H1AQ_!Z '"9)$!;R_,#80\6"\$@/R7^!+0%>*24BS6LP09IE2^Z1H*&->;.?)[!!&8_Q#1X/D[H.7D.YXZRBR#A M@!7!;J7^!,&SB9#O<7+!LVLTX3]_<@=T0HP"BT;^3[V_Z.=BZ1D+1F+S_)-, M%F2DP4N_V *4*;HL9$1TQQ[B3-YQ(@5H@G D7A%9! '+$ISP"G8O4V\D9R M8P[_: AOGP"!?./X_NG( #:844I]V# MNR0JNT(PW#!OGD+DI#RV3H0M\YWKW7E^'O(7,D^\%@'#N>>/Y-JQ,V8)*!07 M54B^?"]$:F.%'](S&<7P5TN"NF5AJLKU7%T(UAN(=X542Y%_R1KC)Z^J! =D MOUFB?: @W"L<# CV%K$? 2_JI&1 0^-.8$->4-S&$N 0IEA>"*]$(\Z/0PEE MC<$^PRE:6_#S3"/E=@^;7C#(#.T#L!BV)(&-$,]G,U]6A;#5QZ%RD7NTB<8L M*D@?D"[T(4D'%&2)K%[$=>&4::W9G1-Y:+>E#"/,JS^Q5F_18B19^Q?9!OQY MV0[%]7"JAQ;M*0D=^7)\,@%H%OH4_C. 3HX;,4X.?J-MTPA[X$ M? 9K:905M6*J$^!CV;A&-4&C4)85T3IDVM[C]SF(E];154[$3<6-%N)&?14W M4G&C)\6-3AF-^,)0-Y"C\"F5IP>,2PPV[M1;WS+Q[.?W7@16Z+_F3H0FX:<[ ME(_L_J>7WHEB*.BF@7?HA_>DP8A*8I:0R$\F>JKM>/%>5K.*?I:HE@2=1>W/ M:/L -WM8-DG5A:17\YG>7#&J*+W-[&B/[DS]"13=!O2O\OYIBAG M\J'(*,V)%(5#$LFWRKUS,GGTQ)2V;70VWJF78^+<*S%H,P8\2\TH_Z;@YBLN MJ.\!+EL%I%"&]&+YJ#,D9XL=6#!NR!7NFS42_WW:[!JCWU6(J B6D;?4HBH M "*ZAM57B*@ (BRCI413%1#1,;JV0D0%$&$:MA)-54"$$DT5082RFBJ""&4U M50012C15!!$="M4J1)P<$DCNZ&/'_[]F=E]]E@GTC8L M<_&*-'/V7:.*A&-<(Y*.W%PSQ&-;8(P%[(J:7%NTJ+S6&%A=@WSL"SQ5&&07LM2D@S89K;76@:40Q,=8U # MDK!-11*'E(S;(C['E8RG@<&V8$LS*4/QRV/"$,V$BC*YE7$JW7_/:A=7F,G'B?6*?OLJ"9[O:G%5M1R M<&O^A!12&VN_QEST@_:&QNDH3CJXG5]C*OFQ7"II@H6_D+9LK3&5BQF<0:K- M"Q!YJ?R&BOH-]4CLG5BR;.SS?DY3D<(Y.%!X<3+>WS)+L(L:EW)N6?PB[?E6 M0D>%%91X.+L0?4$@',EJW]Q&4@E1<'RPU,)X/SY8MC6F-A0LM="GBHDJ A:E M=Y3>42Q3:FM?0\&B](YB(J5WSJ\F2;%,1Y+F/% MJQ,/7J.#$UIQ4+L6X66&*8<##42L-/?O5F.EFRWE M.!QF$&*EJ:-3WX*JBD7,3A8>FP]EY548:?#;.\\5P;(PF;!(&^7JM%1)UA.4 M74UF Q_3+:I/Z>A.:K!CZYU.Z7V#C2(,$2VK#V& ^.Z5IP(;A>L&DK=2!0U1 M!>V6/B@_E](HPA"QL?H0AEUJH*Q1N&X@>2M54/D+0LH:)Z)WVSW%*V=T)\AV M5=!JNBJH<=V8V:?UOX:)XQ?"7ZO:%%4QF4H)J7J!9:W7Z^BMGJER0LTK)NN" MTE))(47W2CDHY;!&.71-W;94P4 #B\DZ Z.OE(.B>Z4<5#'9NGB9K??:-9^^ M6SWRJ$,UF66ID-3">=O,BL!F11W\R3X@2E,Y3. M4)QR9M5H-2 +I3.:<&2E,ZI7N%8#X=! 3CEYV5H-R**^.J/^%6Z_1F$<:[,H M''N)JF,[=#;JU'*@4E!JS"UC[9[>-OLJFW6D.K@:D8_=+[-SM.D4H?A"*1^E M?!:5CZE;?56$?:PZNQJ13[ME6$KY*+Y0RJ>PL MKN%LJX&BJLQ/E?D]1GJ@D\ETYM( MZ8V4Z>J"SP92NKK@L\XRO7YE;%BYQ@(6.3Y=4^",IE[@Q4GD)-X=T]CW&0MB M%K]2%6UJOD+-A^_40/"IM,RIYK+5@#C.*D.C6$1I$:5%%(N8&H:W6;? M^Z/(5XGJ\Q/5EF[W.XK6JUSX]0A17>)-!(W"90/)MY&B^L#57(=I>==-JZU( MO/B464,:)S]&3'?2=A(%6NI!$G-T^R' M\3ST=KMTQZ/IU%&'6S0!4ZI'7I&]4@U*-:Q5#59/#98\@Q*L_56#&MVER%ZI MAK,HJSK,%9I=-7CK#*JJ]J6-GF$KQ5#O2JDD=+]=#)V8C30WG&(GHY-X8:!* MH532YHSSZZ9N#UHJ:7-.E5"F838[9Z.H5PGJ,Q34'=M6I'Y.=5"FT5&"6E&O M$M05+8/:530_-]OV"T7<-2Y\@G<\'QB(Q 9+X]J7.KUEP)6N1V$;/I]J&L+^ M_RHWCG,FT3F5L%"Y;%1>MMX96"IET<0R)W45B")[I1J4:EC?T&&U2L\--)TZ MZE#FU"XS@]!TA"NR5ZJAPF5..P>YNJU^Z4&NIM-#!4N;,!1FMHU.>;&P,T%R MOH*G5S[I)+4Y^+3G=2:7W=M$J_HKU1="'B7/6ABZX:$J6H M6RD"I0@6[DOO]Y0B*"&J51^ZZ!H]I0@4=2M%\+1(5GT8?L.PY>-58_<58V9RBA5H+2@!C>I-C"A=/(2LQJ017US M3XH3E,Y0.D-QRIE5H]6 +)3.:,*1EX M705N.&7:TR[T5N.D$HME"J1ZF>I<**EME6/':DHKL:48^MZBX4 M6RC54Z&:O1H)CUWO!&NK>N]CU?2=&_78MM$M.^1X)L13N1%RU6.3QM8"-NK( M![^"K0;)E ;FV Y^568-T%[?')JB="73E4Q7E'[D6S5K@'8ETYMPY$;*] /? MP%D#YFX@I1_\.LX:H+V^,KU^M6ZOQ7T%FB>*W,2\MA>O5&&;&KM0\YD\-9!U M*D-SJG%M-2".L\K *!916D1I$<4BYS77K0;$H;2(8A&E14X] JX&@D*QR*DF MP-6 .,Y*BU2N&FSCA:)70<(B%B?R+@55ZZ5R2-6H"RCK@FM+-^U>Z5=<-PK7 M!R_PVN7R:J-7WMW5C<)> PE6R>,JR^-VMZOD<:6+LW:0QY;15O)8$:R2QZ>J ML3I,EYY1*K72QEV[";+9KK5RJU$)6ALBE="UBB*J54,WP57QJ.%?RR./6^K&S_H6<8E;!+Z&B>-KXV(O2: M5W39_:87V]:AHFOA\(LQF@V0X#^Z\-DXH=T<<23[F<3K5-.Z&GVB\HAJ@)9J M6EE_Y*P ?6#U56ZIQE58*RZAM\HK!6X4*AM( MO4I0GYYA=[SXO=M7@KK.Y5E+>#?+[%-O%"H;2+V-%-1UK-6R=*O\[O!&X?W4 MU5K+@MJVC%ZS174=:K?6A7ART1SM^9 %;.PEY774G4G 3G6HJ]$H9:B_0;^K M\B5J)M?R:)2^ZD]7;*$4CU(\AQH&V5&*1\WD6J%X2O3>I6%+;9[?F1).HK+QSHQ50WV!(59X%T;>'<4SH<^ M.Q;S%D#R0WFNU8F/=8 $UJ!MJ036TP-V-2(,JTQ=U2A<-Y"\E3BO"-?NEI"Q ME3 O(0A6([)HE3D+N%&X;B!YGZTPI^A3C;AV1]N\9:KBLA)"2V='&&;'Z)7= MBUA'PM@]PK3N[(_2Q5..2I-=5YM!)6X9"G5BV* M7)5T5=*U@>1Z\/Z_*AQ22==S.61#I.N!6_SVG?NCZ+?<0,N9'[).XI8B(R\3 M9^@S.#'^CUQ%1,/=6R7^\+F'7,L:6^R0)9_0G[>'"=Q[">?)J['UG M(PG55DN&Z.2ABQ&=Q^ZK:_0ZL![_ )=ZY26 :/?U MIAAQMPWE_"\W/SQ2(A M+1""5T;4<'G?],D]0Z$&FXRFC@\O^\PBEP6)(Q3$;:0Y\H,W2 MK[5PK+FP0N2XB1:Q.Q;,F>8$(VWJ/&A!F&@)74DX@D^34*/J,SC23R^]$LXS MV/T\!KUQF89/,.P_OU=!S7L/_!]Y=S__!/^1*[L^ 3^\H@,N M,)!-FX6_)QP\+3!GX9,7W'__*W^:K/X1Q508O9*!^AST!& L8L];=C&,F//MPAG#ZU\Y_KWS M$$O5-##L3,#(K=F$>@3KCUKNWPB4)9Q-G>\7.;@)9N>T('XF/R.+(_TPC+W$ M"\$.8;Z3>'=L 6DY"6F91K>(\;;)Q=!HDXB-__[L;U\_O5G/ M%();5S+P5U(V(&S>P+= #G'*#\YVGE@$]2H(EDBT7@">1EMR'6LQNIP@977L7L.CV@<3PNP!>SV"O\ [\&\ 7S_T$_M2UX4,FNI.' M&=,UU_=@!?J#GKYEX2UHK0ER/+SR%H%&T-Y#]W/@("P$#2(V7([%(M7GC!]! M\JTE4DTB^5:QFBF4^V[%P'VCT]MD;.7H)[=^"&N. 5%2*,N_*77VBLN(>P#" M5M[,&3+IH\XP#OUYP@[,D^O38^:^BD?\=R>K=R=G14']$% W#6MCL$I!_2!0 M;QNM@0+[\8F]JXC]%")&"?93B!A30?T$$F9CG%E!74F8LX%Z6UGLI8)]WZ;5 M;7[J<8LG\Q&98>B/RBVS/4X^:ZE$_*=A8OF_/[T<%H_FACZ> M]^_/^L\>F?]I#PQ[J9SXE&WIQ6CK#L#Z.HD8TZ;PQ2366#!B(^TW)W(GFC70 M-:MEM8M04[QP[KQ@;>,%+L%7M475BO!YG'4)#CN[JR<^>C5(H'=R.#R-!-+X M.@>)$XP(*IM^]-,P>OGSUJ>R4/TC*6RI>ZFA%+;42%\K"ON*"72E09NE0;=: MDWG3\<3$6ZSC*-0W//OYN1=HR227G>JL(P.,"1>=*H66?F)G"SCFQ5F[L/0MEFTXY\JHN+%6$?662? MSYE+:'D_N).Q9(KADQ=@5UY,';!*/<>/SZ"QXH!TN[X#87.A4#7'LVPMM#GZ ME(V^WK%[I>!C9+@D1WVDDAP8R'&\6\9Z^KV8% ."9YT?HDBP3VD8+5N MNK/:^L#N'L"T.''@Y_? 2RZ&3LQ&:D9[J89'XZ%PBN#/OES=[NJ#3GG&3>-Q MWBB'>;/]5''"USNF69I%U7B,*[H_5>QH7\+OF'J[VZ]YB.@]C@309I'G,A4; M>H*)IFZE6K;7*E-2LEV'=72K8ZG(U!,TEF* );.M/O3?MVT5$U/$7ZKM5A_J M!]>]U>^<7T".%T;&\]DR->"T"=\+F!Q[0LU"!)]\I;F4#]Y=F) MBOH;1/UKU/VIC[J7]+5SVR;VR(L%E'/GCM607/W-387[..?.B2 MM@H>N:EQO68=^>"%5!RJDNYZ0[HC]4Z_I0)& MC:+ BC5']O5>WSZ 07'B8,^O..DYP-N'5/64ZHUL6F^DW='AV*IN2O6(-:PW MTFKIK4&_-(NJ\2A7A%^;YLB./C#KWASY>X*X]%A<7A&]5781?;-(7S5;UK_9 MLM/3>Y8*=#U% RH&J'&S9;>C0FR*]AO::XG"OW\(NU#U6JIHH>JU5+V6*F:H MNLU4KZ4*'#:7^E6OI>JU;'B$L%E'5KV6S3AR$UO25*]E X[<1,*NJV8^OU[+ M7UEX"ZB9/&C4:EE2#.^YO7\(KQ[QNB40JMY-U;NI>C=5BYOJW52]FXTZPA,].5X[W-H0G84,[X*FPU<:&P4X=\MT[NEU V\K*MFK'K0MHSR-G%K$+ M0L^SG[4TM;DKLHM0:6KDZ]1T\&1B7JI2.P-:EGG*QY)R,V-=IR:#I\OE"ARB M?+DLDXZK#*.7B0-G.R9-FM;N1$F;DTL(Q+BA[SNSF+V2_\AO N-9(I0U=;[# MLT'"@A1/%SX;)WG$71"$Z1-! QC_>H;VHGRK#(SQ(^T>'-QHF8V\NQ7K8R_M MV _O)4CDWX3)5\.(.=\N[@$(KV=A["5>" 3"?"?Q[MC"FH)VZ<7R46<8A_X\ M80L'/2+>]Y!%<);TO_M&&!74CPOU;9EI!?6#0'U+"E%!_3"TOME)45!7$N9L MH X21HD8)6(: G4E8DXB8I3%7B;8'U'$4J$,PA$*, Z>,MFO1.>__V9V6Z^7 M_[LT&]T-?3SOWY_UGSTR0M<>&':O2BV5+@L2%NT!K*^3B#%M"E],8HT%(S;2 M?G,B=Z+9IJY9+6R]ST--\<*Y\X*UC1>X!.\8=J5ZB?"]\^]P(MF83S&.1B M_.*GE]Z3R;C*E?T@LI/(<=4]2JH67U4LJU)\1=@B5]&L,RO*;L*1&U:+O\NX MBR/;W/CD!=B5%U,'K%+/\6,UPN(Q1Z[M?4JGO^3*E(@9:E6]W2[U(Z?FHHJB+[DLF^XG1OZUU3S0)69'_VUR@MB/N^WFD?PH([ MIKGVWOO.1MHL\ERFXD%/8%=U[T6-[GQ94%\MO=M6T2A%_>4:;'4A?U,WVR5= M@JFH7U%_Y>\\6A#^IMX;],XO#*=N/*HXGS3IQJ/ZW?A2%!)]6[?Z)=T+J'S[ MAM%^W8G?'.BV69Z!J(B_0<1?P\N.%HB_9>G=5LV"?-4C^L;&!9MUY$9>"-,X M+#>3L!5E-^#(3:3LNFKF,VR(]#T6J'9(U5NCVB%5TY@B;-4.V9 C-Y&R*ZZJ MS[X=\DTXG;+(]7!:C IO5=!7:D(;9%?OF:KPK&'T5R4"-'6SJ[H@FT6 E>J" M[.G]_ADV0?Z*PYR#*0L253"EVF(:U01I=?563]5**;)O6!.DV==; T7WBNZ; MU@79ULU>J^;1H-\3Q*3'XO(JYJVR*^:;1?BJLZ;F796=EMX>F"JVH*B_D5V5 M'1775:3?S)9*D/R=SB$L0M52J2*$JK-&M52J<$G#:;_NQ*]:*A7QEQP///51 M54NE:JFL?1&$K:B[ 8[CPG8=PGKP:X\U2DK8PI,8W)8FE:(T^=E]=H]=9"<45<;OUW-M?HF6JSBOR MS@*Q>V40^_*^\P&X((RFC@\ONYR"!Y+$VM1YT((PT6 G6A)JR83!_\#O8FTT MQW]JY*G )HV?7GJK"%T12:E$8E6)2*X"UY^/8&$DBUD()PL#+1QK$;MC 9!' MQ'PG840X,?S"UX;SV M8'&NS"(/D4_B'XXVTX0.MP(*1-H?]O'3G,6"218JF M5M#44RG(KA(%?1&4,H["J1;.(VT<1O (4-&,10[24ZS=LXAIWG0*I!1YCH^/ M<#DTB1C3IK#L)$;: 4+[S8G1'MDD?V4102ZKQ$6<<%,\H M#K3RC(:6*LT#F0%DP'@ @2#A*!=V@6E)H\#*3)@B>@LH>O;S5X+I;QRF[U;! M]$TXG3D19^JU3Q? C:9"^>>TN\OVS\['? .?18Z;2$EE+-'%.N-.XA)6H%X( MDF_NPG*:%[@1PPO)M1_,@3'X[[^97;!B/=\'@M8UH%_XM/VC#L_M1LDZO"(# M^\:?2-#K4D'37G N"+".V%^,+P;1-B&6>Q>PZ/9!B]DM/D5,PS\&T#+ 0W!+ MG^&)YWZ"?XI'C=.@=A%Y>)@5Y\CCH&=TM#SX+=-H'1K\L\B#,P P-"?6'-@L M0@^UH]P880%()TZBN4NJ$P#EW!*N,DPAZ.?4*_P@M6;Z9>40L(UB\DBQC'8! M)Z9E=(^'DSQST'Y&;(I[1N4" +KS7$96RITWXF_ [HT+5F _>7(N_OY)_B/ M!+_K,R="OWWR>N3%,S -7I&47[ E;#(FX&^1^V\9-JKUG/'PK+!L8:T+E_G^ MH@E0S"*(%4JD"OX6%X[.(DD65COG$Q<_D9Y&HU. ?AK&'+/N*3%SOCBT@+6-KDE M=PB$+7"MG8M=.!HPR/COS_[V]=.;E0&"K9;,5[*[082A!$!.2 T;Y^>M/+$( MZE40K)B9\-:+&(@Y-XS!$X9C+^KY_R@Z7D9O422NX$R>X)2J:>M]UH0,+IXIQ$7 KW<@;PKN<87C' M#.T2%P:O .60PQ=8_"'8/!QZL>/#;H3VO(>G<3T)*3@<& 3='W=6-=P[04-N M^V\RD IH),Z'\I=YC4+&5FP4"1WS/&=H1,VV0:$[KM)>Z]-GLA^V,96:PRZ M[;R3YP;+&!2YH0W0+(\;5H)3\LC6 \I=[&01_,9"($U#1<."B8$QC M)0@ HL'ZSJ^3R&5O%#"R*UVO1WBRP)U :J&60!JY_#^K4#$@NK9?I35RBE> MI8E6*:)\!J1B]LJO41C'VN#CAW9OP5>S M^ZB:;NEW?+./EJRW^9<#3GX Z]@NO*S=,JR]7Y;)Y*_PF%3^4K/D%P-RCO., M&8$M&B!-GL]27]9;Y^D2Z0UU5MH[\BZF7M)6D?I8+%YK)- MH4B%,\"C@#U@AU3<(K'9AB5I36YK;ZL#-CD$+0YRT4LF"V\0%('RL;_\HFW* M'Q2& YX^R.T'6&L)&+^H_XOY,C^!IE@UYA,E#%/J^ECC?Q1=L.O/#!Z",(1 OR)&8*">'E*77 MY&0,R00R&FZW\P@7%KL@I9M??\1 XKH>U[ZT_!2S97_1!UQ$Y:V 1YYZ49)Q M$R-/D![]&Q"&9T+F@D/1'O2438#D,Y!-,0+&A!TJ'Z[#'; XAJW#.L( U,9,@ :/-@<3Z$)F(%/Z7U('&U&SL(M< M/M,/[^$@A69")[,6'FL5.'EJ$Z_BXJ&5+KU= M,N]L):0V_8KHQ9B'*=>*(-0:Z"^%M2#YR9TX7$T04=( 42 M+^!68==S-_]2TJ["D 3B@V4H40#/@1 $TA%#7JML&@JV!\62GORY$.,O.-?_ M@0=W,P_:P(!N/P5M'\8]K$DAA0:MCF#]J8?J^(L>RQ;#,WDO8.%W>8B>TD2><,YK_M; M$385/UHP65A!.R&OM35,&/GC@3(RP*(1" M!\X,J4'[PF(P/\#"22]SWJ-4DN\)"5$( &0%E[-04>3D"O&%O&DMR8DDDF^5 M,PY$+>2ZS@ J9*0E.B OVYO:.7*;VVL15C8^6H;5@#A8)#HV![DT]G8U_3 M@;&0JWY>1DBS$-$Q^K;"1 4P82F6J 8BE&RJ"B) -BE,E(B)IT^'W6K!'AH0 M1VE!WF8C5NR0X.W@AW]_UGGVV /W**I2G6LQBL&N'=S&Y8Z=U%-4I-\ TK<> M2_HFD/YA3_Q4TDYC5D6*/IBA>>#(]4;M5L;5RB7* !/?2_:&0C(>I.3K61GDV3G4YVC$Q/SQD3IQ$XSB M%^EP@AWI>BE!=>I)G9CWI;JFM$]Y^* ]G_.BJ!>O=B#B'5) ISXDKR)?_F\I M(]0Z59LQ>YS1<3R9T;R#6TU%>%//S2/CM3WX(W32\0Z6EM5U:?VL,AR["N^H MZK4<#72R(QU<]1R5"DNY#'!;&KQTGV]Y(*?1V7\DI]75!^U!V8KDA&!0U/F8 M1&A%J=/LZ=; *D/ZGU33+4C/J^ .Q^L?0"%4Z90%!$\?-T=7&7?U\F(VR^6= M6/ZYJ0\Z.,NU]J[-'L!0['"6ODX9[&#K[5YGF1WJY "]]P(G<,_* :J,P5;U,T#?)WV(O(FN^>R MW>X%#=?"5!5-Y\!_L#_GWIWC\_;,VGN%U3)U3WFASD$#CU4\:_G!2EOO6'O< MA*5<0\4ONWN#)S]K.69DUUX1/:GTU1K7O#.;YA* ER:RB,':'@!W0P_]$/W MF^3@#E^_]!DR&YK/MVXM#QG\C=#%W?Q6<00![^)_T.+L_'[:O"Z'!02P&+Q> MC@M *V'('D(]XZ?BHF)7](%Q&/OQ0)RAJ* ME['#7O_ 03.^QW @P<1)^+RA]0!8@-WP(3=8*PM4<$!M ,UF"9L.@3@% MZ+J&=A7@374>'VGHT(J_+ M<;OYBC<4W._]\%[,8,WJTRYSZ9E374]'NQO3[O+%VRNM)+K_\ ?0;L5[Y)XP MO\O-WKZ='[?NCV8_]@Q[S]TMS%XUM!Q,\A9^\6793# QL)C>GPT.@[.._C.G M<=^X@R ,+NBT[@1P@=P3S^'=-+M]T]Q?_("F*UX,:@'\ M(SD HC M/NSL/HR^D9\C!HI%:/I$0KS*@=+%@9;I0/ST'2NVN"14M\Y^E:1UM,(XVOI=?'])YS-S378^VWTW7 M>V@V@MG23'7>2X@7LLNE1J"$_'!&W@B<-P['R3T&9.6$U-DE#DL]*CMD!5T598?QBHHSP0[F/H2YBY^P\9WD 71*XX65[]B=%Q:( M>\7LX.T69%^% M (&\]2ZFX#@X35XX0IN<;KQQ&=T5A& #EQDM'0K DV83X/,T;@;Z=8E<$K M.#'C-VEE-PYQ6,O?Q_@8OZ@1WB3P*?:$04"S]YKHXL*%]<&UCY!3AFSB^&.) M:?&T@3=4X+5]<>@S?A'@JK7 .>)J1'>-X24A$3(@-+'@,]8;J'P2L E<+6+ MEU\ ,OT' I'K@UOOC1_$KR7\Y@)D*;'Q99UXD0 -[1?F.L DA=>C8EV&Z0Q> MA:P2SF\GZX D=\M5[\0!4 (%Z6Y47H)=Z(+8$HCP>GX]G@^ MC,&RP->DK"F0X6&B:>EEX3PIONUS1IZ+2!&OJXNY\FD\OOB%7VBC74\8*('+ M*,)(U)2[,ZEL0)T0E(25V(NW>TF+::4PRY32-1YJ-D.RB=0L(/ MZ7P&).F"T*$+FY!AR-?'('H(?(:Y0WH-L!98LMF-VC(D)\0SVGZ^X/;%TTR= M_X01L-]%>(]A'J1);^3Q"]LPH1T\I"%[# K2)4G<,P2&F7BSF.A9IP?C&<8@ M_0O0N2!;4?8D7$E2:A_9#E]=3.HL<-XXS82D/!B30,0-Z]HDO >HL!8 M;/':MOF,$C-R'[1K?NEM^IY4H)%NH6 :"7"ZWA<_RQD6!+,I)A!C[S8 D>"" M/04260A"L:20FJCG*#\#1$E74DHRXMJ)DCL\=27NO!C&832DBR)(9.!%&S(Z M)U8VP%$H*@I$(&U&0.9QFG^-M9'= 663Q9/=3(9$\&"IT MMS)T9ZO0G0K=/3YTEX.0:1J= _99[7K5R_4$A23*B \@<"_(X?@]SE<2#D^< ME>WO:K.(RX6/;)ST4SB+>D21:9\+(/)BGXA\2C3%+7H#E;3ITTU@P0*KC-Y'HV<=6]**G$,)@$+<%]>(J B6D9GXRV,"A&'NOYYMVS044[]A'ON#J,0CW/[WZ:ZB?47) S+ MF2:V.>5QHNL/CTX(VS(.38'#&3'$TV^^[!_Z9N G ^,#B\5$HF2";2ZER(0S MHH#2;(@NV!12; @?%#UOB:$TAA"UAK*: X8SXX>DVPL"P*V X;@+&;V'$ M2K<1MKGKIS_V*HP_SBD^]7#^W<^<*[OEQR_4WIZ1<5BF$"S#3QAT3T\F3V&6 MKV&"#0TE4DC5H5$U"D)/L^HPVT1!)AAH8+3;U8?91CK2+C0[ MHZ5RU5;5 :.(J5QBLH&8.HJ8JD%,=K5N?]N;F Y 2$WRHE1J\6R$@-E^K!3H MV,>^W'PE5#;VKCZGCMUP'CO!*'Z1MJR> Z>71@V/#*2<^'([&N7_4SPO+DT/ M]VA( LV-E^4E6.Z!0R?PMRLN\@-",?'&F_FL1).B@;?_M4YS_7GAW&5<5L8K M"*IU0=WCKNX;=/3VH%.V)CPUCD]!VW8%A%XYM-TZS:VLI=-V7Q]8;47:I51( MG/K8)4GMZ;GQK'IZ#M[MG0-O9M M*.)>&VHX-9(?3=PUB"Y>R1FFV63U@*;?%>:ZE1AHL,H.--2#%"K>U7#B0QZ] M9:$<>6=V=*]AA<7)R/G+[1$G1 M7]UJMQ0Y5[!!XO3T7$-R/E#LX,QQO6T^Q5D<(OBZ M%A<<3\*?";WW]$Y?"?CZ5APHJ>%I^_4.1\VW@ M_%$XQYOI3S*F]* 3%4Y^U/(M6JNO=_JJ>_=PQ1(GIYD#L,>:NHF3'[7\^)ZI M]\S2B]*;R!VK*RM.3C&'T!U-80ZSU=;;Y8LJ MWCA8S<;)*>8 O+&F?./D1U7U'0<.M;Q,',!GX6+0QV_-R#8G:2;WB1SX,(5_ MRT$0ACE@TQ57E1;O'\W?6II"^\(-_3!Z)2DQ=T7J\G+T:J/+9-C(ZA@M&3D$ MG 8L!:GFS)-0:VDM?&_^BE&"4[H+SA>P ]^9Q>R5_,?K$M"Z 7*TAPO?>0CG MR:NQ]YV-\H 2QQ%448RA/79?7:.'PSM6S.A8+S?[2V1/8T.+K+; %WD:?NQ> M![ 4_PO7@4U%4\?GGXBAK^(C,1;5"UQ_/H+5?QAT#5N#]_E -(6!)O1GI'UE MT53[$#J!K@4LT<*QYL7QG"J/W#!.8EV#Y[4@U %47C/1IHS!1+%*2G+BWUA M=Z%_AQ^\B=C(2[3WCDLK X_""%]H8GIO-(V 01N]* M)EZL$549VJ?\0>& 6NQ.V&CNPRN!(V@-AF>X9K.$38>POMACUTA%RY)845SS M!*ZQ*L8UOV3T!O(7"*# &\0#ZXE[R)P(6$Z,$0*J=+0[)_*(/B(G 0)\SZG: M6S5J"-^TQ"[P,#SG 6D"CGXT3PO..*KV<'0L"XV^WN]("\P#=0?+J@CY9.)5IY8ZU<A0;!2R.TX'CY9Y!9@2MA5,L' (V=LV8]MF)$NU*UZY N&FFKGT, M$Z9U=AT1&OPP"3*$M'_"?I,!P];$7@V#5'E"HL !_^Y:Y!:UD MZ_2P%XQ1?.%10$/>.A%7Q7/\)J- 7>P!O\O_PAF"S@"=?Y_7M0CC3-GJVBR" M'WLSV$[ZJ08HFM*J0I:1.-+!6KAC !I,7 U_8T]\.<1=+BSO-&0WZ6A:=KA M6'X=NQ!KYYV<,?W?@A.RD:;2Z7%? S:];TS*YGEE]A[XWXSL<4W_SX*IQKH M$8;DBO^K:_>@6G#3B,&PB$8MAOUKSFW$!/FB=12.&'V'Z&/?P;Y"309?C/TY MYH.)DY"\BP3!U:C_($FRH!!IO)Z!M _+DUY,Z5+7XD6)9>_(WB _@@3^0K>( M:! ^\.7?;X&K?-I[K%T2Z8/"_ 86[QM8J\@VFRZBN9J"C"5OXRH8^X3X]%8:1_-& M?W]VX\YND/1OS)OVP$2'U3D-1R&"YTSB#;R5R+D% IY'7(P*N3:+PO^ +<8E M*'[@<+L&?Q>PVS#QD.Q!G+JP53#89#U%C"*>NUBP_^S3(8/7ZQH@.0DC-+3] M!YT+4#Y\ GF.7*<@3.!A%J 7 Z?%!S6/H MT,GQ UN+P-;23":5'1G).M-4_ M)AZ(*6\J 8HH1,B#Y)C["==D&1(0=>.460&!(X^+L7OAVX+(A&48.-0C0.SV: 2G?BP >H[=F? M#.XLTN!HCL0S1J$/L)F/L6(G8E%,#D4\'R*-+LAN>C=(EHCZC P0N>@@C[SQ MV'/AO/BTX[I([@SV,X6G2/Y/F" S"AE((@/Y!G)^/.:F@XM.#-"N^"IR[M,C MYX,+W%3 O8:P4_#L$[DTOD4"*SWF;1B.8(,93\+#$7.]&)A!>/+<3),.5 RH M ^"!BU6F2#P*"_#X7"Y&Z/I@%F+T=O)ZY,4SH)A7Y-8MA KL!:'=,FSTVM>& M'@MK7;C,]Q<]_$)IFESAP/<<6>V<=\F!:+=S<,G]][]V"J3FH"< 8Y$JNV47 M0Z#_;Q?.&%[_RO'O@1-E F%@V%DH16[-)CL+P?JCEOMW%EG-;6?J?+_(P:W@ MAXJ?R<\B,4.8?[@4ZWVVL&X:"[),HUO$>-OD@9I#(&S!W+1S>0I'FT1L_/=G M?_OZZ6!*S!'@QP>^.9)QR/(3H6XOCX M.S:&#>.+8Q ;'J@J,/V7 ( A,GD(KF*].)K/N.(6[ROH63><^Z-E2VI_]0]J M%$ PDK9 JA^=Z %V"?XN^B%YN*"5X"9BT0RE.<4Z=1X*:G$.EN$4,2Z&N^$2PH]WSH8,/Z M?8* ND6"(&0C?7@CSJJP\AW9ICR0G@H-?4GF4&8G <:#QWR6 -?%W+C-12"* MT8I[+YG02P25:\G#C'M'R$MA!$XPA2H"803",KD8%CS,3684%$CHM&VB_E<4 M'+D "KA(I: .)_"2BR'L>*0+3D\%J)%2C9"%R[^GGV1+Y+P[A[C!#4%T_849 MM9A8^CZ,OJ'M#=(%PR'<0UK9^I*=6'8)#Q.[S)_*J)?>("WSF1#S-9HG%MKRRM_65YL97 MYK,AMLGCI8?U?=?SR#5(:(&B.+=)&<@!X?S=F\ZGZ3?"J].UX3S)/A1/Q7F# M8/0?D/\,;N7[DSMO$@T\%QV@A^8!@"L5"=L\Y\4V=_X28 M2%VU77POQAFXDN)O9=]=QD;BI[0_0TN%4U1DC968(B^3(14#_X_P45P+:!]] M RQP$:0?$ PH,*?LF02CC1.$9G@$3\C=8R_&(&;YR;1E']>)O1.2($[27* (H#B8?$H"4YV&G M8H%+HM0TFIP2M3 $I8>.H)@Z(\9#F[1]#]U\^)/;,909(9AS9Q[/&<_A"Z U M8< ,0:("OWT+PGM WA]HA1*X\ $ OWP9YAU 9]!; ;"8(:&%\)](E#G!+#9# M5(3V)6V*8MT4N$N =I('H'O?\::I@J-81C%,A\:BSZ4^YGCO''\N MJ#'C!K2@*28""A)_Z,AE)RC<7$'48G,,8^Q!&%QD6^.OB[4_,8 ^INH-)R>/PA%9W)Q$G73?W#('"!(BY1EX_ A+ M1M(,ES@-&=QB380#X^_)+R]#/.R[%R?XR-222(0>W+TS(,+XN!%)!,>N=4XXKZ/E#NZV V] M0$:+.4GR5>5&81M,E ,#,,KGT"\:%F*B^ T/U//X+8D=[A'F_"X.1QG=)WPY29ZC\GX?"'(I MCY%%\/U.CH1G4+I1%8E8!+9*I^,R++6M,^'A/$#NNT&8BD%HT F?(NDG>IM:YH0DDPDD-WL?35H+)6<'B)*6)>I( MC+_$W)KKS&.&,AA#Z3(2#M(6$,LT4)GSJ=#OJ=G&V8)PHVMY>4(YPAR!+\ 0 MA B(@ 1CU4[^7'2&0DKM'7C_0J=J;T,\=0C>^.4<=HR&SP4EVG!YI-S_!5N< M/RK_TMX@PO\1\F*<]&>S+O!7N+A]HX]8R5Z]Q$?J& MRENLS%MT5-Y"Y2TJD+4\[=RBA<* ]L^]\NSN ,>=3 M3:D&BW(.,J%SYW!##_XY(7/F(PZC*=8<)!&O[9+ -+3+5%%C5<[,>8A"5,?.=PK=A<$\ M%N=E8&R$#PSI)6#H?O&7HK\"OTUKA\#Y0E3XC]D-Z&6T28(05PPS&UG&\&(> M:2.7/#,$UN+Q5&&B3PDOC %G)I"N$#CM<2S"#]OVK<59J%4\191XSPK+; H M_8A,( ':[>\L./N'LK-7">G>CC+ZU]QQ+XO'%7FNL@O4]T#YK__M3&>O+_-& MJ10A+ ,Z#S!+*<$3T3.J=8P39SS6A5S("1*Q'+I, .PN!++-WW4_"E9DW0UN";4&EC&6;B3CY MB%$!558.YDQQ]W^)2 B&/,#3X9Y)IG!\=BLYBF27Y##0. M2+C%C:8EMR001-5LULZ623WA(.ZQ-YZ-FB>B ]C#I&#GAQA&.UW=$EYP4-& M3D)-T$J@8;E=MD)8;),LAQ,6CTV!1Q[Y2=IEAKW/H' Q$G7 [/?VK#(96#/L M-XA$@@EQB(J!BLGG@0,N<\(+IOOUY>?A;4^<+0OH9RPT+O9KY^7-@#L/680D\/? ^X#)6*3N=8W^)\RU+@,A4R^(W-,D6-!K[['HY0D>?@O1B+"Q=M,5FQ12J^% MI7G@-"N26(PC\,<);"*2@(%:,2Y.%LZ@2L>R4JSUI*X$@E1ZW%PWZ"AU9/:<9>WK^Q\VO1V_A?I83KOG+1 &G+<&6Z'$,5&J[,4 =HHC+\P M2M;F1/$U=DDYT:AL6;P8Q3$7^R#%9ZN/(FL4U\1'A.%YTC;/0Q=FON<4QV(@ ML9DT\2+"'R;,0%Z+\.LJ,1:% ?S;9:*]+A?_Q8=QL5$J^M-J"Q[F3XLN]^Q# M6&JGD@V@UH[M3CFS;KMV^&UM"\&8Z<]MBU++=K#D5[(/_%U==WO_4N__7[Y<>O5U\O MOU[]^]WEQ[?PYP?QUTVG:]D]J]26PD?Y8&NZS7'_&AA7VE/Z64NU&1Z;(BCV M1LM&V]/8W (Z6#N'\5!91X<$3(5?23IZ!H@TP&9X*GH8.U[$BY.H>BA[BH9@ MC_WP/L[RM%PSVE/<*\[)D70:U]B =%>8@_3,7:^=!$+FVH2V T$F2R!O.10 +@V'3 MW ,Q:'V/*'7540JVCQ^"1*7Z&&H+/U&=XLJZ:2I=&7%D4TH=_X'P E3)[H$? MVEUC($/)=$#K<=L9Y7^/G8Y,*?XU4QWHQ7/**/ M!:(G$"E_]R%?&U2N#Y1K%3>-+5C@$9^%YM3B2 ).;LO9JN4!/=D<"QT+UYS@ M0<\-\UD[O@<8P &D4XD=Q@=PFD]<&.=3F%T0KZNQ+X[:NG>*$[)63!7BI4." MQ+9-V,)'?P#K(7T!@$3T3) X&>ZQ\""\$%V.+JAO1-'WV?]!S$XXN96=':;$7ZQ$TMV9$T8J96YWL$[3?.D?W9O<\V>=YA-/;$EDX MNPAV77N.V33R7H?!*&[%]=YH8F]I5T8U\RE*K%/2/.(+'E\X!Z^JH#E]:?W7V386)=1 MV3<\N$UWH_1> SO/1&4UUQ0DG4!],%V;^7.4\=A<"186B22.?5FNNO0%B"PR M#- FX1&S%O@;/P*Z1#3- /M;IO^QMX@H)P-'<3:0B-D55K!7KH '+0CD$:.> M0CXK<-6I^3TC'\%^^,#$D(TOU-6Q"T9>RSS82.?F&+U?1K.SX[A.P"OQ<[5[ M+3R *'K%I],.*]DEABJ\RZK+A\7%1O;XX$\>$,&/ LX-W' 4L.19!$KUSO*J0;-RE M].7D26(C7D.,P^.FCA?DLIXBCYVJRA'OY>.U&'S@:II+3&W 0GJF*QIY5UBR M2^).<*0L^QF*[*\WXCF[$,-,D2ST7]EN( JJ"\-A,Y:BD"'R'27B7Y3E[&R? MO5@?OG@2QZ\8?//LYT\!&(9WW%"S6W)LH>SF)E6.48.%>,7" #HB_!\ZP VI MVX,-*53LP4F+DUFZQL+/[[FM"WXO+XJG-C89N-$F;'3+)]EYWXD>4S^ON" M7=I*LXE;@+VH6TUV]%- MV[6'-\[8;-W8;- SG:XS;/6ZQ=PH&!)MZM0)_1C4V.7O))<^; M;M-;G"D/QC[''XC@9O[A7) S+FZ7NVC9IK,B3FZIB_$R@1@SBL- "W/.LS[8 M8;[0$2P:*O>D:$BQ+E7.% 5WPO-Y'C>>#Z=>(?16.*F8A!!1/)&V&M,,J'@^ MQ8:QOT2%EZR2Y2ZV>"C)T%W%3SO&<$S ^<.)(2I4=>=3^=^UJ4<3J?SP$L[(=!L MS3HW\GEB^&:[WUE\'L0'''LD6T#>3#PVAAW![LC:_H23[%BD:[]YL$GF:Y>& M]HO'AOB1'.3,?Y.E,\1OQ+ XN=*_,;V?ODR("1TC'"CG +3_Q%Q;A/UBR#W9 M<$21.P=W% D'+/%5 _E2O&0RH%+E;\<0A5?+*6!>6,%'P*2^^8JZ042F'+4C M<[/9D+6,:N/Y##M(8MD&D[TDS:7G2HS7$NDZ,LN1X!(YI=FTU!4DKU*\:KOH M7W/!TB_95!E,=Z4@T!^[3WR_R.'1DCONCO+2Z=%T?D<.NL!A0*82MCE$V7 % M?MFX%E=V[Z3K]O M6P-F.5VS$,/X?/GEZ]75IZ__>/?EZN/[3U]^N_QZ]>GCC=GM60.[_(MB5C'$ M?G7>SW[&+7-'[^I*1CGH %KN! L7X&!,Q/[P[M?+#Y^_?'KS[MW;JX^_7M^T MK8%I#JI=NVX:FO:!&K I>,.0HT[;4KQ08.IF\SI]YSZ>>_+.%/+=TXNR,J.> M=U6"/8*W\MP6F\Y9%(5\EG4X]>(XUZD;>5F&A^9*8C+:!4,F)KY**X"=6P):,9\;H>R$1A+%X29K1? M(8:Q@5$_!_M\Z,L^6^R7?.#!A9A?.4=M]Q)\5-OT(,Z)/\#L_1(,3T_PLV'^/ X1\[D\([(DY9Q)7@V/%?HGJ@N_6FXL M4SN!RZMX^&!'RGO#KR)JGT:'$SPF7(*-*TJO<>B#88R08L96 MQD+'Z>".XGI4E4T4E/,88?O@T\-OJ/@I;4->42:'A7L\+@5\AE<:D*&?%<8+ M .?;WN_E#&!R+;Q)&(ZRV7X9Y-%%69CHE ,JSN(N E64$*Z&*QPA]]J4\_ - M/@[BEL$UFJ^Z"I0T[G,:)@<*\1RF*_871B,_\UP=SA,S'(=TQRW2'&'HNAFW'-/>7!JJD(\*_YT;FTL4G^=DOU!TE MFWONTCD'R!T1.IP3YMQY?);XVN$+* VNF\!CZCADLHKN&>M/D%5;8)( S#"=94XVS3(;.J,.8$%L1=%WXRLD3D<]AP@TDX':+8SN'%:H\X-&XUL>^2.QZY;=/X1 MGC<5[]VV@(I_!_UTZ\6\U/7:\;GV>L<[;7/9411@OW-_4#C+)_24M]^%OC+E M^C;+!RSTJ7"R7-%4R\=1X@]"S'WR'*>\'HI %4^4'//A(GQ1BE*U9 MLA"@S*QQ&5A,(KDQ66#),9N,4@9='4_.83L("=?"S+>,]N#'O H36^#J[.43 MEC8[1K_]N*63,%VD;;1[ZQ>IC I_F8QV.T_7,.W:GV<;ZBW3:&U&_9P'6?2OR >N^QM#_\I<'Y)GJ'>H8,?>=&D]2 M4;TI("^:\N9D+8'$)YV[Z0<_#2,DRBU/77.E]5DHLE&JRG?CEKQ :RZ&-P'X M4G10?J9Q*B5A[3.VFGT&0B#T/0IG7&@KG.W":XM,@HD$8953ONZ MX+F"]CU?9BJP3AIGD8VM5 %OFJ^U_W&".2:RK"YW=G>04U,PLGVV8-X=&;0G M%D4$/>OUWL 2EI("UHY.I8+4+F0E#8.& ^N,'?"#*(54]/>XZ$]UPGLVC/@W M]M.40I.H;S\-H""S4MPKL*R3[4V"C#+XGRS;,Q'>7A#NQ=Q635@'#;L_NGKY8<=8^5'=S=J"U6I MGG8"ZU*5@H+I*IBBIFIW]H>I2KJMAVDJ;??G?Y48VQ>NI,E>4EG8X>MS<@_. M5LV%6UD4<8+.ZMR#UI,VJGJO%WNO!ZKW6O5>/ZGW^K2EQ4MR=;^B<7O<8QU[ MV+JQ.JYUTV;MXYV^\6B<6REOGG+Q@Y>G%CMXG&\^$ON ME ^AO6:!%T:YHO'CW>Y5TLB9H-16QA-17<]QK19KM6]ZK;%YTVY;SLUPR&R@ MQO; MH=VNSM:OH>N??,; .O:&;/DH=ITUP:ZP[UJ?+/Y^^5.UY#P$=MZTRM- MJD!$^]&,Z0PMX.76C6F;[9NVZW9O!FSHW PZG2X;M8=VUQTOT4SGYA-V65X% MX[#:)-,!DJ&M:E?9#,$#$HO9WWR*S1U6-.ZR->Q[A/ G[SLH^>#C? HK MN=1?"S_^@L;"VSD?8G=C6C=VV=$2J/]U2*%P5TY*9YN[/3=5Q0H#<#J]\! M+V#LW@S=8>^FU;4[/=MQ>V/'7=*M9N?=__W'U2]77Z]OVJVV6?%&TBXHV'?? M)R!ZDGAKM6_6*UW+_L3)JJ,),LN)''S11F'7Q\OI-H001I,,B%Q8VN>4( +)\: M)=XR(9PZ3+I!@9>$DB)9#HRN55.ZS!*UY3+IM@S# ?, Z$E0&$/"VK Z&RP; M(=%WG/8G1'9)71R\!2>7<#B:I"B'19\$YM4%F24K >%;9C[):!/P3^]XXTBV*JS#B0@UM.J(U]X M$3/W A ;.6[RBG$J?9W?Q7__.0^3UUOWPA][_4SX09,DF;UZ^?+^_MZ %QBW MX=W+R\B=X#V^+]GHUHE>CIS$>6G:O5:[TWH)K&VVVKUV=]#JPK^Z[?Y+QS)[ MEMWJ_\6^7]@WIC%)IJO$V)ZPVNJ&O:3<-4OTCM-OM#4 M&[%Z>O-W.KGH^L+4Z=:0W.4*U^_>X/>7\UN\O9@J:5O=XB4S[W$W*-OIO^5M*I!.D4[RF>.IT^_ 42R33[ M=OOEO3\*+C"VW.JU>M_9=WMT-!%US>\N7BFC?GG (7Z/DT;21@'MO4TXO1&# M!!?&J?4O_KE.*/W/W'_03(MW^;XP/%:R!JP ;!D7%Y(XC&L:;3Y9#9I=$2))FHX /G^*^5.505V:3, MH=K()KSO'+AHAG.'Z8IJFM0XGDX%#H#6\KGO9R! 7 MOM,]W,%EHECQBFJ 3 F1LGC_2'VJV6 M99F=U!]JPY]]\(?,UO$B4LD4B$*GW^=P"MC M[:VA_1)Y\= +=(V+E*Q#N2\ZE'?SFI"SEHV83! ]P7?*MB2ZHPO^TYG*,MLT MS/^C9)2244)&90+&M@88<#&/*&!2IT>$>M?=]SJ;1_'<"4&2 MQ^R,Q%][7A3.RPT+[\#U>Z_Y6^R6)6VD:R<:.@&++SY]]]F#7 G<'ZL!O@T( M#DL)#B4X-@@.Z\2"8_DRZ&V"(XR4W#BTW+# X%""0PF.M8+#.I'%$6\R.39= M,9]G>;//V?UWX]IX8TCYTFGM)",&K:Z2$10^,8VKC]=*2M1'2FP-B5U1&Z;V M?W_Y\D&["O!>-!<':KL\&OJ<7QCD7#YTS6R_\&WH MQ*Q!U/[VW7M%[4XG]P^4OBMB;0^P?G"'SFTCGG[^\4W3>'#K_ MS*]^;Z@-TU:D?D:D_@;[?;7/>./AZAC-5:5Z.,S# BHW\#GQ"=QYG M%1_FFKB,G&"9:QM^/"0,/&-QS$GN$]D3GA_P8)@#-EW1R+QV#,K:P2&Y!NKE MY>C51I?)%DZK8[32B2%!&+"40K#H+]1:6NOU0E?T;@,6TB$DS[8)&.1OHM.U M@ZZ[AZ+6K1A:VX0[H"__SP9.K.2&WU.MTH1%#(.7QF9.4(C.$%T_3/-28X7M M1\ .U2RHKKJA_',8I9E'3$JD)8\C3218M8ESAZD-%FCAU$L6LX=7"9MJW9;Y M?$@WB7YAMS(:=GWQSUQ&1'ONO= \GDO!JTPCS%^BRGWNP1?WX=S'&DY0P-,9 M2SS4._X#O#J:CN>^YHWAG>*>VQ$?L\A&BC9WITVS6S_2O/1]+79!&LU]T>P@ M*#+6[H%&-U.C\^)YYP7/:2]1I:$IRME'JK5K1SI7P8@ZUX!L0-@$X U0,A>M M>_0(L,J*!$T0.U1-/O-A+?C0B2(LK5KO]AYK9+T:G_C(\8FF&I^8K9NRC!J? MN/N@=S$LD?5;W?Y@W+KICIWV3;L]&-X,>GWKIF6YYJ#;,P?OW]R[MK\?'AK][@0Q-SX-TTF2C;WY&G4_?3_7W.:6IN;/XY]R(2MV2 M7C,7T2%KUG@Q[//1B[0D;5L5+%]4MB:#^1AK(YQ'0$;H"+X& S3B[3BP!3 W M8X K? %V 9H50S9Q_#%V_N!"5'W+'Z"5(S8/X%>T8-;<:)QT@*1MY$P'\13_ M;,J,=7,5A4_H4+J@D>^^/JPX>WEQ^U7[]\^OVS M;&?]^&9-D$71S3G2S;9KWG:AI'U I4CI,*3TN.&JIQ-1+^.7VHYBZDU$BX#! M_D]#>^=$_H.BJN8(J ( 5I&"HH%FT<#F&XS6M[?\!G50'DCBOMZ M2I8H.BK0T?//Z0"K)6+2M>S+2]?%\5:84Y]H[SA(!;R#O;V JMP%?9*+GU6V[Y'9/JO\;%\^ B\2;848 M?/$S##S;K95)PKO0&ZW.$68QT6$X>H#_F213_^?_#U!+ P04 " #-E*)8 M!E>,UL@( #N*@ & '=L9&XM,C R-# S,CEX97@S,60Q+FAT;>U:;7/: M2!+^*W-.[<:N L2+XR3"<96-R86J./'ER.W=QY$TP)2%1CLS G.__IZ>$2"P MG9!:LN%JDZI@-*\]W4\_W:WA_&_U>C^;\"P6"7LWO'G/$A474Y%9%FO!+5KG MTD[84.4YS]B-T%JF*;O2,AD+QEK-QEFCU7[1:-;K%^=8JU=.4EG(7@3MH-UL MG[+F6=CIA*<==GO#CC\/>R=N\/7'WO _MWV_Z^WGJ_>#'CNJ!\%OG5X07 ^O M?<=IH]EB0\TS(ZU4&4^#H/_AB!U-K,W#()C/YXUYIZ'T.!A^"B9VFIX&J5)& M-!*;'%V<4PL^!4\NSJ?"UB9H#NK3'W];E,["1L-9N_='.>)#(;UU,Q MLFAIM%^OV[0<3]:-RA\NU"+E5LX$K5Y9-TX%UV&D[*2[O<5C,_/EO)'*;'W$ MIS)=A,^')5)J@LW\_D9&TOSYKG36[ M'2Q]'D109OYG"!X#V$(_D+RUF^3_[/>&@X\?2LF;;=;K?QH.W@YZE]3,/KYE MO7>#_EO6_W>_]WDX^%CM?_K>)WSZ/(,:NY' O$C998-=21$)76.QT%:. M%LQ.N V_IV ;+M YPQ!G#)DE,$18=RU/"]]J>%7_\<\!F_"98%K,I)B#GNQ$ M&O9[P370D"[0GBMM05KLK=)3/Z75K/^#J1'[#7R7@/K^KE61U\KELKC1/5R] MM?>@MRMN'(VSZ8+=96J>"A!^S2NN5%>B<,A,(5+@-%QFC&<+5F16%P):01AP M800JY&R*)RUYRD8\1I-F:BHML\J/>S @$[$PANL%#9GR.X%]*VL:M"40!ENF MI#/:@P;$4B-V81BBF8$DB=!L/@'\F2GH8SU_+K0H%Z$#3*4!Q9+&?;33PN0B M=@+2NCE$4PF..<.TA$6+JAH.& >=O?G/DV@0;"0SZ)M,M]9O#5# <'3K2K_, M1O N3O$*W^.T2+ F;%A19@WVE^21.4Q Z"%4(=]8P:.TC-G:&@A,7""LT8@B MQ0!@0L%P;COCY(FYF;!1JN9F"1@MQM)8)!>6<6KTS/]<$-/OSY[U6Z][)K2N&4@(<=1HY'$X[$Y<4H<,*Z%,Q?4+Z-4D%J9 $:B M5)H)S:!A4_ &<0<])]+$J3(%YA&C:)5ZN^5:(3M%LV'',%,B8'=OB_X]0EN& M1/02SOJI2(4IN;O#ZZT7Q\*+TGJ1^"?_*"D%R#QH:!-&;EW!DK2]M=FJY5\19T2W )9 MC$IEXDH=4T1&)I)K20>0/C@YELQHI<)0P'#N8EQT<1R""@4"H>9PDW(D(C(N M4D[4AV,Y(=:!!S-\&*M&7WR+! T$.V&^2 Z2C4I(17N U":8=O;B!YC:W?]W MAA;@.),)(88;U*C$=MP ;92($(RX3I8F!<@DCV0J[8*BT&/;$L"=]9UA/38W MAE82&4>J]^6!\D*C((2A*6K&L=*)$\"E-&.1(1BFP!=Z1$[ I2%(USR& '"9 M@](.&47QWHBI/^-IX;R7%"U&(^04J)XS9)T/8/PFH \75K\@*V?[(-#O$H?FH9* MES*ZNYY'[?\-S$%!1L5QH:*US510595JSD.O%23;A9A3]B X<\D3B:=/HH*6R!VNI.I&4)MC6^ M]H=5=+!H\_GSBQ^?/[LW%LD2L+6UWQ*-5$&S=F$R^S<$Q@=YSDHZCES'*FU6 ML<@U8,DIZG8KQ!=(,E*(=M2?2,CG%CD&M,!)AC@/?RGC6OJ#^+V0$-]AO\AB M5ZR=_#62XTO4M9192-B=2@.J-&(I8*4RCJR2U+G@=Q08?&1WH<'E).Y%RK+& M_2;;E_FD+]$><7B>8*(1*W]_$B=E)H,I,#82CIJ/3@:AR113Z!&&<(?;1 MMP$'RP5[S%XO$6!&&FY4@^Z%"O95S+!F9(NLVK M&VJI7,0<,7?!\.;(WS#0O9)>RKD\NK]@L,FR?4;DCP!>WDU8E9R@M M+!FC]_@6"=]Y(+TX_IZP_+3);A!HG)[]'R!@]Z-%REHU79[N5:/U(P'NA?$; M/SCI5TX86$W.O1]'_AX>U'ZY??.\'>]0_S%XE_&I5%4KOV?NI2%[UG3_#NB,@0G8S:#W[K+_WET3#_I7 M=&F=_X3\7Q+R/T0=7_ @BCV'[#X/?F'QTW5^NLX/=IT#4LD74^5;+8PDH+FW M!+V)%"/6OQ=Q06D;^^A?BJU2Z<.2W:7YLI?OG;<608,W]9T^;O_):?[:>C%_P!02P,$% M @ S92B6+H0;\4*"0 NC4 !@ !W;&1N+3(P,C0P,S(Y>&5X,S%D,BYH M=&WM6VU3V[@6_BNZZ>P69N(X+]!V'G=V8^R+<<:9,LKR0FY MO_Z>(]EYIZ7MPH469DABZ4@ZDI_GO,CRT3\\;YBG-(]83-Z//WX@L8S*C.6& M1(I1 Z4S;E(RED5!<_*1*<6%(.\4CR>,D$Z[]:K5Z1ZVVIYW? 1]#:I&,@_( MH=_UN^WN 6F_"GJ]X*!'+C^2O4_CP;X5/KT8C/^\'+I1+S^]^S :D(;G^W_T M!KY_.CYU%0>M=H>,%#[L]FL->NUI)KXXRL_-9DX M\(64FK5B$S>.C[ $/AF-CX\R9BB)4JHT,V\;G\9GWAN0,-P(=GSDU]].-I3Q M_/@HYE.BS5RPMXV,J@G//2.+H-5_J-!*,J"*5)^YM#[&I9U.T2F1LO MH1D7\^#EF&=,DW,V(U=5^U^ MK]/J'ODA+&;Q$(I' &RFOE7S?P\'X]'%>:5YNTL&PZOQZ&PT.,%B_48DI5-&%)MR-@,#:U*NR5\E58!G,8?R0BH#9I><294YA';:WK^(3,@? M8+%C,-Z_*UD635$YG-2YD:5#/0&#VT]/&"#D@RN%*>")#2"(D5DQ@TQ MTLEM">0L8EI3-4>1C%XS&'>E3PUE,2@#0PJ<%8Z! A%7$%: & 0:&C0!:!' M0Y027>+'LOV,*59U@A/(N ;OAROO A'%=,$BJR#V6X!J,H9I NA@4<+YZC(\ M WPW@'I/%>",)#P'""$:EY!I KI!'*K52CW/$["$%*,C^!V),H8^ 98K^&@" MI#E:SP)0A81 HD!TNT!\!3:],320*K9A5Q,E2@$" ',)6+3#::M/1'5*$B%G MNN: 8A.N#82RAE L='J#ELT5*.M:F2UMG]&\&RT'CQS-X[5;_^N+-]W.Z[ZN M\%H%8FC>9))PN-S3^Q87(T(5LP@$1'&\Q8 4PC3>;JY3;(%B&5AWM/!X'7,= M":E+:(=V7TGAH%@H">D=%&NR!\B+&4#9P6MX _E0#IG<"9C4JU(P784./>IU M#O>84Z5S&+LK=\DQALX=#W 0@L9WA1X.KJC0UXV6K(V6P&@XXTWF@ 1&0L$] ML>%VB&\ [*G3ANX_;MJ<,@WK"L"Q <*7H=W$V"6BI;Y[$PPB0@8(K49R88DL M%70 UGC*M;7Q(,5RVP^F2TOOL.IA7/X-D*_BDB5BFY7WP4H.G@)TT5+PV&Z3 MZ#+4/.94<9P =]&3]7DY]E1JC&BLI= V_+$>06H&"AGP0-BHH(C#4F!B1V!: M5HEE9 0M7)RU&A["KY"A(/@::,_B^_(M/PV;PB?%ICM;\"U2W=WVWYE;P,Y._"WK(&&X$6T2R]" M69K;-;B+KZ0+:8:Y4_+E9)J$=59F#0%S*P'Z]+'S9^!_'[#B1P[\4X>I;6SB MQE(5U=N:G03X"J^!$9:,HE(A E?"F1V]9E(;*,<]?>A+P]VO-T3)WBU-$J 2 MV/,-Z4IQR-B9W1/#[;*\7.BU[[1*J5[$?N@)+/58;%VD78_*?5MRRTHY"[ M&*GT(K2R!=!EEG%C&/N,XPLE!&]8'W/0SW:R!VP!/Z/1C\$W9E UQ=E?)0?U M+9W+/+);:?O/>?X/GN>?"(C)864Y0!XW>'"_*.(, %J%18M\>\;H-<8Y+D:W MD8[-+NQ#BWKS]:M@7Z7&;J-MA_FF,334;&&];Z5(E9- $\ Y8++I@BT-D98N M,Y@SK)&=3.4U=VY3/P=2/T$B?@+Q4J+ A#8!?,P:?H"O?=)5X;SIP@V>3Z68 M,HPYPK!!RSJ!VEDKG'>@:BP#U?TM UKH%CP]SD.'-XAS#*2Q. M0#[2.>DV"1XJLGIMG\^Q9VUL$V(!_+:!)8V:0)6PXY$722%HH5E0_UC5#V%= MJ8:';G"AX!:L'^II+Z%?G>C!DI7S.9:']:CU1!T&;Z>U>_\A'47?VQAW7JCX_;_06=^"PU7D" MZ_\M,T-L'3S%N5DS]/FTY>X$N@_D=@\_@]PMD-\5O'\/8!]BON_FP5>I7"&Q MLLFU\RQNB'U,0EZT[=__>5*^]LFV"9I"8 =N-= 9I/A>!"X$1 =7P]'O[\<7 MY_:\WZ&DK5C7GO'IRI:>\5G\_6A@DZ8Y](EFABF CJ5/*[0 M\OJW5F\1#[BBMLV%W%M)]C6GX_\!4$L#!!0 ( ,V4HECMRX03'@< (HR M 8 =VQD;BTR,#(T,#,R.7AE>#,R9#$N:'1M[5M[4]LX$/\JNG1ZA9GX MF?!R4F8@35OFH% :KM,_95N.-54L5U9('*.;1>$0RB2)!L(36"94I&O \QQDZ(D)0QM"^ MH/&0(.2Y]J;M^1NV:UF[7>#5*P?Q+$ ;CN_XKM]&[F;0:@7M-CHY0FMG@]ZZ M)GYSW!M\.>F;64_.]@\/>JAA.<[G5L]QW@S>F(ZV[7IH('!64$EYAIGC]#\T M4".5,@\<9S*9V).6S<70&9PZJ1RQML,X+X@=R[BQVU4M\)_@>+<[(A*C*,6B M(/)UXVSPUMH&"DDE([M=IWHWM"&/9[O=F)ZC0LX8>=T883&DF25Y'K3<7'9@ MI /=2S13:T)CF0:>Z[[LY#B.:3:T&$DDM-C^SD6;H,/THI$;Y0)!&);TG"CN M-;X1(U@$(9=I9WF*[XW,JW$)SZ25X!%EL^#5@(Y(@3Z0"3KE(YR]:IH6>"^( MH,FKCJ8NZ'\$6(."C&;$2HF1T_9V.I),I849'<)LJK5C3!( ,5(OSS 3 )J(F^77"]HB0-*$1 M5E9&/$&]E)($]:HE .(O+OKBF,W[3L:B&&-P*:T-M_F0!KC5TN$"[<4\5PY>UTEIM-4Q>NVXF\I,,B7H$Q8ASDAA M'4\9F:&]2*H>WW7]WZ(PS6)0-FAMYC^"ZD&&(IYE)-(+K&.=DOWC& LP%)NA M4Y)S 9)GZ"T7(Z.DYUH?E2Z?(1;&$!;?"3[.FZ;O((MLM*9X_/UBV_?=3H^/ M('3.]#>OLXX2+O04W^93Y* 5CQ$!@6-TA$64(G^GB53L;"*P>4)9%8>U70%[ M MP>;*10UY]"3,L@&L-$(UH4&JB9IHPA%J.4" *RUD4R.E42-=$1!1:$H3T; M[5,2$J&G/1&DH,J&-7!?!GZYV*6634,K]&* %/_8J(]!1\WP*O\P6E2,_X6V MVMS+_ D&\RB=PAF*C'>2HHGRJWVL#D_M;TH67.(X_QD<-Z$?RZ8:JPA#4NBN ME!8(%AF$1%\S/H'%&Y) XUWBD $=%S$1KQMN S1@K-P3YM^+'$?E=Q@AX!57 M;F)"OX9T.:H*8HZ,ZX3GRC(19J7;:X> O:LS2:DDEIJ!!"":P-!T)<][\LYR M*X7]3/)1H'RQ4]M=S=QKWKHVV)):CT? :QW&1J2,0,GC@"@3/GDW$\%^3:F M@JADJE"P^&2"3 7$-;RN4.)MK,7K3NM=D>YRH5=' 4.1V-J M!:V;0\M_ M"B&6P3(Y-UP/XD,3"*H56CI,(=IGKW@%"I(-94W1B2!8:S31AUY@6K,#$(Y[$1ZSF(I[-I7@$YGP 9YI;D, *V( M,X;S@@35A[IE%!Y*HZA\5ND'"E2&T.DR'DM>-9A<6;\"&79[\PD XTZJ;=O> M4P#])=UTE%KY6U7:<3Q' C,;HA:O_'I&"3N&@HX/>^[W^H3ZF'?3W M^Z=+N_(*[\\&[P]MC@7W43'Y,?O.I>N-E=^L_.8A_>81V8,NILOJ5# M&9=-1*81R655V CBJDO@LJ M1N'LVL+(D*"8D!$0F^K5H)X]$!2,"3%9L'@)H6[ M E%9*$F3!(US:%&BDD+:E\I3TGDM4XBCKT/!QUFLZJZX"*K$N?;@P&)'"49_ M"9Q5JKWPR,)"%=9BV_QIB!P/B67J.G BB0CP.:=Q&96V=O3&5J;XILW551OF M*0O]V,;N_U!+ 0(4 Q0 ( ,V4HECW@B0ZJ!( %>[ 1 M " 0 !W;&1N+3(P,C0P,S(Y+GAS9%!+ 0(4 Q0 ( ,V4HEC@^_E6 M4Q0 )PU 0 5 " =<2 !W;&1N+3(P,C0P,S(Y7V-A;"YX M;6Q02P$"% ,4 " #-E*)8JO6Y?,@H #=4 ( %0 @ %= M)P =VQD;BTR,#(T,#,R.5]D968N>&UL4$L! A0#% @ S92B6#+[KF5N M:P X L' !4 ( !6% '=L9&XM,C R-# S,CE?;&%B+GAM M;%!+ 0(4 Q0 ( ,V4HE@J]82!)TH !1>!0 5 " ?F[ M !W;&1N+3(P,C0P,S(Y7W!R92YX;6Q02P$"% ,4 " #-E*)8&5X,S%D M,BYH=&U02P$"% ,4 " #-E*)8[#,R9#$N:'1M4$L%!@ ) D 8 ( ' ",L P $! end XML 91 wldn-20240329x10q_htm.xml IDEA: XBRL DOCUMENT 0001370450 wldn:DefinedContributionPlanMember 2024-03-29 0001370450 wldn:CreditAgreement2023Member us-gaap:NotesPayableToBanksMember 2024-03-29 0001370450 us-gaap:CostOfSalesMember 2023-12-30 2024-03-29 0001370450 us-gaap:RetainedEarningsMember 2024-03-29 0001370450 us-gaap:AdditionalPaidInCapitalMember 2024-03-29 0001370450 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-03-29 0001370450 us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember 2024-03-29 0001370450 us-gaap:RetainedEarningsMember 2023-12-29 0001370450 us-gaap:AdditionalPaidInCapitalMember 2023-12-29 0001370450 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-12-29 0001370450 us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember 2023-12-29 0001370450 us-gaap:RetainedEarningsMember 2023-03-31 0001370450 us-gaap:AdditionalPaidInCapitalMember 2023-03-31 0001370450 us-gaap:RetainedEarningsMember 2022-12-30 0001370450 us-gaap:AdditionalPaidInCapitalMember 2022-12-30 0001370450 us-gaap:CommonStockMember 2022-12-31 2023-03-31 0001370450 wldn:UnitBasedContractMember wldn:EngineeringConsultingServicesMember 2023-12-30 2024-03-29 0001370450 wldn:UnitBasedContractMember wldn:EnergyMember 2023-12-30 2024-03-29 0001370450 wldn:PublicUtilityMember wldn:EngineeringConsultingServicesMember 2023-12-30 2024-03-29 0001370450 wldn:PublicUtilityMember wldn:EnergyMember 2023-12-30 2024-03-29 0001370450 wldn:GovernmentsMember wldn:EngineeringConsultingServicesMember 2023-12-30 2024-03-29 0001370450 wldn:GovernmentsMember wldn:EnergyMember 2023-12-30 2024-03-29 0001370450 wldn:CommercialMember wldn:EngineeringConsultingServicesMember 2023-12-30 2024-03-29 0001370450 wldn:CommercialMember wldn:EnergyMember 2023-12-30 2024-03-29 0001370450 us-gaap:TimeAndMaterialsContractMember wldn:EngineeringConsultingServicesMember 2023-12-30 2024-03-29 0001370450 us-gaap:TimeAndMaterialsContractMember wldn:EnergyMember 2023-12-30 2024-03-29 0001370450 us-gaap:FixedPriceContractMember wldn:EngineeringConsultingServicesMember 2023-12-30 2024-03-29 0001370450 us-gaap:FixedPriceContractMember wldn:EnergyMember 2023-12-30 2024-03-29 0001370450 country:US wldn:EngineeringConsultingServicesMember 2023-12-30 2024-03-29 0001370450 country:US wldn:EnergyMember 2023-12-30 2024-03-29 0001370450 wldn:UnitBasedContractMember 2023-12-30 2024-03-29 0001370450 wldn:PublicUtilityMember 2023-12-30 2024-03-29 0001370450 wldn:GovernmentsMember 2023-12-30 2024-03-29 0001370450 wldn:EngineeringConsultingServicesMember 2023-12-30 2024-03-29 0001370450 wldn:EnergyMember 2023-12-30 2024-03-29 0001370450 wldn:CommercialMember 2023-12-30 2024-03-29 0001370450 us-gaap:TimeAndMaterialsContractMember 2023-12-30 2024-03-29 0001370450 us-gaap:FixedPriceContractMember 2023-12-30 2024-03-29 0001370450 country:US 2023-12-30 2024-03-29 0001370450 wldn:UnitBasedContractMember wldn:EngineeringConsultingServicesMember 2022-12-31 2023-03-31 0001370450 wldn:UnitBasedContractMember wldn:EnergyMember 2022-12-31 2023-03-31 0001370450 wldn:PublicUtilityMember wldn:EngineeringConsultingServicesMember 2022-12-31 2023-03-31 0001370450 wldn:PublicUtilityMember wldn:EnergyMember 2022-12-31 2023-03-31 0001370450 wldn:GovernmentsMember wldn:EngineeringConsultingServicesMember 2022-12-31 2023-03-31 0001370450 wldn:GovernmentsMember wldn:EnergyMember 2022-12-31 2023-03-31 0001370450 wldn:CommercialMember wldn:EngineeringConsultingServicesMember 2022-12-31 2023-03-31 0001370450 wldn:CommercialMember wldn:EnergyMember 2022-12-31 2023-03-31 0001370450 us-gaap:TimeAndMaterialsContractMember wldn:EngineeringConsultingServicesMember 2022-12-31 2023-03-31 0001370450 us-gaap:TimeAndMaterialsContractMember wldn:EnergyMember 2022-12-31 2023-03-31 0001370450 us-gaap:FixedPriceContractMember wldn:EngineeringConsultingServicesMember 2022-12-31 2023-03-31 0001370450 us-gaap:FixedPriceContractMember wldn:EnergyMember 2022-12-31 2023-03-31 0001370450 country:US wldn:EngineeringConsultingServicesMember 2022-12-31 2023-03-31 0001370450 country:US wldn:EnergyMember 2022-12-31 2023-03-31 0001370450 wldn:UnitBasedContractMember 2022-12-31 2023-03-31 0001370450 wldn:PublicUtilityMember 2022-12-31 2023-03-31 0001370450 wldn:GovernmentsMember 2022-12-31 2023-03-31 0001370450 wldn:EngineeringConsultingServicesMember 2022-12-31 2023-03-31 0001370450 wldn:EnergyMember 2022-12-31 2023-03-31 0001370450 wldn:CommercialMember 2022-12-31 2023-03-31 0001370450 us-gaap:TimeAndMaterialsContractMember 2022-12-31 2023-03-31 0001370450 us-gaap:FixedPriceContractMember 2022-12-31 2023-03-31 0001370450 country:US 2022-12-31 2023-03-31 0001370450 wldn:ComputerHardwareAndSoftwareMember 2024-03-29 0001370450 wldn:AutomobilesTrucksAndFieldEquipmentMember 2024-03-29 0001370450 us-gaap:LeaseholdImprovementsMember 2024-03-29 0001370450 us-gaap:FurnitureAndFixturesMember 2024-03-29 0001370450 wldn:ComputerHardwareAndSoftwareMember 2023-12-29 0001370450 wldn:AutomobilesTrucksAndFieldEquipmentMember 2023-12-29 0001370450 us-gaap:LeaseholdImprovementsMember 2023-12-29 0001370450 us-gaap:FurnitureAndFixturesMember 2023-12-29 0001370450 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-12-30 2024-03-29 0001370450 us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember 2023-12-30 2024-03-29 0001370450 us-gaap:RetainedEarningsMember 2023-12-30 2024-03-29 0001370450 us-gaap:RetainedEarningsMember 2022-12-31 2023-03-31 0001370450 srt:MinimumMember 2024-03-29 0001370450 srt:MaximumMember 2024-03-29 0001370450 us-gaap:CorporateNonSegmentMember 2023-12-30 2024-03-29 0001370450 us-gaap:CorporateNonSegmentMember 2022-12-31 2023-03-31 0001370450 wldn:EngineeringConsultingServicesMember 2024-03-29 0001370450 wldn:EnergyMember 2024-03-29 0001370450 wldn:EngineeringConsultingServicesMember 2023-12-29 0001370450 wldn:EnergyMember 2023-12-29 0001370450 2024-09-28 2024-12-27 0001370450 2024-06-29 2024-09-27 0001370450 2024-03-30 2024-06-28 0001370450 srt:MinimumMember 2023-12-30 2024-12-27 0001370450 srt:MaximumMember 2023-12-30 2024-12-27 0001370450 2023-12-30 2024-12-27 0001370450 srt:MinimumMember 2023-12-30 2024-03-29 0001370450 srt:MaximumMember 2023-12-30 2024-03-29 0001370450 2023-09-30 2023-12-29 0001370450 2023-07-01 2023-09-29 0001370450 2023-04-01 2023-06-30 0001370450 srt:MinimumMember 2022-12-31 2023-12-29 0001370450 srt:MaximumMember 2022-12-31 2023-12-29 0001370450 srt:MinimumMember 2022-12-31 2023-03-31 0001370450 srt:MaximumMember 2022-12-31 2023-03-31 0001370450 srt:MinimumMember us-gaap:TradeNamesMember 2024-03-29 0001370450 srt:MinimumMember us-gaap:NoncompeteAgreementsMember 2024-03-29 0001370450 srt:MinimumMember us-gaap:CustomerRelationshipsMember 2024-03-29 0001370450 srt:MaximumMember us-gaap:TradeNamesMember 2024-03-29 0001370450 srt:MaximumMember us-gaap:NoncompeteAgreementsMember 2024-03-29 0001370450 srt:MaximumMember us-gaap:CustomerRelationshipsMember 2024-03-29 0001370450 us-gaap:TradeNamesMember 2024-03-29 0001370450 us-gaap:OrderOrProductionBacklogMember 2024-03-29 0001370450 us-gaap:NoncompeteAgreementsMember 2024-03-29 0001370450 us-gaap:DevelopedTechnologyRightsMember 2024-03-29 0001370450 us-gaap:CustomerRelationshipsMember 2024-03-29 0001370450 us-gaap:TradeNamesMember 2023-12-29 0001370450 us-gaap:OrderOrProductionBacklogMember 2023-12-29 0001370450 us-gaap:NoncompeteAgreementsMember 2023-12-29 0001370450 us-gaap:DevelopedTechnologyRightsMember 2023-12-29 0001370450 us-gaap:CustomerRelationshipsMember 2023-12-29 0001370450 2022-12-31 2023-12-29 0001370450 us-gaap:InterestRateSwapMember us-gaap:CashFlowHedgingMember 2023-11-30 2023-11-30 0001370450 us-gaap:InterestRateSwapMember us-gaap:CashFlowHedgingMember 2023-11-30 0001370450 us-gaap:OperatingSegmentsMember wldn:EngineeringConsultingServicesMember 2023-12-30 2024-03-29 0001370450 us-gaap:OperatingSegmentsMember wldn:EnergyMember 2023-12-30 2024-03-29 0001370450 us-gaap:OperatingSegmentsMember wldn:EngineeringConsultingServicesMember 2022-12-31 2023-03-31 0001370450 us-gaap:OperatingSegmentsMember wldn:EnergyMember 2022-12-31 2023-03-31 0001370450 wldn:QualifiedCashOrDeferredArrangementMember 2023-12-30 2024-03-29 0001370450 wldn:DefinedContributionPlanMember 2023-12-30 2024-03-29 0001370450 wldn:DefinedContributionPlanMember 2022-12-31 2023-03-31 0001370450 wldn:TermLoanMember us-gaap:NotesPayableToBanksMember 2024-03-29 0001370450 wldn:OtherDebtMember us-gaap:NotesPayableOtherPayablesMember 2024-03-29 0001370450 wldn:TermLoanMember us-gaap:NotesPayableToBanksMember 2023-12-29 0001370450 wldn:OtherDebtMember us-gaap:NotesPayableOtherPayablesMember 2023-12-29 0001370450 wldn:LosAngelesDepartmentOfWaterAndPowerMember us-gaap:RevenueFromContractWithCustomerSegmentBenchmarkMember us-gaap:CustomerConcentrationRiskMember wldn:EnergyMember 2023-12-30 2024-03-29 0001370450 wldn:TopTenCustomersMember us-gaap:RevenueFromContractWithCustomerMember us-gaap:CustomerConcentrationRiskMember 2023-12-30 2024-03-29 0001370450 stpr:NY us-gaap:RevenueFromContractWithCustomerMember us-gaap:GeographicConcentrationRiskMember 2023-12-30 2024-03-29 0001370450 stpr:CA us-gaap:RevenueFromContractWithCustomerMember us-gaap:GeographicConcentrationRiskMember 2023-12-30 2024-03-29 0001370450 wldn:LosAngelesDepartmentOfWaterAndPowerMember us-gaap:RevenueFromContractWithCustomerSegmentBenchmarkMember us-gaap:CustomerConcentrationRiskMember wldn:EnergyMember 2022-12-31 2023-03-31 0001370450 wldn:TopTenCustomersMember us-gaap:RevenueFromContractWithCustomerMember us-gaap:CustomerConcentrationRiskMember 2022-12-31 2023-03-31 0001370450 wldn:LosAngelesDepartmentOfWaterAndPowerMember us-gaap:RevenueFromContractWithCustomerMember us-gaap:CustomerConcentrationRiskMember 2022-12-31 2023-03-31 0001370450 stpr:NY us-gaap:RevenueFromContractWithCustomerMember us-gaap:GeographicConcentrationRiskMember 2022-12-31 2023-03-31 0001370450 stpr:CA us-gaap:RevenueFromContractWithCustomerMember us-gaap:GeographicConcentrationRiskMember 2022-12-31 2023-03-31 0001370450 us-gaap:CommonStockMember 2024-03-29 0001370450 us-gaap:CommonStockMember 2023-12-29 0001370450 us-gaap:CommonStockMember 2023-03-31 0001370450 us-gaap:CommonStockMember 2022-12-30 0001370450 2022-12-30 0001370450 us-gaap:OperatingSegmentsMember wldn:EngineeringConsultingServicesMember 2024-03-29 0001370450 us-gaap:OperatingSegmentsMember wldn:EnergyMember 2024-03-29 0001370450 us-gaap:IntersegmentEliminationMember 2024-03-29 0001370450 us-gaap:CorporateNonSegmentMember 2024-03-29 0001370450 us-gaap:OperatingSegmentsMember wldn:EngineeringConsultingServicesMember 2023-03-31 0001370450 us-gaap:OperatingSegmentsMember wldn:EnergyMember 2023-03-31 0001370450 us-gaap:IntersegmentEliminationMember 2023-03-31 0001370450 us-gaap:CorporateNonSegmentMember 2023-03-31 0001370450 2023-03-31 0001370450 us-gaap:StockCompensationPlanMember 2023-12-30 2024-03-29 0001370450 us-gaap:StockCompensationPlanMember 2022-12-31 2023-03-31 0001370450 us-gaap:CommonStockMember 2023-12-30 2024-03-29 0001370450 us-gaap:AdditionalPaidInCapitalMember 2023-12-30 2024-03-29 0001370450 us-gaap:AdditionalPaidInCapitalMember 2022-12-31 2023-03-31 0001370450 2022-12-31 2023-03-31 0001370450 2024-03-29 0001370450 2023-12-29 0001370450 2024-05-01 0001370450 2023-12-30 2024-03-29 shares iso4217:USD iso4217:USD shares pure wldn:segment wldn:state wldn:Y wldn:entity 0001370450 Q1 false http://fasb.org/us-gaap/2023#PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization http://fasb.org/us-gaap/2023#PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization P1Y http://fasb.org/us-gaap/2023#QualifiedPlanMember http://fasb.org/us-gaap/2023#RestrictedCashCurrent http://fasb.org/us-gaap/2023#RestrictedCashCurrent http://fasb.org/us-gaap/2023#PrepaidExpenseAndOtherAssetsCurrent http://fasb.org/us-gaap/2023#PrepaidExpenseAndOtherAssetsCurrent http://fasb.org/us-gaap/2023#OtherLiabilitiesNoncurrent http://fasb.org/us-gaap/2023#OtherLiabilitiesNoncurrent 10-Q true 2024-03-29 false 001-33076 WILLDAN GROUP, INC. DE 14-1951112 2401 East Katella Avenue Suite 300 Anaheim CA 92806 800 424-9144 Common Stock, par value $0.01 per share WLDN NASDAQ Yes Yes Accelerated Filer false false false 13817074 46925000 23397000 0 0 690000 866000 50792000 69677000 82409000 93885000 552000 1169000 5863000 3888000 186541000 192016000 27539000 27097000 131144000 131144000 12803000 12465000 30085000 31956000 4832000 4949000 14956000 15961000 407900000 415588000 34518000 33193000 38411000 54129000 16427000 13183000 8924000 8452000 1111000 1186000 4677000 4537000 104068000 114680000 86571000 88979000 1112000 1184000 9948000 9758000 686000 1142000 202385000 215743000 0.01 0.01 10000000 10000000 0 0 0 0 0.01 0.01 40000000 40000000 13817000 13817000 13682000 13682000 138000 137000 188088000 185795000 -230000 -664000 17519000 14577000 205515000 199845000 407900000 415588000 122489000 102603000 21512000 20410000 53559000 40912000 75071000 61322000 47418000 41281000 26509000 22385000 2445000 2278000 1390000 1533000 3592000 4200000 8121000 6871000 42057000 37267000 5361000 4014000 -2137000 -2466000 704000 140000 -1433000 -2326000 3928000 1688000 986000 756000 2942000 932000 434000 3376000 932000 0.22 0.07 0.21 0.07 13605000 13266000 13910000 13470000 13682000 137000 185795000 -664000 14577000 199845000 86000 1000 1401000 1402000 19000 281000 281000 32000 1000 778000 779000 62000 1000 -1000 1390000 1390000 2942000 2942000 434000 434000 13817000 138000 188088000 -230000 17519000 205515000 13296000 133000 177718000 3651000 181502000 92000 1000 1391000 1392000 7000 124000 124000 108000 1000 -1000 1533000 1533000 932000 932000 13489000 135000 180517000 4583000 185235000 2942000 932000 3592000 4200000 -92000 -85000 1005000 782000 13000 10000 -100000 81000 1390000 1533000 -18985000 -8204000 -11476000 -7819000 -617000 9000 1975000 -1023000 -117000 3532000 1325000 479000 -15740000 -7883000 3244000 2941000 8000 -647000 26949000 17292000 1971000 3488000 19000 13000 -1952000 -3475000 10679000 153000 485000 1875000 5250000 345000 303000 281000 1402000 1392000 779000 124000 -1469000 -15449000 23528000 -1632000 23397000 19485000 46925000 17853000 2081000 2424000 2000 -77000 198000 48000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">1. ORGANIZATION AND OPERATIONS OF THE COMPAN</b><b style="font-weight:bold;">Y</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Willdan Group, Inc. (“Willdan” or the “Company”) is a provider of professional, technical and consulting services to utilities, private industry, and public agencies at all levels of government. As resource and infrastructure needs undergo continuous change, the Company helps organizations and their communities evolve and thrive by providing a wide range of technical services for energy solutions, and government infrastructure. Through engineering, program management, policy advisory, and software and data management, the Company designs and delivers trusted, comprehensive, innovative, and proven solutions to improve efficiency, resiliency, and sustainability in energy and infrastructure.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The Company’s broad portfolio of services operates within two financial reporting segments: (1) Energy and (2) Engineering and Consulting. The interfaces and synergies between these segments are important elements of the Company’s strategy to design and deliver trusted, comprehensive, innovative, and proven solutions for its customers.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The accounting policies followed by the Company are set forth in Part II, Item 8, Note 1, <i style="font-style:italic;">Organization and Operations of the Company</i>, of the Notes to Consolidated Financial Statements included in the Company’s Annual Report on Form 10-K for the fiscal year ended December 29, 2023. In the opinion of management, all adjustments necessary to fairly state the Condensed Consolidated Financial Statements have been made. All such adjustments are of a normal, recurring nature. Certain information and footnote disclosures normally included in the Consolidated Financial Statements prepared in accordance with accounting principles generally accepted in the United States (“U.S. GAAP”) have been condensed or omitted pursuant to the rules and regulations of the Securities and Exchange Commission (“SEC”). These Condensed Consolidated Financial Statements and related notes thereto should be read in conjunction with the Consolidated Financial Statements and the notes thereto included in the Company’s Annual Report on Form 10-K for the fiscal year ended December 29, 2023. The results of operations for interim periods are not necessarily indicative of results to be expected for the full year.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 18pt;"><i style="font-style:italic;">Fiscal Years</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The Company operates and reports its annual financial results based on 52 or 53-week periods ending on the Friday closest to December 31. The Company operates and reports its quarterly financial results based on the 13-week period ending on the Friday closest to June 30, September 30, and December 31 and the 13 or 14-week period ending on the Friday closest to March 31, as applicable. Fiscal year 2024, which ends on December 27, 2024, will be comprised of 52 weeks, with all quarters consisting of 13 weeks each. Fiscal year 2023, which ended on December 29, 2023, was comprised of 52 weeks, with all quarters consisting of 13 weeks each. All references to years in the notes to consolidated financial statements represent fiscal years.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:11pt;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 10pt 18pt;"><i style="font-style:italic;">Use of Estimates</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The preparation of consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the consolidated financial statements. Estimates also affect the reported amounts of revenue and expenses during the reporting period. Actual results could differ from those estimates. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> 2 2 2 2 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The accounting policies followed by the Company are set forth in Part II, Item 8, Note 1, <i style="font-style:italic;">Organization and Operations of the Company</i>, of the Notes to Consolidated Financial Statements included in the Company’s Annual Report on Form 10-K for the fiscal year ended December 29, 2023. In the opinion of management, all adjustments necessary to fairly state the Condensed Consolidated Financial Statements have been made. All such adjustments are of a normal, recurring nature. Certain information and footnote disclosures normally included in the Consolidated Financial Statements prepared in accordance with accounting principles generally accepted in the United States (“U.S. GAAP”) have been condensed or omitted pursuant to the rules and regulations of the Securities and Exchange Commission (“SEC”). These Condensed Consolidated Financial Statements and related notes thereto should be read in conjunction with the Consolidated Financial Statements and the notes thereto included in the Company’s Annual Report on Form 10-K for the fiscal year ended December 29, 2023. The results of operations for interim periods are not necessarily indicative of results to be expected for the full year.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 18pt;"><i style="font-style:italic;">Fiscal Years</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The Company operates and reports its annual financial results based on 52 or 53-week periods ending on the Friday closest to December 31. The Company operates and reports its quarterly financial results based on the 13-week period ending on the Friday closest to June 30, September 30, and December 31 and the 13 or 14-week period ending on the Friday closest to March 31, as applicable. Fiscal year 2024, which ends on December 27, 2024, will be comprised of 52 weeks, with all quarters consisting of 13 weeks each. Fiscal year 2023, which ended on December 29, 2023, was comprised of 52 weeks, with all quarters consisting of 13 weeks each. All references to years in the notes to consolidated financial statements represent fiscal years.</p> P364D P364D P371D P371D P91D P91D P91D P91D P91D P98D P98D 2024 --12-27 P364D P91D P91D P91D P91D P364D P91D P91D P91D P91D <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:11pt;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 10pt 18pt;"><i style="font-style:italic;">Use of Estimates</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The preparation of consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the consolidated financial statements. Estimates also affect the reported amounts of revenue and expenses during the reporting period. Actual results could differ from those estimates. </p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:11pt;margin:0pt 0pt 10pt 0pt;"><b style="font-weight:bold;">2.</b><span style="font-style:italic;font-weight:bold;"> </span><b style="font-weight:bold;">RECENT ACCOUNTING PRONOUNCEMENTS</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:11.0pt;text-indent:18pt;margin:0pt 0pt 10pt 0pt;"><i style="font-style:italic;">Accounting Pronouncements Recently Issued</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:11.0pt;text-indent:18pt;margin:0pt 0pt 10pt 0pt;">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” (“ASU 2023-09”). ASU 2023-09 amends the rules on income tax disclosures to require entities to disclose specific categories in the rate reconciliation, the income or loss from continuing operations before income tax expense or benefit (separated between domestic and foreign) and income tax expense or benefit from continuing operations (separated by federal, state, and foreign). In addition, ASU 2023-09 requires entities to disclose their income tax payments to international, federal, state, and local jurisdictions, among other changes. The amendments can be applied on a prospective basis although retrospective application is permitted. The amendments are effective for the fiscal years beginning after December 15, 2024, with early adoption permitted. The Company is currently evaluating the impact this update will have on its Consolidated Financial Statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:11.0pt;text-indent:36pt;margin:0pt 0pt 10pt 0pt;">In November 2023, the FASB issued ASU No. 2023-07, “Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures” (“ASU 2023-07”). ASU 2023-07 expands segment disclosure requirements through enhanced disclosures related to significant segment expenses that are regularly provided to the chief operating decision maker (“CODM”), a description of other segment items by reportable segment, and any additional measures of a segment's profit or loss used by the CODM when deciding how to allocate resources. All disclosure requirements under ASU 2023-07 are also required for public entities with a single reportable segment. The amendments are effective for the fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024. The Company is currently evaluating the impact this update will have on its Consolidated Financial Statements. </p><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;">  </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In October 2023, the FASB issued ASU No. 2023-06, “Disclosure Improvements: Codification Amendments in Response to the SEC’s Disclosure Update and Simplification Initiative” (“ASU 2023-06”). ASU 2023-06 amends U.S. GAAP to reflect updates and simplifications to certain disclosure and presentation requirements referred to FASB by the Securities and Exchange Commission (“SEC”). The targeted amendments incorporate 14 of the 27 disclosures referred by the SEC into codification. Each amendment in ASU 2023-06 is effective on either the date on which the SEC’s removal of the related disclosure requirement from Regulation S-X or Regulation S-K becomes effective, or on June 30, 2027, if the SEC has not removed the requirements by that date. The Company is currently evaluating the impact this update will have on its Consolidated Financial Statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt 0pt 10pt 0pt;"> </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:11.0pt;text-indent:18pt;margin:0pt 0pt 10pt 0pt;"><i style="font-style:italic;">Accounting Pronouncements Recently Issued</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:11.0pt;text-indent:18pt;margin:0pt 0pt 10pt 0pt;">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” (“ASU 2023-09”). ASU 2023-09 amends the rules on income tax disclosures to require entities to disclose specific categories in the rate reconciliation, the income or loss from continuing operations before income tax expense or benefit (separated between domestic and foreign) and income tax expense or benefit from continuing operations (separated by federal, state, and foreign). In addition, ASU 2023-09 requires entities to disclose their income tax payments to international, federal, state, and local jurisdictions, among other changes. The amendments can be applied on a prospective basis although retrospective application is permitted. The amendments are effective for the fiscal years beginning after December 15, 2024, with early adoption permitted. The Company is currently evaluating the impact this update will have on its Consolidated Financial Statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:11.0pt;text-indent:36pt;margin:0pt 0pt 10pt 0pt;">In November 2023, the FASB issued ASU No. 2023-07, “Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures” (“ASU 2023-07”). ASU 2023-07 expands segment disclosure requirements through enhanced disclosures related to significant segment expenses that are regularly provided to the chief operating decision maker (“CODM”), a description of other segment items by reportable segment, and any additional measures of a segment's profit or loss used by the CODM when deciding how to allocate resources. All disclosure requirements under ASU 2023-07 are also required for public entities with a single reportable segment. The amendments are effective for the fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024. The Company is currently evaluating the impact this update will have on its Consolidated Financial Statements. </p><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;">  </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In October 2023, the FASB issued ASU No. 2023-06, “Disclosure Improvements: Codification Amendments in Response to the SEC’s Disclosure Update and Simplification Initiative” (“ASU 2023-06”). ASU 2023-06 amends U.S. GAAP to reflect updates and simplifications to certain disclosure and presentation requirements referred to FASB by the Securities and Exchange Commission (“SEC”). The targeted amendments incorporate 14 of the 27 disclosures referred by the SEC into codification. Each amendment in ASU 2023-06 is effective on either the date on which the SEC’s removal of the related disclosure requirement from Regulation S-X or Regulation S-K becomes effective, or on June 30, 2027, if the SEC has not removed the requirements by that date. The Company is currently evaluating the impact this update will have on its Consolidated Financial Statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 8pt 0pt;"><b style="font-weight:bold;">3. REVENUES</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The Company enters into contracts with its clients that contain various types of pricing provisions, including fixed price, time-and-materials, and unit-based provisions. The Company recognizes revenues in accordance with ASU 2014-09, Revenue from Contracts with Customer, codified as ASC Topic 606 and the related amendments (collectively “ASC 606”). As such, the Company identifies a contract with a customer, identifies the performance obligations in the contract, determines the transaction price, allocates the transaction price to each performance obligation in the contract and recognizes revenues when (or as) the Company satisfies a performance obligation.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The following table reflects the Company’s two reportable segments and the types of contracts that each most commonly enters into for revenue generating activities.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:33.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Contract Type</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:33.31%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Revenue Recognition Method</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;background:#cceeff;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;width:33.34%;background:#cceeff;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Time-and-materials</p></td><td style="vertical-align:middle;width:33.31%;background:#cceeff;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Time-and-materials</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Energy</p></td><td style="vertical-align:middle;width:33.34%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Unit-based</p></td><td style="vertical-align:middle;width:33.31%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Unit-based</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;background:#cceeff;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;width:33.34%;background:#cceeff;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Software license</p></td><td style="vertical-align:middle;width:33.31%;background:#cceeff;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Unit-based</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;width:33.34%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Fixed price</p></td><td style="vertical-align:middle;width:33.31%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Percentage-of-completion</p></td></tr><tr><td style="vertical-align:middle;white-space:nowrap;width:33.34%;background:#cceeff;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;width:33.34%;background:#cceeff;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Time-and-materials</p></td><td style="vertical-align:middle;width:33.31%;background:#cceeff;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Time-and-materials</p></td></tr><tr><td style="vertical-align:middle;white-space:nowrap;width:33.34%;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Engineering and Consulting</p></td><td style="vertical-align:middle;width:33.34%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Unit-based</p></td><td style="vertical-align:middle;width:33.31%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Unit-based</p></td></tr><tr><td style="vertical-align:middle;white-space:nowrap;width:33.34%;background:#cceeff;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;width:33.34%;background:#cceeff;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Fixed price</p></td><td style="vertical-align:middle;width:33.31%;background:#cceeff;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Percentage-of-completion</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Revenue on the vast majority of the Company’s contracts is recognized over time because of the continuous transfer of control to the customer. Revenue on fixed price contracts is recognized on the percentage-of-completion method based generally on the ratio of direct costs incurred-to-date to estimated total direct costs at completion. The Company uses the percentage-of-completion method to better match the level of work performed at a certain point in time in relation to the effort that will be required to complete a project. In addition, the percentage-of-completion method is a common method of revenue recognition in the Company’s industry.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:10pt 0pt 12pt 0pt;">Many of the Company’s fixed price contracts involve a high degree of subcontracted fixed price effort and, usually, are relatively short in duration, thereby lowering the risks of not properly estimating the percent complete. Revenue on time-and-materials and unit-based contracts is recognized as the work is performed in accordance with the specific rates and terms of the contract. The Company recognizes revenues for time-and-materials contracts based upon the actual hours incurred during a reporting period at contractually agreed upon rates per hour and also includes in revenue all reimbursable costs incurred during a reporting period. Certain of the Company’s time-and-materials contracts are subject to maximum contract values and, accordingly, when revenue is expected to exceed the maximum contract value, these contracts are generally recognized under the percentage-of-completion method, consistent with fixed price contracts. For unit-based contracts, the Company recognizes the contract price of units of a basic production product as revenue when the production product is delivered during a period. Revenue for amounts that have been billed but not earned is deferred, and such deferred revenue is referred to as contract liabilities in the accompanying condensed consolidated balance sheets. The Company also derives revenue from software licenses and professional services and maintenance fees. In accordance with ASC 606, the Company performs an assessment of each contract to identify the performance obligations, determine the overall transaction price for the contract, allocate the transaction price to the performance obligations, and recognize the revenue when the performance obligations are satisfied. The Company utilizes the residual approach by which it estimates the standalone selling price by reference to the total transaction price less the sum of the observable standalone selling prices of other goods or services promised in the contract. The software license revenue is typically recognized at a point in time when control is transferred to the client, which is defined as the point in time when the client can use and benefit from the license. The software license is delivered before related services are provided and is functional without services, updates, or technical support. Related professional services include training and support services in which the standalone selling price is determined based on an input measure of hours incurred to total estimated hours and is recognized over time, which usually is the life of the contract.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">To determine the proper revenue recognition method for contracts, the Company evaluates whether two or more contracts should be combined and accounted for as one single contract and whether the combined contract should be accounted for as one performance obligation. With respect to the Company’s contracts, it is rare that multiple contracts should be combined into a single performance obligation. This evaluation requires significant judgment and the decision to combine a group of contracts or separate a single contract into multiple performance obligations could change the amount of revenue and profit recorded in a given period. Contracts are considered to have a single performance obligation if the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts, which is mainly because the Company provides a significant service of integrating a complex set of tasks and components into a single project or capability.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">The Company may enter into contracts that include separate phases or elements. If each phase or element is negotiated separately based on the technical resources required and/or the supply and demand for the services being provided, the Company evaluates if the contracts should be segmented. If certain criteria are met, the contracts would be segmented which could result in revenues being assigned to the different elements or phases with different rates of profitability based on the relative value of each element or phase to the estimated total contract revenue. Segmented contracts may comprise up to approximately </span>2.0% to 3.0% of the Company’s consolidated contract revenue.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Contracts that cover multiple phases or elements of the project or service lifecycle (development, construction and maintenance and support) may be considered to have multiple performance obligations even when they are part of a single contract. For contracts with multiple performance obligations, the Company allocates the transaction price to each performance obligation using the best estimate of the standalone selling price of each distinct good or service in the contract. For the periods presented, the value of the separate performance obligations under contracts with multiple performance obligations (generally measurement and verification tasks under certain energy performance contracts) were not material. In cases where the Company does not provide the distinct good or service on a standalone basis, the primary method used to estimate standalone selling price is the expected cost plus a margin approach, under which the Company forecasts the Company’s expected costs of satisfying a performance obligation and then adds an appropriate margin for the distinct good or service.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The Company provides quality of workmanship warranties to customers that are included in the sale and are not priced or sold separately or do not provide customers with a service in addition to assurance of compliance with agreed-upon specifications and industry standards. The Company does not consider these types of warranties to be separate performance obligations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">In some cases, the Company has a master service or blanket agreement with a customer under which each task order releases the Company to perform specific portions of the overall scope in the service contract. Each task order is typically accounted for as a separate contract because the task order establishes the enforceable rights and obligations, and payment terms.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Under ASC 606, variable consideration should be considered when determining the transaction price and estimates should be made for the variable consideration component of the transaction price, as well as assessing whether an estimate of variable consideration is constrained. For certain of the Company’s contracts, variable consideration can arise from modifications to the scope of services resulting from unapproved change orders or customer claims. Variable consideration is included in the transaction price to the extent it is probable that a significant reversal of cumulative revenue recognized will not occur when the uncertainty associated with the variable consideration is resolved. The Company estimates of variable consideration and determination of whether to include estimated amounts in the transaction price are based largely on assessments of legal enforceability, the Company’s performance, and all information (historical, current and forecasted) that is reasonably available to the Company.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Due to the nature of the work required to be performed on many of the Company’s performance obligations, the estimation of total revenue and cost at completion is complex, subject to many variables and requires significant judgment. As a significant change in one or more of these estimates could affect the profitability of the Company’s contracts, the Company reviews and updates the Company’s contract-related estimates regularly through a company-wide disciplined project review process in which management reviews the progress and execution of the Company’s performance obligations and the estimate at completion (“EAC”). As part of this process, management reviews information including, but not limited to, any outstanding key contract matters, progress towards completion and the related program schedule and the related changes in estimates of revenues and costs. Management must make assumptions and estimates regarding labor productivity and availability, the complexity of the work to be performed, the cost and availability of materials, the performance of subcontractors, and the availability and timing of funding from the customer, among other variables.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The Company recognizes adjustments in estimated profit on contracts under the cumulative catch-up method. Under this method, the impact of the adjustment on profit recorded to date is recognized in the period the adjustment is identified. Revenue and profit in future periods of contract performance is recognized using the adjusted estimate. If at any time the estimate of contract profitability indicates an anticipated loss on the contract, the Company recognizes the full amount of estimated loss in the period it is identified.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Contracts are often modified to account for changes in contract specifications and requirements. The Company considers contract modifications to exist when the modification either creates new rights or obligations or changes the existing enforceable rights or obligations. Most of the Company’s contract modifications are for goods or services that are not distinct from existing contracts due to the significant integration provided in the context of the contract and are accounted for as if they were part of the original contract. The effect of a contract modification that is not distinct from the existing contract on the transaction price and the Company’s measure of progress for the performance obligation to which it relates is recognized as an adjustment to revenue (either as an increase in or a reduction of revenue) on a cumulative catch-up basis.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">For contract modifications that result in the promise to deliver goods or services that are distinct from the existing contract and the increase in price of the contract is for the same amount as the standalone selling price of the additional goods or services included in the modification, the Company accounts for such contract modifications as a separate contract.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The Company includes claims to vendors, subcontractors and others as a receivable and a reduction in recognized costs when enforceability of the claim is established by the contract and the amounts are reasonably estimable and probable of being recovered. The amounts are recorded up to the extent of the lesser of the amounts management expects to recover or to costs incurred.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Billing practices are governed by the contract terms of each project based upon costs incurred, achievement of milestones or pre-agreed schedules. Billings do not necessarily correlate with revenue recognized using the percentage-of-completion method of revenue recognition.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Direct costs of contract revenue consist primarily of that portion of technical and nontechnical salaries and wages that has been incurred in connection with revenue producing projects. Direct costs of contract revenue also include production expenses, subcontractor services and other expenses that are incurred in connection with revenue producing projects.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Direct costs of contract revenue exclude that portion of technical and nontechnical salaries and wages related to marketing efforts, vacations, holidays and other time not spent directly generating revenue under existing contracts. Such costs are included in general and administrative expenses. Additionally, payroll taxes, bonuses and employee benefit costs for all Company personnel are included in general and administrative expenses in the accompanying condensed consolidated statements of comprehensive income since no allocation of these costs is made to direct costs of contract revenue. No allocation of facilities costs is made to direct costs of contract revenue. Other companies may classify as direct costs of contract revenue some of the costs that the Company classifies as general and administrative costs. The Company expenses direct costs of contract revenue when incurred.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Included in revenue and costs are all reimbursable costs for which the Company has the risk or on which the fee was based at the time of bid or negotiation. No revenue or cost is recorded for costs in which the Company acts solely in the capacity of an agent and has no risks associated with such costs.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Accounts receivable are carried at original invoice amount less an estimate made for doubtful accounts based upon a review of all outstanding amounts on a quarterly basis. Management determines allowances for doubtful accounts through specific identification of amounts considered to be uncollectible and potential write-offs, plus a non-specific allowance for other amounts for which some potential loss has been determined to be probable based on current and past experience. The Company’s historical credit losses have been minimal with governmental entities and large public utilities, but disputes may arise related to these receivable amounts. Accounts receivable are written off when deemed uncollectible. Recoveries of accounts receivable previously written off are recorded when received.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Retainage, included in contract assets, represents amounts withheld from billings to the Company’s clients pursuant to provisions in the contracts and may not be paid to the Company until specific tasks are completed or the project is completed and, in some instances, for even longer periods. As of March 29, 2024 and December 29, 2023, contract assets included retainage of approximately $16.1 million and $14.3 million, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 10pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p> 2 2 2 2 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:33.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Contract Type</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:33.31%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Revenue Recognition Method</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;background:#cceeff;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;width:33.34%;background:#cceeff;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Time-and-materials</p></td><td style="vertical-align:middle;width:33.31%;background:#cceeff;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Time-and-materials</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Energy</p></td><td style="vertical-align:middle;width:33.34%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Unit-based</p></td><td style="vertical-align:middle;width:33.31%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Unit-based</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;background:#cceeff;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;width:33.34%;background:#cceeff;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Software license</p></td><td style="vertical-align:middle;width:33.31%;background:#cceeff;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;border-top:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Unit-based</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:33.34%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;width:33.34%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Fixed price</p></td><td style="vertical-align:middle;width:33.31%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Percentage-of-completion</p></td></tr><tr><td style="vertical-align:middle;white-space:nowrap;width:33.34%;background:#cceeff;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;width:33.34%;background:#cceeff;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Time-and-materials</p></td><td style="vertical-align:middle;width:33.31%;background:#cceeff;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Time-and-materials</p></td></tr><tr><td style="vertical-align:middle;white-space:nowrap;width:33.34%;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Engineering and Consulting</p></td><td style="vertical-align:middle;width:33.34%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Unit-based</p></td><td style="vertical-align:middle;width:33.31%;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Unit-based</p></td></tr><tr><td style="vertical-align:middle;white-space:nowrap;width:33.34%;background:#cceeff;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;width:33.34%;background:#cceeff;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Fixed price</p></td><td style="vertical-align:middle;width:33.31%;background:#cceeff;border-bottom:1px solid #000000;border-left:1px solid #000000;border-right:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Percentage-of-completion</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p> 0.020 0.030 0 0 0 16100000 14300000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:8pt;margin:0pt;"><b style="font-weight:bold;">4. SUPPLEMENTAL FINANCIAL STATEMENT DATA </b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:8pt;text-indent:18pt;background:#ffffff;margin:0pt;"><i style="font-style:italic;">Restricted Cash</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;background:#ffffff;margin:0pt 0pt 8pt 0pt;">The following table provides a reconciliation of cash and cash equivalents, and restricted cash reported within the condensed consolidated balance sheets to the total cash, cash equivalents, and restricted cash shown in the consolidated statements of cash flows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:53.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:53.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 29,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 29,</b></p></td></tr><tr><td style="vertical-align:bottom;width:53.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:53.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:42.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:bottom;width:53.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cash and cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 46,925</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 23,397</p></td></tr><tr><td style="vertical-align:bottom;width:53.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_DgMfgT6FCUelVzlm7SVDAg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Restricted cash</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:53.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;"> Total cash, cash equivalents, and restricted cash shown in the consolidated statement of cash flows</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 46,925</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 23,397</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 8pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span><span style="background:#ffffff;">Under certain utility contracts, the Company periodically receives cash deposits to be held in trust for the payment of energy incentive rebates to be sent directly to the utility’s end-customer on behalf of the utility. The Company acts solely as the utility’s agent to distribute these funds to the end-customer and, accordingly, the Company classifies these contractually restricted funds as restricted cash. Because these funds are held in trust for pass through to the utility’s customers and have no impact on the Company’s working capital or operating cash flows, these cash receipts are presented in the consolidated statement of cash flows as financing cash inflows, “Receipt of restricted cash”, with the subsequent payments classified as financing cash outflows, “Payment of restricted cash.”</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><i style="font-style:italic;">Equipment and Leasehold Improvements</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:19.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 29,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 29,</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:44.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:bottom;width:52.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Furniture and fixtures</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,403</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,379</p></td></tr><tr><td style="vertical-align:bottom;width:52.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Computer hardware and software</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 46,384</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 44,594</p></td></tr><tr><td style="vertical-align:bottom;width:52.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Leasehold improvements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,466</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,382</p></td></tr><tr><td style="vertical-align:bottom;width:52.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Equipment under finance leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,245</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,139</p></td></tr><tr><td style="vertical-align:bottom;width:52.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Automobiles, trucks, and field equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,388</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,373</p></td></tr><tr><td style="vertical-align:bottom;width:52.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Subtotal</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 63,886</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 61,867</p></td></tr><tr><td style="vertical-align:bottom;width:52.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accumulated depreciation and amortization</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (36,347)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (34,770)</p></td></tr><tr><td style="vertical-align:bottom;width:52.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Equipment and leasehold improvements, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 27,539</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 27,097</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 10pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Included in accumulated depreciation and amortization is $0.4 million and $1.3 million of amortization expense related to equipment held under finance leases for the three months ended March 29, 2024 and for fiscal year 2023, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><i style="font-style:italic;">Accrued Liabilities</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:19.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 29,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 29,</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:44.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:bottom;width:52.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accrued subcontractor costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 22,896</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 30,196</p></td></tr><tr><td style="vertical-align:bottom;width:52.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accrued bonuses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 4,542</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 14,423</p></td></tr><tr><td style="vertical-align:bottom;width:52.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Employee withholdings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 4,779</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 3,123</p></td></tr><tr><td style="vertical-align:bottom;width:52.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Compensation and payroll taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 4,163</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 3,125</p></td></tr><tr><td style="vertical-align:bottom;width:52.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Rebate and other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 139</p></td></tr><tr><td style="vertical-align:bottom;width:52.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accrued accounting costs and taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 2,031</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 3,123</p></td></tr><tr><td style="vertical-align:bottom;width:52.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total accrued liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 38,411</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.12%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 54,129</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:12pt 0pt 12pt 0pt;"><i style="font-style:italic;">Goodwill</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:48.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 29,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Additional</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Additions / </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 29,</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Purchase Cost</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Adjustments</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:middle;white-space:nowrap;width:49.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Reporting Unit:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 129,375</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 129,375</p></td></tr><tr><td style="vertical-align:bottom;width:48.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Engineering and Consulting</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,769</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,769</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 131,144</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 131,144</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>The Company tests its goodwill at least annually for possible impairment. The Company completes its annual testing of goodwill as of the last day of the first month of its fourth fiscal quarter each year to determine whether there is a potential impairment. In addition to the Company’s annual test, it regularly evaluates whether events and circumstances have occurred that may indicate a potential impairment of goodwill. The Company evaluated the current economic environment and noted that it does not believe it is more likely than not that goodwill was impaired as of March 29, 2024.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><i style="font-style:italic;">Intangible Assets</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:33.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:9.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:9.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:8.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:4.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:0.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:4.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:33.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:24.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 29, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:22.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 29, 2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:13.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amortization</b></p></td></tr><tr><td style="vertical-align:bottom;width:33.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:13.59%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Period</b></p></td></tr><tr><td style="vertical-align:bottom;width:33.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:middle;white-space:nowrap;width:49.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:13.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in years)</i></p></td></tr><tr><td style="vertical-align:bottom;width:33.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Finite:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:10.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:9.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:9.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:8.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:4.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:0.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:4.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Backlog</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,306</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,148</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,306</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,095</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:13.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">1.0</p></td></tr><tr><td style="vertical-align:bottom;width:33.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Tradename</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 15,936</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,835</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 15,936</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,695</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">-</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> 6.0</p></td></tr><tr><td style="vertical-align:bottom;width:33.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Non-compete agreements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,613</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,452</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,613</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,440</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">-</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> 5.0</p></td></tr><tr><td style="vertical-align:bottom;width:33.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Developed technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 15,810</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 14,791</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 15,810</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 14,521</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:13.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">8.0</p></td></tr><tr><td style="vertical-align:bottom;width:33.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 58,149</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 32,503</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 58,149</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 31,107</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">-</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> 8.0</p></td></tr><tr><td style="vertical-align:bottom;width:33.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 99,814</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 69,729</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 99,814</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 67,858</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:53.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:53.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 29,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 29,</b></p></td></tr><tr><td style="vertical-align:bottom;width:53.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:53.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:42.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:bottom;width:53.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cash and cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 46,925</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 23,397</p></td></tr><tr><td style="vertical-align:bottom;width:53.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_DgMfgT6FCUelVzlm7SVDAg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Restricted cash</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:53.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;"> Total cash, cash equivalents, and restricted cash shown in the consolidated statement of cash flows</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 46,925</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 23,397</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p> 46925000 23397000 0 0 46925000 23397000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:19.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 29,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 29,</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:44.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:bottom;width:52.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Furniture and fixtures</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,403</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,379</p></td></tr><tr><td style="vertical-align:bottom;width:52.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Computer hardware and software</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 46,384</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 44,594</p></td></tr><tr><td style="vertical-align:bottom;width:52.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Leasehold improvements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,466</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,382</p></td></tr><tr><td style="vertical-align:bottom;width:52.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Equipment under finance leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,245</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,139</p></td></tr><tr><td style="vertical-align:bottom;width:52.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Automobiles, trucks, and field equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,388</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,373</p></td></tr><tr><td style="vertical-align:bottom;width:52.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Subtotal</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 63,886</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 61,867</p></td></tr><tr><td style="vertical-align:bottom;width:52.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accumulated depreciation and amortization</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (36,347)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (34,770)</p></td></tr><tr><td style="vertical-align:bottom;width:52.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Equipment and leasehold improvements, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 27,539</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 27,097</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p> 4403000 4379000 46384000 44594000 3466000 3382000 6245000 6139000 3388000 3373000 63886000 61867000 36347000 34770000 27539000 27097000 400000 1300000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:19.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 29,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 29,</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:21.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:44.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:bottom;width:52.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accrued subcontractor costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 22,896</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 30,196</p></td></tr><tr><td style="vertical-align:bottom;width:52.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accrued bonuses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 4,542</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 14,423</p></td></tr><tr><td style="vertical-align:bottom;width:52.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Employee withholdings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 4,779</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 3,123</p></td></tr><tr><td style="vertical-align:bottom;width:52.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Compensation and payroll taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 4,163</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 3,125</p></td></tr><tr><td style="vertical-align:bottom;width:52.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Rebate and other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 139</p></td></tr><tr><td style="vertical-align:bottom;width:52.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accrued accounting costs and taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 2,031</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 3,123</p></td></tr><tr><td style="vertical-align:bottom;width:52.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total accrued liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 38,411</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.12%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 54,129</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p> 22896000 30196000 4542000 14423000 4779000 3123000 4163000 3125000 139000 2031000 3123000 38411000 54129000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:48.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 29,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Additional</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Additions / </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 29,</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Purchase Cost</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Adjustments</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:middle;white-space:nowrap;width:49.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Reporting Unit:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 129,375</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 129,375</p></td></tr><tr><td style="vertical-align:bottom;width:48.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Engineering and Consulting</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,769</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,769</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 131,144</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.51%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.21%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 131,144</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p> 129375000 129375000 1769000 1769000 131144000 131144000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:33.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:9.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:9.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:8.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:4.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:0.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:4.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:33.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:24.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 29, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:22.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 29, 2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:13.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amortization</b></p></td></tr><tr><td style="vertical-align:bottom;width:33.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:13.59%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Period</b></p></td></tr><tr><td style="vertical-align:bottom;width:33.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:middle;white-space:nowrap;width:49.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:13.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in years)</i></p></td></tr><tr><td style="vertical-align:bottom;width:33.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Finite:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:10.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:9.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:9.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:8.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:4.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:0.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:4.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Backlog</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,306</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,148</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,306</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,095</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:13.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">1.0</p></td></tr><tr><td style="vertical-align:bottom;width:33.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Tradename</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 15,936</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,835</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 15,936</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,695</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">-</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> 6.0</p></td></tr><tr><td style="vertical-align:bottom;width:33.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Non-compete agreements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,613</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,452</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,613</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,440</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">-</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> 5.0</p></td></tr><tr><td style="vertical-align:bottom;width:33.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Developed technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 15,810</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 14,791</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 15,810</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 14,521</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:13.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">8.0</p></td></tr><tr><td style="vertical-align:bottom;width:33.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 58,149</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 32,503</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 58,149</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 31,107</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">-</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> 8.0</p></td></tr><tr><td style="vertical-align:bottom;width:33.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 99,814</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 69,729</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 99,814</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.47%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 67,858</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p> 8306000 8148000 8306000 8095000 P1Y 15936000 12835000 15936000 12695000 P2Y6M P6Y 1613000 1452000 1613000 1440000 P4Y P5Y 15810000 14791000 15810000 14521000 P8Y 58149000 32503000 58149000 31107000 P5Y P8Y 99814000 69729000 99814000 67858000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:12pt;margin:0pt;"><b style="font-weight:bold;">5. DERIVATIVE FINANCIAL INSTRUMENTS</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:12pt;text-indent:36pt;background:#ffffff;margin:0pt;">The Company uses certain interest rate derivative contracts to hedge interest rate exposures on its variable rate debt. The Company’s hedging program is not designated for trading or speculative purposes.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;background:#ffffff;margin:0pt 0pt 12pt 0pt;">The Company recognizes derivative instruments as either assets or liabilities on the accompanying condensed consolidated balance sheets at fair value. The Company records changes in the fair value (i.e., gains or losses) of the derivatives that have been designated as cash flow hedges in its consolidated balance sheets as accumulated other comprehensive income (loss) and in its consolidated statements of comprehensive income (loss) as a loss or gain on cash flow hedge valuation.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">On November 30, 2023, the Company entered into an interest rate swap agreement that the Company designated as cash flow hedge to fix the variable interest rate on a portion of the Company’s term loan (see Note 6, <i style="font-style:italic;">“Debt Obligations” </i>for information regarding our indebtedness). The interest rate swap agreement has a total notional amount of $50.0 million, has a fixed annual interest rate of 4.77%, and expires on September 29, 2026. As of March 29, 2024, the effective portion of the Company’s interest rate swap agreement designated as a cash flow hedge before tax effects was $0.5 million, of which no amounts were reclassified from accumulated other comprehensive income (loss) to interest expense<span style="background:#ffffff;"> in the three months ended March 29, 2024</span>. The Company expects to reclassify $0.1 million from accumulated other comprehensive income (loss) to interest expense within the next twelve months.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>The fair values of the Company’s outstanding derivatives designated as hedging instruments were as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:42.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:24.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:42.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 0pt;">    </p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:27.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value of Derivative</b></p></td></tr><tr><td style="vertical-align:bottom;width:42.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 0pt;">    </p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:27.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Instruments as of</b></p></td></tr><tr><td style="vertical-align:bottom;width:42.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance Sheet Location</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 29, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 29, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:42.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:27.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:bottom;width:42.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Interest rate swap agreement</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_XtA6iuhoCUOzgPhf3zZaUQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Current assets</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.6pt 0.05pt 0pt;"> 140</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.6pt 0.05pt 0pt;"> 46</p></td></tr><tr><td style="vertical-align:bottom;width:42.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Interest rate swap agreement</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_nNJP0DXZAkOwcsoYhEfHYQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Other noncurrent liabilities</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"> (431)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"> (887)</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;background:#ffffff;margin:0pt;"> </p><p style="font-family:'Times New Roman','Times','serif';font-size:12pt;text-indent:36pt;background:#ffffff;margin:0pt;"><span style="font-size:9pt;margin-bottom:5pt;margin-top:5pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:12pt;text-indent:36pt;background:#ffffff;margin:0pt;">The impact of the effective portions of derivative instruments in cash flow hedging relationships and fair value relationships on other comprehensive income (loss) was $0.4 million for the three months ended March 29, 2024.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;background:#ffffff;margin:0pt 0pt 12pt 0pt;">The accumulated balances and reporting period activities for the periods below related to reclassifications out of accumulated other comprehensive income (loss) are summarized as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:middle;width:55.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:17.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:19.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:55.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:19.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gain (Loss) on</b></p></td><td style="vertical-align:middle;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:21.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Accumulated Other</b></p></td></tr><tr><td style="vertical-align:bottom;width:55.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:19.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Derivative Instruments</b></p></td><td style="vertical-align:middle;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:21.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Comprehensive Income (Loss)</b></p></td></tr><tr><td style="vertical-align:bottom;width:55.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:42.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:middle;width:55.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Balances at December 29, 2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:middle;white-space:nowrap;width:17.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">(664)</p></td><td style="vertical-align:middle;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:middle;white-space:nowrap;width:19.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">(664)</p></td></tr><tr><td style="vertical-align:middle;width:55.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Other comprehensive income (loss) before reclassifications</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 549</p></td><td style="vertical-align:middle;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:19.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;">549 </p></td></tr><tr><td style="vertical-align:middle;width:55.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Amounts reclassified from accumulated other comprehensive income (loss):</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:middle;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:55.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Income tax benefit (expense) related to derivative instruments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:17.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">(115)</p></td><td style="vertical-align:middle;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:19.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">(115)</p></td></tr><tr><td style="vertical-align:middle;width:55.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Net current-period other comprehensive income (loss)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 434</p></td><td style="vertical-align:middle;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.95%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.37%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 434</p></td></tr><tr><td style="vertical-align:middle;width:55.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Balances at March 29, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:middle;white-space:nowrap;width:17.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">(230)</p></td><td style="vertical-align:middle;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.95%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:middle;white-space:nowrap;width:19.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">(230)</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p> 2023-11-30 50000000.0 0.0477 2026-09-29 500000 0 100000 P12M <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:42.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:24.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:42.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 0pt;">    </p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:27.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value of Derivative</b></p></td></tr><tr><td style="vertical-align:bottom;width:42.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 0pt;">    </p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:27.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Instruments as of</b></p></td></tr><tr><td style="vertical-align:bottom;width:42.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance Sheet Location</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 29, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 29, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:42.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:27.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:bottom;width:42.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Interest rate swap agreement</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_XtA6iuhoCUOzgPhf3zZaUQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Current assets</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.6pt 0.05pt 0pt;"> 140</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.6pt 0.05pt 0pt;"> 46</p></td></tr><tr><td style="vertical-align:bottom;width:42.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Interest rate swap agreement</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_nNJP0DXZAkOwcsoYhEfHYQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Other noncurrent liabilities</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"> (431)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"> (887)</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;background:#ffffff;margin:0pt;"> </p> 140000 46000 431000 887000 400000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:middle;width:55.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:17.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:19.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:55.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:19.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gain (Loss) on</b></p></td><td style="vertical-align:middle;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:21.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Accumulated Other</b></p></td></tr><tr><td style="vertical-align:bottom;width:55.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:19.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Derivative Instruments</b></p></td><td style="vertical-align:middle;white-space:nowrap;width:2.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:21.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Comprehensive Income (Loss)</b></p></td></tr><tr><td style="vertical-align:bottom;width:55.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:42.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:middle;width:55.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Balances at December 29, 2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:middle;white-space:nowrap;width:17.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">(664)</p></td><td style="vertical-align:middle;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:middle;white-space:nowrap;width:19.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">(664)</p></td></tr><tr><td style="vertical-align:middle;width:55.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Other comprehensive income (loss) before reclassifications</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 549</p></td><td style="vertical-align:middle;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:19.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;">549 </p></td></tr><tr><td style="vertical-align:middle;width:55.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Amounts reclassified from accumulated other comprehensive income (loss):</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:middle;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:55.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Income tax benefit (expense) related to derivative instruments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:17.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">(115)</p></td><td style="vertical-align:middle;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:19.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">(115)</p></td></tr><tr><td style="vertical-align:middle;width:55.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Net current-period other comprehensive income (loss)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 434</p></td><td style="vertical-align:middle;white-space:nowrap;width:2.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.95%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.37%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 434</p></td></tr><tr><td style="vertical-align:middle;width:55.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Balances at March 29, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:middle;white-space:nowrap;width:17.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">(230)</p></td><td style="vertical-align:middle;white-space:nowrap;width:2.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:1.95%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:middle;white-space:nowrap;width:19.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">(230)</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p> -664000 -664000 549000 549000 -115000 -115000 434000 434000 -230000 -230000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">6. DEBT OBLIGATIONS</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Debt obligations, excluding obligations under finance leases (see Note 7, <i style="font-style:italic;">Leases,</i> below), consisted of the following:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 29,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 29,</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:26.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:bottom;width:71.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Outstanding borrowings on Term Loan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 96,250</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 98,125</p></td></tr><tr><td style="vertical-align:bottom;width:71.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Outstanding borrowings on Revolving Credit Facility</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:71.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other debt agreements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 174</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 327</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total debt</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 96,424</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 98,452</p></td></tr><tr><td style="vertical-align:bottom;width:71.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Issuance costs and debt discounts</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (929)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,021)</p></td></tr><tr><td style="vertical-align:bottom;width:71.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Subtotal</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 95,495</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 97,431</p></td></tr><tr><td style="vertical-align:bottom;width:71.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Less current portion of long-term debt</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,924</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,452</p></td></tr><tr><td style="vertical-align:bottom;width:71.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Long-term debt portion</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 86,571</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 88,979</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The credit agreement governing the Company’s Term Loan and Revolving Credit Facility require the Company to comply with certain financial obligations, including a maximum Net Leverage Ratio and a minimum Fixed Charge Coverage Ratio (as defined in the credit agreement governing the Term Loan and Revolving Credit Facility). The credit agreement also contains customary restrictive covenants. As of March 29, 2024, the Company was in compliance with all these covenants. </p><p style="font-family:'Times New Roman','Times','serif';font-size:12pt;text-indent:36pt;margin:0pt;"><span style="font-size:10pt;margin-bottom:5pt;margin-top:5pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In addition, as of March 29, 2024, <span style="background:#ffffff;">the Company’s composite interest rate, exclusive of the effects of upfront fees, undrawn fees and issuance cost amortization, was </span><span style="background:#ffffff;">7.7%</span><span style="background:#ffffff;">.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:12pt;text-indent:36pt;margin:0pt;"><span style="font-size:10pt;margin-bottom:5pt;margin-top:5pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;background:#ffffff;margin:0pt;"> <span style="margin-bottom:5pt;margin-top:5pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:12pt;margin:0pt;"><span style="font-size:10pt;margin-bottom:5pt;margin-top:5pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="color:#212529;visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 29,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 29,</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:26.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:bottom;width:71.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Outstanding borrowings on Term Loan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 96,250</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 98,125</p></td></tr><tr><td style="vertical-align:bottom;width:71.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Outstanding borrowings on Revolving Credit Facility</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:71.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other debt agreements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 174</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 327</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total debt</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 96,424</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 98,452</p></td></tr><tr><td style="vertical-align:bottom;width:71.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Issuance costs and debt discounts</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (929)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,021)</p></td></tr><tr><td style="vertical-align:bottom;width:71.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Subtotal</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 95,495</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 97,431</p></td></tr><tr><td style="vertical-align:bottom;width:71.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Less current portion of long-term debt</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,924</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,452</p></td></tr><tr><td style="vertical-align:bottom;width:71.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Long-term debt portion</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 86,571</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 88,979</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p> 96250000 98125000 174000 327000 96424000 98452000 929000 1021000 95495000 97431000 8924000 8452000 86571000 88979000 0.077 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">7. LEASES</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The Company leases certain office facilities under long-term, non-cancellable operating leases that expire at various dates through 2029. In addition, the Company is obligated under finance leases for certain furniture and office equipment that expire at various dates through 2028.</p><p style="font-family:'Times New Roman','Times','serif';font-size:12pt;text-indent:36pt;margin:0pt;"><span style="font-size:10pt;">From time to time, the Company enters into non-cancelable leases for some of its facility and equipment needs. These leases allow the Company to conserve cash by paying a monthly lease rental fee for the use of facilities and equipment rather than purchasing them. The Company’s leases typically have remaining terms ranging from </span><span style="-sec-ix-hidden:Hidden_SDKuDWNXRk-Z66vOwVDl9A;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">one</span></span><span style="font-size:10pt;"> to </span><span style="font-size:10pt;">eight years</span><span style="font-size:10pt;">, some of which may include options to </span><span style="font-size:10pt;">extend</span><span style="font-size:10pt;"> the leases for up to </span><span style="font-size:10pt;">five years</span><span style="font-size:10pt;">, and some of which may include options to </span><span style="font-size:10pt;">terminate</span><span style="font-size:10pt;"> the leases within </span><span style="font-size:10pt;">one year</span><span style="font-size:10pt;">. Currently, all of the Company’s leases contain fixed payment terms. The Company may decide to cancel or terminate a lease before the end of its term, in which case the Company is typically liable to the lessor for the remaining lease payments under the term of the lease. Additionally, all of the Company’s month-to-month leases are cancelable by the Company or the lessor, at any time, and are not included in the Company’s right-of-use asset or lease liability. As of March 29, 2024, the Company had </span><span style="font-size:10pt;">no</span><span style="font-size:10pt;"> leases with residual value guarantees. Typically, the Company has purchase options on the equipment underlying its long-term leases. The Company may exercise some of these purchase options when the need for equipment is on-going and the purchase option price is attractive. Nonperformance-related default covenants, cross-default provisions, subjective default provisions and material adverse change clauses contained in material lease agreements, if any, are also evaluated to determine whether those clauses affect lease classification in accordance with ASC Topic 842-10-25. Leases are accounted for as operating or financing leases, depending on the terms of the lease.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:12pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;margin-bottom:5pt;margin-top:5pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><i style="font-style:italic;">Financing Leases</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:12pt;text-indent:36pt;margin:0pt;"><span style="font-size:10pt;margin-bottom:5pt;margin-top:5pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The Company leases certain equipment under financing leases. The economic substance of the leases is a financing transaction for acquisition of equipment and leasehold improvements. Accordingly, the right-of-use assets for these leases are included in the balance sheets in equipment and leasehold improvements, net of accumulated depreciation, with a corresponding amount recorded in current portion of financing lease obligations or noncurrent portion of financing lease obligations, as appropriate. The financing lease assets are amortized over the life of the lease or, if shorter, the life of the leased asset, on a straight-line basis and included in depreciation expense. The interest associated with financing lease obligations is included in interest expense.</p><p style="font-family:'Times New Roman','Times','serif';font-size:12pt;text-indent:36pt;margin:0pt;"> </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><i style="font-style:italic;">Right-of-use assets</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Operating leases are included in right-of-use assets, and current portion of lease liability and noncurrent portion of lease liability, as appropriate. Right-of-use assets and lease liabilities are recognized based on the present value of the future minimum lease payments over the lease term at commencement date. As most of the Company’s leases do not provide an implicit rate to calculate present value, the Company determines this rate by estimating the Company’s incremental borrowing rate at the lease commencement date. The right-of-use asset also includes any lease payments made and initial direct costs incurred at lease commencement and excludes lease incentives. The Company’s lease terms may include options to extend or terminate the lease when it is reasonably certain that the Company will exercise that option. Lease expense for minimum lease payments is recognized on a straight-line basis over the lease term.</p><p style="font-family:'Times New Roman','Times','serif';font-size:12pt;text-indent:36pt;margin:0pt;"><span style="font-size:10pt;margin-bottom:5pt;margin-top:5pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following is a summary of the Company’s lease expense:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:55.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:15.49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:5.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:55.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:44.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:55.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 29,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:22.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 31,</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:55.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:22.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:55.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:bottom;width:55.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Operating lease cost</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,527</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,493</p></td></tr><tr><td style="vertical-align:bottom;width:55.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Sublease Income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (14)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:55.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Finance lease cost:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Amortization of assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">355</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 311</p></td></tr><tr><td style="vertical-align:bottom;width:55.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Interest on lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.49%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">31</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.09%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.97%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 22</p></td></tr><tr><td style="vertical-align:bottom;width:55.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total net lease cost</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.49%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,899</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.09%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.97%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,826</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following is a summary of lease information presented on the Company’s consolidated balance sheet:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 29,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 29,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:36.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Operating leases:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Right-of-use assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,803</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,465</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Lease liability</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,677</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,537</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Lease liability, less current portion</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9,948</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9,758</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Total lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 14,625</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 14,295</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Finance leases (included in equipment and leasehold improvements, net):</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Equipment and leasehold improvements, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,245</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,139</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Accumulated depreciation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (4,099)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (3,837)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"><span style="-sec-ix-hidden:Hidden_SiOWMNQeh02Xzu8dzFclwQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Total equipment and leasehold improvements, net</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,146</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,302</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Finance lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,111</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,186</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Finance lease obligations, less current portion</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,112</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,184</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Total finance lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,223</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,370</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Weighted average remaining lease term (in years):</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Operating Leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3.32</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3.43</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Finance Leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2.31</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Weighted average discount rate:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Operating Leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">6.67</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">6.09</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Finance Leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">5.59</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">5.19</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Rent expense was $1.7 million and $1.6 million for the three months ended March 29, 2024 and March 31, 2023, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following is a summary of other information and supplemental cash flow information related to finance and operating leases: </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:58.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:58.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:32.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:58.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 29,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 31,</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:58.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:58.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:32.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:bottom;width:58.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cash paid for amounts included in the measurement of lease liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Operating cash flow from operating leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,569</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,570</p></td></tr><tr><td style="vertical-align:bottom;width:58.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Operating cash flow from finance leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 31</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 22</p></td></tr><tr><td style="vertical-align:bottom;width:58.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Financing cash flow from finance leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 345</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 303</p></td></tr><tr><td style="vertical-align:bottom;width:58.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Right-of-use assets obtained in exchange for lease liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Operating leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,627</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,120</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following is a summary of the maturities of lease liabilities as of March 29, 2024:</p><p style="font-family:'Times New Roman','Times','serif';font-size:12pt;text-indent:36pt;margin:0pt;"><span style="font-size:10pt;margin-bottom:5pt;margin-top:5pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Operating</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Finance</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:25.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><i style="font-style:italic;">(in thousands)</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Fiscal year:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 12pt;">Remainder of 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 4,254</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 1,013</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 12pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 5,069</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 782</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 12pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 4,235</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 448</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 12pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 1,935</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 112</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 12pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 1,108</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 18</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 12pt;">2029 and thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 94</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 18pt;">Total lease payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 16,695</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 2,373</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Less: Imputed interest</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"> (2,070)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"> (150)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 18pt;">Total lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 14,625</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 2,223</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Less: Current obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 4,677</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 1,111</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 18pt;">Noncurrent lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 9,948</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 1,112</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p><p style="font-family:'Times New Roman','Times','serif';font-size:12pt;margin:0pt;"><span style="font-size:9pt;margin-bottom:5pt;margin-top:5pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The imputed interest for finance lease obligations represents the interest component of finance leases that will be recognized as interest expense in future periods. The financing component for operating lease obligations represents the effect of discounting the operating lease payments to their present value.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="visibility:hidden;">​</span></p> P8Y true P5Y true P1Y 0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:55.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:15.49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:5.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:55.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:44.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:55.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 29,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:22.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 31,</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:55.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:22.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:55.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:44.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:bottom;width:55.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Operating lease cost</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,527</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,493</p></td></tr><tr><td style="vertical-align:bottom;width:55.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Sublease Income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (14)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:55.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Finance lease cost:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Amortization of assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">355</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 311</p></td></tr><tr><td style="vertical-align:bottom;width:55.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Interest on lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.49%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">31</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.09%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.97%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 22</p></td></tr><tr><td style="vertical-align:bottom;width:55.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total net lease cost</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.49%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,899</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.09%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.97%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,826</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p> 1527000 1493000 14000 355000 311000 31000 22000 1899000 1826000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 29,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 29,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:36.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Operating leases:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Right-of-use assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,803</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,465</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Lease liability</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,677</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,537</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Lease liability, less current portion</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9,948</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9,758</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Total lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 14,625</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 14,295</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Finance leases (included in equipment and leasehold improvements, net):</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Equipment and leasehold improvements, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,245</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,139</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Accumulated depreciation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (4,099)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (3,837)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"><span style="-sec-ix-hidden:Hidden_SiOWMNQeh02Xzu8dzFclwQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Total equipment and leasehold improvements, net</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,146</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,302</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Finance lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,111</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,186</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Finance lease obligations, less current portion</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,112</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,184</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Total finance lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,223</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,370</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Weighted average remaining lease term (in years):</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Operating Leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3.32</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3.43</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Finance Leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2.31</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Weighted average discount rate:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Operating Leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">6.67</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">6.09</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:58.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Finance Leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">5.59</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;">5.19</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p> 12803000 12465000 4677000 4537000 9948000 9758000 14625000 14295000 6245000 6139000 4099000 3837000 2146000 2302000 1111000 1186000 1112000 1184000 2223000 2370000 P3Y3M25D P3Y5M4D P2Y3M P2Y3M21D 0.0667 0.0609 0.0559 0.0519 1700000 1600000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:58.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:58.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:32.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:58.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 29,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 31,</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:58.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:58.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:32.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:bottom;width:58.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cash paid for amounts included in the measurement of lease liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Operating cash flow from operating leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,569</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,570</p></td></tr><tr><td style="vertical-align:bottom;width:58.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Operating cash flow from finance leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 31</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 22</p></td></tr><tr><td style="vertical-align:bottom;width:58.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Financing cash flow from finance leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 345</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 303</p></td></tr><tr><td style="vertical-align:bottom;width:58.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Right-of-use assets obtained in exchange for lease liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Operating leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,627</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,120</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p> 1569000 1570000 31000 22000 345000 303000 1627000 2120000 <p style="font-family:'Times New Roman','Times','serif';font-size:12pt;text-indent:36pt;margin:0pt;"><span style="font-size:10pt;margin-bottom:5pt;margin-top:5pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Operating</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Finance</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:25.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><i style="font-style:italic;">(in thousands)</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Fiscal year:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 12pt;">Remainder of 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 4,254</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 1,013</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 12pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 5,069</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 782</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 12pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 4,235</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 448</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 12pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 1,935</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 112</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 12pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 1,108</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 18</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 12pt;">2029 and thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 94</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 18pt;">Total lease payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 16,695</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 2,373</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Less: Imputed interest</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"> (2,070)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"> (150)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 18pt;">Total lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 14,625</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 2,223</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Less: Current obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 4,677</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 1,111</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 18pt;">Noncurrent lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 9,948</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 1,112</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p> <p style="font-family:'Times New Roman','Times','serif';font-size:12pt;text-indent:36pt;margin:0pt;"><span style="font-size:10pt;margin-bottom:5pt;margin-top:5pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Operating</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Finance</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:25.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><i style="font-style:italic;">(in thousands)</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Fiscal year:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 12pt;">Remainder of 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 4,254</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 1,013</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 12pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 5,069</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 782</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 12pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 4,235</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 448</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 12pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 1,935</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 112</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 12pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 1,108</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 18</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 12pt;">2029 and thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 94</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 18pt;">Total lease payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 16,695</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 2,373</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Less: Imputed interest</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"> (2,070)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 0pt 0.05pt 0pt;"> (150)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 18pt;">Total lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 14,625</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 2,223</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">Less: Current obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 4,677</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 1,111</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 18pt;">Noncurrent lease obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.73%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 9,948</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0.05pt 3.5pt 0.05pt 0pt;"> 1,112</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0.05pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p> 4254000 1013000 5069000 782000 4235000 448000 1935000 112000 1108000 18000 94000 16695000 2373000 2070000 150000 14625000 2223000 4677000 1111000 9948000 1112000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">8. COMMITMENTS AND VARIABLE INTEREST ENTITIES</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:36pt;text-indent:-36pt;margin:0pt 0pt 12pt 18pt;"><i style="font-style:italic;">Employee Benefit Plans</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The Company has a qualified profit sharing plan pursuant to Code Section 401(a) and <span style="-sec-ix-hidden:Hidden_25rYZlladEKT_aZ3AfglmQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">qualified</span></span> cash or deferred arrangement pursuant to Code Section 401(k) covering all employees. Employees may elect to contribute up to 50% of their compensation limited to the amount allowed by tax laws. Company contributions are made solely at the discretion of the Company’s board of directors. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The Company’s defined contribution plan (the “Plan”) covers employees who have completed three months of service and who have attained 21 years of age. The Company elects to make matching contributions equal to 50% of the participants’ contributions to the Plan, up to 6% of the individual participant’s compensation, and subject to a maximum of $3,000 per employee. Under the Plan, the Company may make discretionary contributions to employee accounts. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">During the three months ended March 29, 2024 and March 31, 2023, the Company made matching contributions of $1.1 million and <span style="background:#ffffff;">$1.0</span><span style="background:#ffffff;"> million, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><i style="font-style:italic;">Variable Interest Entities</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:36pt;margin:12pt 0pt 12pt 0pt;">On March 4, 2016, the Company and the Company’s wholly-owned subsidiary, WES, acquired substantially all of the assets of Genesys and assumed certain specified liabilities of Genesys (collectively, the “Purchase”) pursuant to an Asset Purchase and Merger Agreement, dated as of February 26, 2016 (the “Agreement”), by and among Willdan Group, Inc., WES, WESGEN (as defined below), Genesys and Ronald W. Mineo (“Mineo”) and Robert J. Braun (“Braun” and, together with Mineo, the “Genesys Shareholders”). On March 5, 2016, pursuant to the terms of the Agreement, WESGEN, Inc., a non-affiliated corporation (“WESGEN”), merged (the “Merger” and, together with the Purchase, the “Acquisition”) with Genesys, with Genesys remaining as the surviving corporation. Genesys was acquired to strengthen the Company’s power engineering capability in the northeastern U.S., and also to increase client exposure and experience with universities.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Genesys continues to be a professional corporation organized under the laws of the State of New York, wholly-owned by one or more licensed engineers. Pursuant to New York law, the Company does not own capital stock of Genesys. The Company has entered into an agreement with the Shareholder of Genesys pursuant to which the Shareholder will be prohibited from selling, transferring or encumbering the Shareholder’s ownership interest in Genesys without the Company’s consent. Notwithstanding the Company’s rights regarding the transfer of Genesys’s stock, the Company does not have control over the professional decision making of Genesys’s engineering services. The Company has entered into an administrative services agreement with Genesys pursuant to which WES will provide Genesys with ongoing administrative, operational and other non-professional support services. Genesys pays WES a service fee, which consists of all of the costs incurred by WES to provide the administrative services to Genesys plus ten percent of such costs, as well as any other costs that relate to professional service supplies and personnel costs. As a result of the administrative services agreement, the Company absorbs the expected losses of Genesys through its deferral of Genesys’s service fees owed to WES. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>The Company manages Genesys and has the power to direct the activities that most significantly impact Genesys’s performance, in addition to being obligated to absorb expected losses from Genesys. Accordingly, the Company is the primary beneficiary of Genesys and consolidates Genesys as a VIE. In addition, the Company concluded there is no noncontrolling interest related to the consolidation of Genesys because the Company determined that (i) the shareholder of Genesys does not have more than a nominal amount of equity investment at risk, (ii) WES absorbs the expected losses of Genesys through its deferral of Genesys’s service fees owed to WES and the Company has, since entering into the administrative services agreement, had to continuously defer service fees for Genesys, and (iii) the Company believes Genesys will continue to have a shortfall on payment of its service fees for the foreseeable future, leaving no expected residual returns for the shareholder. As of March 29, 2024, the Company had one VIE — Genesys.</p> 0.50 P3M 21 0.50 0.06 3000 1100000 1000000.0 0.10 1 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;"> 9. SEGMENT AND GEOGRAPHICAL INFORMATION</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><i style="font-style:italic;">Segment Information</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The Company’s two<span style="white-space:pre-wrap;"> segments are Energy, and Engineering and Consulting, and the Company’s chief operating decision maker, which continues to be its chief executive officer, receives and reviews financial information in this format. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">There were no intersegment sales during the three months ended March 29, 2024 and March 31, 2023. The Company’s chief operating decision maker evaluates the performance of each segment based upon income or loss from operations before income taxes. Certain segment asset information including expenditures for long-lived assets has not been presented as it is not reported to or reviewed by the chief operating decision maker. In addition, enterprise-wide service line contract revenue is not included as it is impracticable to report this information for each group of similar services.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Financial information with respect to the reportable segments and reconciliation to the amounts reported in the Company’s Condensed Consolidated Financial Statements is as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:42.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:42.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Engineering</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Unallocated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Consolidated</b></p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Energy</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&amp; Consulting</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Corporate</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Intersegment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="14" style="vertical-align:bottom;white-space:nowrap;width:55.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Fiscal Three Months Ended March 29, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Contract revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 100,746</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 21,743</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> -</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';"> -</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 122,489</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Depreciation and amortization</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 3,236</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 356</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';"> -</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';"> -</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 3,592</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Interest expense, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';"> -</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 2,136</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';"> -</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 2,137</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Segment profit (loss) before income tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 4,311</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 2,344</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"> (2,727)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';"> -</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 3,928</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Income tax expense (benefit)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 1,083</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 588</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"> (685)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';"> -</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 986</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Net income (loss)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 3,229</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 1,756</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"> (2,043)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';"> -</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 2,942</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Segment assets <sup style="font-size:6pt;line-height:100%;top:0pt;vertical-align:top;">(1)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 318,808</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 26,613</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 85,609</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"> (23,130)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 407,900</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Fiscal Three Months Ended March 31, 2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Contract revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 83,285</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 19,318</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> -</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> -</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 102,603</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Depreciation and amortization</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 3,924</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 276</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> -</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> -</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 4,200</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Interest expense, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> -</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 2,464</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> -</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 2,466</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Segment profit (loss) before income tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 2,771</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 2,587</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"> (3,670)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> -</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 1,688</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Income tax expense (benefit)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 1,241</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 1,158</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"> (1,643)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> -</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 756</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Net income (loss)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 1,530</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 1,428</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"> (2,026)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> -</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 932</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Segment assets <sup style="font-size:6pt;line-height:100%;top:0pt;vertical-align:top;">(1)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 323,578</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 23,587</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 69,332</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"> (23,130)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 393,367</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman','Times','serif';font-size:6.75pt;vertical-align:top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:9pt;font-style:normal;font-weight:normal;">Segment assets are presented net of intercompany receivables.</span></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 11pt 0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following tables provide information about disaggregated revenue by contract type, client type and geographical region: </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0.05pt 0pt 0pt 0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:48.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:14.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:14.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:14.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:49.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three months ended March 29, 2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:15.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Energy</b></p></td><td style="vertical-align:bottom;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:15.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Engineering and</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">Consulting</b></p></td><td style="vertical-align:bottom;width:1.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:15.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="8" style="vertical-align:bottom;width:49.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:bottom;width:48.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Contract Type</b></p></td><td style="vertical-align:bottom;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Time-and-materials</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">8,537</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">16,399</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">24,936</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Unit-based</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">46,957</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">4,511</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">51,468</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Fixed price</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">45,252</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">833</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">46,085</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Total<sup style="font-size:6pt;line-height:100%;top:0pt;vertical-align:top;"> (1)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.09%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">100,746</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">21,743</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">122,489</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Client Type</b></p></td><td style="vertical-align:bottom;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Commercial</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">7,203</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">1,580</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">8,783</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Government</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">35,820</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">20,098</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">55,918</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Utilities<sup style="font-size:6pt;line-height:100%;top:0pt;vertical-align:top;"> (2)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">57,723</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">65</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">57,788</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Total<sup style="font-size:6pt;line-height:100%;top:0pt;vertical-align:top;"> (1)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.09%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">100,746</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">21,743</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">122,489</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Geography </b><sup style="font-size:6pt;line-height:100%;top:0pt;vertical-align:top;">(3)</sup></p></td><td style="vertical-align:bottom;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:middle;width:48.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Domestic</p></td><td style="vertical-align:middle;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:middle;width:14.09%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 100,746</p></td><td style="vertical-align:middle;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:middle;width:14.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 21,743</p></td><td style="vertical-align:middle;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:middle;width:14.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 122,489</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0.05pt 0pt 0pt 0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:48.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:14.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:14.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:14.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:49.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three months ended March 31, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:15.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Energy</b></p></td><td style="vertical-align:bottom;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:15.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Engineering and</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">Consulting</b></p></td><td style="vertical-align:bottom;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:15.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="8" style="vertical-align:bottom;width:49.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:bottom;width:48.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Contract Type</b></p></td><td style="vertical-align:bottom;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Time-and-materials</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">7,709</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">14,554</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">22,263</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Unit-based</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">44,927</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">3,616</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">48,543</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Fixed price</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">30,649</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">1,148</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">31,797</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Total<sup style="font-size:6pt;line-height:100%;top:0pt;vertical-align:top;"> (1)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">83,285</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">19,318</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">102,603</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Client Type</b></p></td><td style="vertical-align:bottom;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Commercial</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">6,719</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">1,164</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">7,883</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Government</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">26,075</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">18,095</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">44,170</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Utilities<sup style="font-size:6pt;line-height:100%;top:0pt;vertical-align:top;"> (2)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">50,491</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">59</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">50,550</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Total<sup style="font-size:6pt;line-height:100%;top:0pt;vertical-align:top;"> (1)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">83,285</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">19,318</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">102,603</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Geography </b><sup style="font-size:6pt;line-height:100%;top:0pt;vertical-align:top;">(3)</sup></p></td><td style="vertical-align:bottom;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:middle;width:48.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Domestic</p></td><td style="vertical-align:middle;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:middle;width:14.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 83,285</p></td><td style="vertical-align:middle;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:middle;width:14.11%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 19,318</p></td><td style="vertical-align:middle;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:middle;width:14.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 102,603</p></td></tr></table><div style="margin-top:6pt;"></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:9pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:6.75pt;font-style:italic;vertical-align:top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><i style="font-family:'Times New Roman','Times','serif';font-size:8pt;font-style:italic;font-weight:normal;">Amounts may not add to the totals due to rounding.</i></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:9pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:6.75pt;font-style:italic;vertical-align:top;white-space:nowrap;width:18pt;padding:0pt;">(2)</td><td style="padding:0pt;"><i style="font-family:'Times New Roman','Times','serif';font-size:8pt;font-style:italic;font-weight:normal;">Includes the portion of revenue related to small business programs paid by the end user/customer.</i></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:9pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:6.75pt;font-style:italic;vertical-align:top;white-space:nowrap;width:18pt;padding:0pt;">(3)</td><td style="padding:0pt;"><i style="font-family:'Times New Roman','Times','serif';font-size:8pt;font-style:italic;font-weight:normal;">Revenue from the Company’s foreign operations were not material for the three months ended March 29, 2024 and March 31, 2023. </i></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"> <i style="font-style:italic;">Geographical Information</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Substantially all of the Company’s consolidated revenue was derived from its operations in the U.S. The Company operates through a network of offices spread across 22 U.S. states, the District of Columbia, the Commonwealth of Puerto Rico, and Canada. Revenues from the Company’s Puerto Rican and Canadian operations were not material for the three months ended March 29, 2024 nor the three months ended March 31, 2023. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><i style="font-style:italic;">Customer Concentration</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:12pt 0pt 12pt 0pt;">For the three months ended March 29, 2024 and March 31, 2023, the Company’s top 10 customers accounted for 49.2%, and 52.2%, respectively, of the Company’s consolidated contract revenue. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:12pt 0pt 12pt 0pt;">For the three months ended March 29, 2024, the Company had no individual customers that accounted for more than 10% of its consolidated contract revenue<span style="background:#ffffff;">.</span> For the three months ended March 31, 2023, the Company had one customer, the Los Angeles Department of Water and Power (“LADWP”), that accounted for 11.1% of its consolidated contract revenues<span style="background:#ffffff;">.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:12pt;text-indent:36pt;margin:12pt 0pt 0pt 0pt;">On a segment basis, the Company had individual customers that accounted for more than 10% of its segment contract revenues. For the three months ended March 29, 2024, the Company derived 10.7% of its Energy segment revenues from one customer, LADWP<span style="background:#ffffff;">, and </span>no single customer accounted for 10% or more of the Company’s Engineering and Consulting segment revenues. <span style="background:#ffffff;">For the three months ended March 31, 2023, the Company derived </span><span style="background:#ffffff;">13.7%</span><span style="background:#ffffff;"> of its Energy segment revenues from one customer, LADWP, and no single customer accounted for 10% or more of its Engineering and Consulting segment revenues.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;background:#ffffff;margin:2pt 0pt 0pt 0pt;">On a geographical basis, the Company’s largest clients are based in California and New York. For the three months ended March 29, 2024 and March 31, 2023, services provided to clients in California accounted for 43.5% and 42.4%, respectively, of the Company’s consolidated contract revenue, and services provided to clients in New York accounted for 27.1% and 24.5%, respectively, of the Company’s consolidated contract revenue. <span style="font-size:12pt;"> </span></p> 2 2 2 2 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:42.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:42.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Engineering</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Unallocated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Consolidated</b></p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Energy</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">&amp; Consulting</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Corporate</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Intersegment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:7pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="14" style="vertical-align:bottom;white-space:nowrap;width:55.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:7pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Fiscal Three Months Ended March 29, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Contract revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 100,746</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 21,743</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> -</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';"> -</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 122,489</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Depreciation and amortization</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 3,236</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 356</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';"> -</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';"> -</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 3,592</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Interest expense, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';"> -</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 2,136</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';"> -</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 2,137</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Segment profit (loss) before income tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 4,311</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 2,344</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"> (2,727)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';"> -</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 3,928</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Income tax expense (benefit)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 1,083</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 588</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"> (685)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';"> -</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 986</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Net income (loss)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 3,229</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 1,756</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"> (2,043)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"><span style="font-family:'Arial','Helvetica','sans-serif';"> -</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 2,942</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Segment assets <sup style="font-size:6pt;line-height:100%;top:0pt;vertical-align:top;">(1)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 318,808</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 26,613</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 85,609</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"> (23,130)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 407,900</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Fiscal Three Months Ended March 31, 2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Contract revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 83,285</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 19,318</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> -</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> -</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 102,603</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Depreciation and amortization</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 3,924</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 276</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> -</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> -</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 4,200</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Interest expense, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> -</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 2,464</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> -</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 2,466</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Segment profit (loss) before income tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 2,771</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 2,587</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"> (3,670)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> -</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 1,688</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Income tax expense (benefit)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 1,241</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 1,158</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"> (1,643)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> -</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 756</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Net income (loss)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 1,530</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 1,428</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"> (2,026)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> -</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 932</p></td></tr><tr><td style="vertical-align:bottom;width:42.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0pt 12pt;">Segment assets <sup style="font-size:6pt;line-height:100%;top:0pt;vertical-align:top;">(1)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 323,578</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 23,587</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 69,332</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"> (23,130)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 393,367</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman','Times','serif';font-size:6.75pt;vertical-align:top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:9pt;font-style:normal;font-weight:normal;">Segment assets are presented net of intercompany receivables.</span></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p> 100746000 21743000 122489000 3236000 356000 3592000 -1000 -2136000 -2137000 4311000 2344000 -2727000 3928000 1083000 588000 -685000 986000 3229000 1756000 -2043000 2942000 318808000 26613000 85609000 -23130000 407900000 83285000 19318000 102603000 3924000 276000 4200000 -2000 -2464000 -2466000 2771000 2587000 -3670000 1688000 1241000 1158000 -1643000 756000 1530000 1428000 -2026000 932000 323578000 23587000 69332000 -23130000 393367000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0.05pt 0pt 0pt 0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:48.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:14.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:14.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:14.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:49.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three months ended March 29, 2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:15.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Energy</b></p></td><td style="vertical-align:bottom;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:15.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Engineering and</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">Consulting</b></p></td><td style="vertical-align:bottom;width:1.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:15.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="8" style="vertical-align:bottom;width:49.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:bottom;width:48.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Contract Type</b></p></td><td style="vertical-align:bottom;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Time-and-materials</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">8,537</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">16,399</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">24,936</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Unit-based</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">46,957</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">4,511</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">51,468</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Fixed price</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">45,252</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">833</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">46,085</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Total<sup style="font-size:6pt;line-height:100%;top:0pt;vertical-align:top;"> (1)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.09%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">100,746</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">21,743</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">122,489</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Client Type</b></p></td><td style="vertical-align:bottom;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Commercial</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">7,203</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">1,580</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">8,783</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Government</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">35,820</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">20,098</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">55,918</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Utilities<sup style="font-size:6pt;line-height:100%;top:0pt;vertical-align:top;"> (2)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">57,723</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">65</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">57,788</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Total<sup style="font-size:6pt;line-height:100%;top:0pt;vertical-align:top;"> (1)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.09%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">100,746</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">21,743</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;">122,489</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Geography </b><sup style="font-size:6pt;line-height:100%;top:0pt;vertical-align:top;">(3)</sup></p></td><td style="vertical-align:bottom;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:middle;width:48.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Domestic</p></td><td style="vertical-align:middle;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:middle;width:14.09%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 100,746</p></td><td style="vertical-align:middle;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:middle;width:14.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 21,743</p></td><td style="vertical-align:middle;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:middle;width:14.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0pt 0pt;"> 122,489</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0.05pt 0pt 0pt 0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:48.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:14.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:14.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:14.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:49.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three months ended March 31, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:15.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Energy</b></p></td><td style="vertical-align:bottom;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:15.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Engineering and</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">Consulting</b></p></td><td style="vertical-align:bottom;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:15.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="8" style="vertical-align:bottom;width:49.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands)</i></p></td></tr><tr><td style="vertical-align:bottom;width:48.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Contract Type</b></p></td><td style="vertical-align:bottom;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Time-and-materials</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">7,709</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">14,554</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">22,263</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Unit-based</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">44,927</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">3,616</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">48,543</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Fixed price</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">30,649</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">1,148</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">31,797</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Total<sup style="font-size:6pt;line-height:100%;top:0pt;vertical-align:top;"> (1)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">83,285</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">19,318</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">102,603</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Client Type</b></p></td><td style="vertical-align:bottom;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Commercial</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">6,719</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">1,164</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">7,883</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Government</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">26,075</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">18,095</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">44,170</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Utilities<sup style="font-size:6pt;line-height:100%;top:0pt;vertical-align:top;"> (2)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">50,491</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">59</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">50,550</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Total<sup style="font-size:6pt;line-height:100%;top:0pt;vertical-align:top;"> (1)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">83,285</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">19,318</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;">102,603</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:48.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:48.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Geography </b><sup style="font-size:6pt;line-height:100%;top:0pt;vertical-align:top;">(3)</sup></p></td><td style="vertical-align:bottom;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:middle;width:48.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">Domestic</p></td><td style="vertical-align:middle;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:middle;width:14.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 83,285</p></td><td style="vertical-align:middle;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:middle;width:14.11%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 19,318</p></td><td style="vertical-align:middle;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;">$</p></td><td style="vertical-align:middle;width:14.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 102,603</p></td></tr></table><div style="margin-top:6pt;"></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:9pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:6.75pt;font-style:italic;vertical-align:top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><i style="font-family:'Times New Roman','Times','serif';font-size:8pt;font-style:italic;font-weight:normal;">Amounts may not add to the totals due to rounding.</i></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:9pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:6.75pt;font-style:italic;vertical-align:top;white-space:nowrap;width:18pt;padding:0pt;">(2)</td><td style="padding:0pt;"><i style="font-family:'Times New Roman','Times','serif';font-size:8pt;font-style:italic;font-weight:normal;">Includes the portion of revenue related to small business programs paid by the end user/customer.</i></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:9pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:6.75pt;font-style:italic;vertical-align:top;white-space:nowrap;width:18pt;padding:0pt;">(3)</td><td style="padding:0pt;"><i style="font-family:'Times New Roman','Times','serif';font-size:8pt;font-style:italic;font-weight:normal;">Revenue from the Company’s foreign operations were not material for the three months ended March 29, 2024 and March 31, 2023. </i></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p> 8537000 16399000 24936000 46957000 4511000 51468000 45252000 833000 46085000 100746000 21743000 122489000 7203000 1580000 8783000 35820000 20098000 55918000 57723000 65000 57788000 100746000 21743000 122489000 100746000 21743000 122489000 7709000 14554000 22263000 44927000 3616000 48543000 30649000 1148000 31797000 83285000 19318000 102603000 6719000 1164000 7883000 26075000 18095000 44170000 50491000 59000 50550000 83285000 19318000 102603000 83285000 19318000 102603000 22 0.492 0.522 0.111 0.107 0.137 0.435 0.424 0.271 0.245 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 10pt 0pt;"><b style="font-weight:bold;">10. INCOME TAXES </b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Income taxes are accounted for under the asset and liability method. Deferred tax assets and liabilities are recognized for the future tax consequences of temporary differences between the financial reporting basis and tax basis of the Company’s assets and liabilities, subject to a judgmental assessment of the recoverability of deferred tax assets. Deferred tax assets and liabilities are measured using enacted tax rates expected to apply to taxable income in the years in which those temporary differences are expected to be recovered or settled. The effect on deferred tax assets and liabilities of a change in tax rates is recognized in income in the period that includes the enactment date. A valuation allowance is recorded when it is more likely than not that some of the deferred tax assets may not be realized. Significant judgment is applied when assessing the need for valuation allowances and includes the evaluation of historical income (loss) adjusted for the effects of non-recurring items and the impact of recent business combinations. Areas of estimation include the Company’s consideration of future taxable income which is driven by verifiable signed contracts and ongoing prudent and feasible tax planning strategies. Should a change in circumstances lead to a change in judgment about the utilization of deferred tax assets in future years, the Company would adjust the related valuation allowances in the period that the change in circumstances occurs, along with a corresponding increase or charge to income.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">At the end of fiscal year 2023, the Company’s total valuation allowance was $1.2 million, remaining unchanged from the end of fiscal year 2022. As of March 29, 2024, the Company assessed all available positive and negative evidence available to determine whether, based on the weight of that evidence, there was a change in judgment related to the utilization of deferred tax assets in future years. The Company concluded that as of March 29, 2024, the valuation allowance for the Company’s deferred tax assets was appropriate in accordance with ASC 740. Consequently, there was no change to the valuation allowance during the three months ended March 29, 2024. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">For acquired business entities, if the Company identifies changes to acquired deferred tax asset valuation allowances or liabilities related to uncertain tax positions during the measurement period and they relate to new information obtained about facts and circumstances that existed as of the acquisition date, those changes are considered a measurement period adjustment, and the Company records the offset to goodwill. The Company records all other changes to deferred tax asset valuation allowances and liabilities related to uncertain tax positions in current period income tax expense.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The Company recognizes the tax benefit from uncertain tax positions if it is more likely than not that the tax positions will be sustained on examination by the tax authorities, based on the technical merits of the position. The tax benefit is measured based on the largest benefit that has a greater than 50% likelihood of being realized upon ultimate settlement. The Company recognizes interest and penalties related to unrecognized tax benefits in income tax expense. During the three months ended March 29, 2024, and the three months ended March 31, 2023, the Company did not record a liability for uncertain tax positions.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Based on the Company’s estimates and determination of an effective tax rate for the year, the Company recorded an income tax expense of $1.0 million for the three months ended March 29, 2024, compared to an income tax expense of $0.8 million for the three months ended March 31, 2023. During the three months ended March 29, 2024, the difference between the effective tax rate and the federal statutory rate was primarily attributable to state taxes, non-deductible stock compensation, nondeductible executive compensation, research and development tax credits, and the commercial building energy efficiency deduction. During the three months ended March 31, 2023, the difference between the effective tax rate and the federal statutory rate was primarily attributable to state taxes, non-deductible stock compensation, nondeductible executive compensation, research and development tax credits, and the commercial building energy efficiency deduction. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> 1200000 0 0 0 0 0 0 1000000.0 800000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">11. EARNINGS PER SHARE (“EPS”)</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Basic EPS is computed by dividing net income available to common stockholders by the weighted-average number of common shares outstanding. Diluted EPS is computed by dividing net income by the weighted-average number of common shares outstanding and dilutive potential common shares for the period. Potential common shares include the weighted-average dilutive effects of outstanding stock options and restricted stock awards using the treasury stock method.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The following table sets forth the number of weighted-average common shares outstanding used to compute basic and diluted EPS:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:61.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:61.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:35.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three months ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:61.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 29,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 31,</b></p></td></tr><tr><td style="vertical-align:bottom;width:61.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:61.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:35.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands, except per share amounts)</i></p></td></tr><tr><td style="vertical-align:bottom;width:61.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Net income (loss) </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 2,942</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.74%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 932</p></td></tr><tr><td style="vertical-align:bottom;width:61.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Weighted-average common shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 13,605</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 13,266</p></td></tr><tr><td style="vertical-align:bottom;width:61.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Effect of dilutive stock options and restricted stock awards</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 305</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 204</p></td></tr><tr><td style="vertical-align:bottom;width:61.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Weighted-average common shares outstanding-diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:15%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 13,910</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 13,470</p></td></tr><tr><td style="vertical-align:bottom;width:61.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Earnings (Loss) per share:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 0.22</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 0.07</p></td></tr><tr><td style="vertical-align:bottom;width:61.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 0.21</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.74%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 0.07</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:12pt;text-indent:36pt;margin:0pt;">For the three months ended March 29, 2024 and March 31, 2023, the Company excluded 335,000 and 397,000 common shares subject to outstanding equity awards, respectively, from the calculation of diluted shares because their impact would have been anti-dilutive. </p><p style="font-family:'Times New Roman','Times','serif';font-size:12pt;text-align:center;background:#ffffff;margin:12pt 0pt 0pt 0pt;"><span style="font-size:10pt;margin-bottom:5pt;margin-top:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:61.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:61.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:35.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three months ended</b></p></td></tr><tr><td style="vertical-align:bottom;width:61.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 29,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 31,</b></p></td></tr><tr><td style="vertical-align:bottom;width:61.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:61.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:35.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><i style="font-style:italic;">(in thousands, except per share amounts)</i></p></td></tr><tr><td style="vertical-align:bottom;width:61.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Net income (loss) </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 2,942</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.74%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 932</p></td></tr><tr><td style="vertical-align:bottom;width:61.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Weighted-average common shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 13,605</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 13,266</p></td></tr><tr><td style="vertical-align:bottom;width:61.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Effect of dilutive stock options and restricted stock awards</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 305</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.74%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 204</p></td></tr><tr><td style="vertical-align:bottom;width:61.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Weighted-average common shares outstanding-diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:15%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 13,910</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 13,470</p></td></tr><tr><td style="vertical-align:bottom;width:61.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Earnings (Loss) per share:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 0.22</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.74%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 0.07</p></td></tr><tr><td style="vertical-align:bottom;width:61.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 0.21</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.74%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 0.07</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;margin:0pt;"> </p> 2942000 2942000 932000 932000 13605000 13266000 305000 204000 13910000 13470000 0.22 0.07 0.21 0.07 335000 397000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:11pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">12. CONTINGENCIES</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:11pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 12pt 36pt;"><span style="font-style:italic;font-weight:bold;">Claims and Lawsuits</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:11pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">The Company is subject to claims and lawsuits from time to time, including those alleging professional errors or omissions that arise in the ordinary course of business against firms that operate in the engineering and consulting professions. The Company carries professional liability insurance, subject to certain deductibles and policy limits, for such claims as they arise and may from time to time establish reserves for litigation that is considered probable of a loss.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:11pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">In accordance with accounting standards regarding loss contingencies, the Company accrues an undiscounted liability for those contingencies where the incurrence of a loss is probable and the amount can be reasonably estimated, and discloses the amount accrued and an estimate of any reasonably possible loss in excess of the amount accrued, if such disclosure is necessary for the Company’s financial statements not to be misleading. The Company does not accrue liabilities when the likelihood that the liability has been incurred is probable but the amount cannot be reasonably estimated, or when the liability is believed to be only reasonably possible or remote.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:11pt;text-indent:36pt;margin:0pt 0pt 12pt 0pt;">Because litigation outcomes are inherently unpredictable, the Company’s evaluation of legal proceedings often involves a series of complex assessments by management about future events and can rely heavily on estimates and assumptions. If the assessments indicate that loss contingencies that could be material to any one of the Company’s financial statements are not probable, but are reasonably possible, or are probable, but cannot be estimated, then the Company will disclose the nature of the loss contingencies, together with an estimate of the possible loss or a statement that such loss is not reasonably estimable. While the consequences of certain unresolved proceedings are not presently determinable, and a reasonable estimate of the probable and reasonably possible loss or range of loss in excess of amounts accrued for such proceedings cannot be made, an adverse outcome from such proceedings could have a material adverse effect on the Company’s earnings in any given reporting period. However, in the opinion of the Company’s management, after consulting with legal counsel, and taking into account insurance coverage, the ultimate liability related to current outstanding claims and lawsuits is not expected to have a material adverse effect on the Company’s financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:11pt;margin:0pt;"><b style="font-weight:bold;white-space:pre-wrap;">13. SUBSEQUENT EVENTS</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:11pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;background:#ffffff;margin:0pt;">In accordance with ASC Topic 855, Subsequent Events, the Company evaluates subsequent events up until the date the Condensed Consolidated Financial Statements are issued. As of May 2, 2024, there were no subsequent events required to be reported.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="background:#ffffff;"> </span><span style="margin-bottom:5pt;margin-top:5pt;visibility:hidden;background:#ffffff;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:12pt;text-indent:36pt;margin:0pt;"><span style="font-size:10pt;margin-bottom:5pt;margin-top:5pt;visibility:hidden;background:#ffffff;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:11.0pt;text-indent:36pt;margin:0pt;"> </p><p style="font-family:'Times New Roman','Times','serif';font-size:12pt;text-indent:36pt;margin:0pt;"><span style="font-size:10pt;margin-bottom:5pt;margin-top:5pt;visibility:hidden;background:#ffffff;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:12pt;text-indent:36pt;margin:0pt;"><span style="font-size:10pt;margin-bottom:5pt;margin-top:5pt;visibility:hidden;background:#ffffff;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> false