0001558370-22-006108.txt : 20220427 0001558370-22-006108.hdr.sgml : 20220427 20220427162224 ACCESSION NUMBER: 0001558370-22-006108 CONFORMED SUBMISSION TYPE: 10-Q PUBLIC DOCUMENT COUNT: 65 CONFORMED PERIOD OF REPORT: 20220331 FILED AS OF DATE: 20220427 DATE AS OF CHANGE: 20220427 FILER: COMPANY DATA: COMPANY CONFORMED NAME: COMFORT SYSTEMS USA INC CENTRAL INDEX KEY: 0001035983 STANDARD INDUSTRIAL CLASSIFICATION: ELECTRICAL WORK [1731] IRS NUMBER: 760526487 FISCAL YEAR END: 1231 FILING VALUES: FORM TYPE: 10-Q SEC ACT: 1934 Act SEC FILE NUMBER: 001-13011 FILM NUMBER: 22859921 BUSINESS ADDRESS: STREET 1: 675 BERING DRIVE STREET 2: SUITE 400 CITY: HOUSTON STATE: TX ZIP: 77057 BUSINESS PHONE: 7138309600 MAIL ADDRESS: STREET 1: 675 BERING DRIVE STREET 2: SUITE 400 CITY: HOUSTON STATE: TX ZIP: 77057 10-Q 1 fix-20220331x10q.htm 10-Q
00http://fasb.org/us-gaap/2021-01-31#OtherLiabilitiesCurrent0001035983--12-312022Q1falseP3Yhttp://fasb.org/us-gaap/2021-01-31#OtherLiabilitiesCurrent0001035983fix:TaxYears2016To2018Member2020-10-012020-10-310001035983srt:MaximumMemberfix:StockRepurchaseProgram2007Member2022-01-012022-03-310001035983fix:StockRepurchaseProgram2007Member2007-03-292022-03-310001035983fix:StockRepurchaseProgram2007Member2022-03-310001035983fix:StockRepurchaseProgram2007Member2007-03-290001035983us-gaap:TreasuryStockMember2022-03-310001035983us-gaap:RetainedEarningsMember2022-03-310001035983us-gaap:AdditionalPaidInCapitalMember2022-03-310001035983us-gaap:TreasuryStockMember2021-12-310001035983us-gaap:RetainedEarningsMember2021-12-310001035983us-gaap:AdditionalPaidInCapitalMember2021-12-310001035983us-gaap:TreasuryStockMember2021-03-310001035983us-gaap:RetainedEarningsMember2021-03-310001035983us-gaap:AdditionalPaidInCapitalMember2021-03-310001035983us-gaap:TreasuryStockMember2020-12-310001035983us-gaap:RetainedEarningsMember2020-12-310001035983us-gaap:AdditionalPaidInCapitalMember2020-12-310001035983fix:SubordinateDebtAndPromissoryNoteMember2022-01-012022-03-310001035983srt:MinimumMember2022-04-012022-03-310001035983srt:MaximumMember2022-04-012022-03-3100010359832022-04-012022-03-310001035983fix:AmendedSeniorRevolvingCreditFacilityMember2022-01-012022-03-310001035983fix:StockRepurchaseProgram2007Member2022-01-012022-03-310001035983fix:MaturityYearThreeMemberfix:SubordinateDebtAndPromissoryNoteMember2022-03-310001035983fix:MaturityYearOneMemberfix:SubordinateDebtAndPromissoryNoteMember2022-03-310001035983fix:MaturityYearFourMemberfix:SubordinateDebtAndPromissoryNoteMember2022-03-310001035983fix:SubordinateDebtAndPromissoryNoteMember2021-12-310001035983fix:CustomerMemberus-gaap:PendingLitigationMemberus-gaap:PerformanceGuaranteeMember2022-01-012022-03-310001035983us-gaap:LetterOfCreditMember2022-03-310001035983fix:AmendedSeniorRevolvingCreditFacilityMember2021-12-310001035983srt:MinimumMember2022-03-310001035983srt:MaximumMember2022-03-310001035983fix:ResearchAndDevelopmentTaxCreditAnd179DeductionMemberus-gaap:TaxYear2018Member2020-10-012020-10-310001035983fix:ResearchAndDevelopmentTaxCreditAnd179DeductionMemberus-gaap:TaxYear2017Member2020-10-012020-10-310001035983fix:ResearchAndDevelopmentTaxCreditAnd179DeductionMemberus-gaap:TaxYear2016Member2020-10-012020-10-310001035983fix:ResearchAndDevelopmentTaxCreditAnd179DeductionMemberfix:TaxYears2016To2018Member2020-10-012020-10-310001035983us-gaap:OperatingSegmentsMemberfix:MechanicalServicesIndustryMember2022-01-012022-03-310001035983us-gaap:OperatingSegmentsMemberfix:ElectricalServicesIndustryMember2022-01-012022-03-310001035983us-gaap:OperatingSegmentsMemberfix:MechanicalServicesIndustryMember2021-01-012021-03-310001035983us-gaap:OperatingSegmentsMemberfix:ElectricalServicesIndustryMember2021-01-012021-03-310001035983fix:MechanicalServicesIndustryMember2022-01-012022-03-310001035983fix:MechanicalServicesIndustryMember2021-01-012021-12-310001035983fix:ElectricalServicesIndustryMember2021-01-012021-12-310001035983fix:WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember2022-03-310001035983fix:MechanicalServicesIndustryMember2022-03-310001035983fix:ElectricalServicesIndustryMember2022-03-310001035983fix:MechanicalServicesIndustryMember2021-12-310001035983fix:ElectricalServicesIndustryMember2021-12-310001035983fix:MechanicalServicesIndustryMember2020-12-310001035983fix:ElectricalServicesIndustryMember2020-12-310001035983fix:ContingentConsiderationObligationsMember2022-03-310001035983fix:ContingentConsiderationObligationsMember2021-12-310001035983fix:ContingentConsiderationObligationsMember2020-12-310001035983fix:ContingentConsiderationObligationsMember2022-01-012022-03-310001035983fix:ContingentConsiderationObligationsMember2021-01-012021-12-310001035983us-gaap:RetainedEarningsMember2022-01-012022-03-310001035983us-gaap:RetainedEarningsMember2021-01-012021-03-310001035983us-gaap:RevolvingCreditFacilityMember2022-03-310001035983fix:TermLoanMember2022-03-310001035983us-gaap:RevolvingCreditFacilityMember2021-12-310001035983fix:TermLoanMember2021-12-310001035983fix:MaturityYearThreeMembersrt:MinimumMemberfix:SubordinateDebtAndPromissoryNoteMember2022-03-310001035983fix:MaturityYearThreeMembersrt:MaximumMemberfix:SubordinateDebtAndPromissoryNoteMember2022-03-310001035983fix:MaturityYearOneMembersrt:MinimumMemberfix:SubordinateDebtAndPromissoryNoteMember2022-03-310001035983fix:MaturityYearOneMembersrt:MaximumMemberfix:SubordinateDebtAndPromissoryNoteMember2022-03-310001035983fix:MaturityYearFourMembersrt:MinimumMemberfix:SubordinateDebtAndPromissoryNoteMember2022-03-310001035983fix:MaturityYearFourMembersrt:MaximumMemberfix:SubordinateDebtAndPromissoryNoteMember2022-03-310001035983fix:MaturityYearTwoMemberfix:SubordinateDebtAndPromissoryNoteMember2022-03-310001035983fix:DebtCovenantRatioRangeTwoMemberus-gaap:RevolvingCreditFacilityMemberus-gaap:EurodollarMember2022-01-012022-03-310001035983fix:DebtCovenantRatioRangeTwoMemberus-gaap:RevolvingCreditFacilityMemberus-gaap:BaseRateMember2022-01-012022-03-310001035983fix:DebtCovenantRatioRangeThreeMemberus-gaap:RevolvingCreditFacilityMemberus-gaap:EurodollarMember2022-01-012022-03-310001035983fix:DebtCovenantRatioRangeThreeMemberus-gaap:RevolvingCreditFacilityMemberus-gaap:BaseRateMember2022-01-012022-03-310001035983fix:DebtCovenantRatioRangeOneMemberus-gaap:RevolvingCreditFacilityMemberus-gaap:EurodollarMember2022-01-012022-03-310001035983fix:DebtCovenantRatioRangeOneMemberus-gaap:RevolvingCreditFacilityMemberus-gaap:BaseRateMember2022-01-012022-03-310001035983fix:DebtCovenantRatioRangeFourMemberus-gaap:RevolvingCreditFacilityMemberus-gaap:EurodollarMember2022-01-012022-03-310001035983fix:DebtCovenantRatioRangeFourMemberus-gaap:RevolvingCreditFacilityMemberus-gaap:BaseRateMember2022-01-012022-03-310001035983us-gaap:CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member2021-01-012021-03-310001035983us-gaap:CommonStockMember2022-03-310001035983us-gaap:CommonStockMember2021-12-310001035983us-gaap:CommonStockMember2021-03-310001035983us-gaap:CommonStockMember2020-12-310001035983us-gaap:FairValueInputsLevel2Memberus-gaap:FairValueMeasurementsRecurringMember2022-03-310001035983us-gaap:FairValueInputsLevel2Memberus-gaap:FairValueMeasurementsRecurringMember2021-12-3100010359832021-03-3100010359832020-12-310001035983us-gaap:FairValueInputsLevel1Memberus-gaap:FairValueMeasurementsRecurringMember2022-03-310001035983us-gaap:FairValueInputsLevel1Memberus-gaap:FairValueMeasurementsRecurringMember2021-12-310001035983fix:MepHoldingCo.IncMember2021-12-312021-12-310001035983fix:MechanicalContractorKentuckyMember2021-12-312021-12-310001035983fix:MechanicalContractorIndianaMember2021-12-312021-12-310001035983fix:IveyMechanicalCompanyLlcMember2021-12-012021-12-010001035983fix:MechanicalContractorUtahMember2021-01-012021-03-310001035983srt:MaximumMember2022-01-012022-03-310001035983fix:StockRepurchaseProgram2007Member2020-12-080001035983us-gaap:AdditionalPaidInCapitalMember2022-01-012022-03-310001035983us-gaap:AdditionalPaidInCapitalMember2021-01-012021-03-310001035983us-gaap:TreasuryStockMember2022-01-012022-03-310001035983us-gaap:TreasuryStockMember2021-01-012021-03-310001035983us-gaap:OtherCustomerMember2022-01-012022-03-310001035983fix:ServiceProjectsMember2022-01-012022-03-310001035983fix:ServiceCallsMaintenanceAndMonitoringMember2022-01-012022-03-310001035983fix:RetailRestaurantsAndEntertainmentMember2022-01-012022-03-310001035983fix:OfficeBuildingCustomerMember2022-01-012022-03-310001035983fix:NewConstructionMember2022-01-012022-03-310001035983fix:MultiFamilyAndResidentialMember2022-01-012022-03-310001035983fix:MechanicalServicesMember2022-01-012022-03-310001035983fix:IndustrialPropertyCustomerMember2022-01-012022-03-310001035983fix:HealthcareSectorCustomerMember2022-01-012022-03-310001035983fix:GovernmentCustomerMember2022-01-012022-03-310001035983fix:ExistingBuildingConstructionMember2022-01-012022-03-310001035983fix:ElectricalServicesMember2022-01-012022-03-310001035983fix:EducationMember2022-01-012022-03-310001035983us-gaap:OtherCustomerMember2021-01-012021-03-310001035983fix:ServiceProjectsMember2021-01-012021-03-310001035983fix:ServiceCallsMaintenanceAndMonitoringMember2021-01-012021-03-310001035983fix:RetailRestaurantsAndEntertainmentMember2021-01-012021-03-310001035983fix:OfficeBuildingCustomerMember2021-01-012021-03-310001035983fix:NewConstructionMember2021-01-012021-03-310001035983fix:MultiFamilyAndResidentialMember2021-01-012021-03-310001035983fix:MechanicalServicesMember2021-01-012021-03-310001035983fix:IndustrialPropertyCustomerMember2021-01-012021-03-310001035983fix:HealthcareSectorCustomerMember2021-01-012021-03-310001035983fix:GovernmentCustomerMember2021-01-012021-03-310001035983fix:ExistingBuildingConstructionMember2021-01-012021-03-310001035983fix:ElectricalServicesMember2021-01-012021-03-310001035983fix:EducationMember2021-01-012021-03-310001035983fix:WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember2021-10-012021-12-310001035983srt:MinimumMemberus-gaap:SuretyBondMember2022-01-012022-03-310001035983srt:MaximumMemberus-gaap:SuretyBondMember2022-01-012022-03-310001035983srt:MinimumMember2022-01-012022-03-310001035983us-gaap:PendingLitigationMemberus-gaap:PerformanceGuaranteeMember2022-01-012022-03-310001035983fix:AmendedSeniorRevolvingCreditFacilityMember2022-03-310001035983fix:DebtCovenantRatioRangeOneMemberus-gaap:RevolvingCreditFacilityMember2022-01-012022-03-310001035983fix:DebtCovenantRatioRangeFourMemberus-gaap:RevolvingCreditFacilityMember2022-01-012022-03-310001035983fix:TaxYears2019To2021Member2022-01-012022-03-310001035983us-gaap:InterestRateSwapMember2022-01-012022-03-310001035983us-gaap:InterestRateSwapMember2021-01-012021-03-310001035983us-gaap:InterestRateSwapMemberus-gaap:NotDesignatedAsHedgingInstrumentEconomicHedgeMember2022-03-310001035983us-gaap:RevolvingCreditFacilityMember2022-01-012022-03-310001035983fix:SubordinateDebtAndPromissoryNoteMember2022-03-3100010359832022-03-3100010359832021-12-3100010359832021-01-012021-12-3100010359832021-01-012021-03-310001035983fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember2021-08-010001035983fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember2021-08-012021-08-010001035983fix:AtlanticElectricLlcMemberus-gaap:SubsequentEventMember2022-04-012022-04-010001035983us-gaap:FairValueInputsLevel3Memberus-gaap:FairValueMeasurementsRecurringMember2022-03-310001035983us-gaap:EstimateOfFairValueFairValueDisclosureMemberus-gaap:FairValueMeasurementsRecurringMember2022-03-310001035983us-gaap:FairValueInputsLevel3Memberus-gaap:FairValueMeasurementsRecurringMember2021-12-310001035983us-gaap:EstimateOfFairValueFairValueDisclosureMemberus-gaap:FairValueMeasurementsRecurringMember2021-12-3100010359832022-04-2200010359832022-01-012022-03-31xbrli:sharesiso4217:USDfix:itemxbrli:purefix:employeefix:Optioniso4217:USDxbrli:sharesfix:segment

UNITED STATES

SECURITIES AND EXCHANGE COMMISSION

Washington, D.C. 20549

Form 10-Q

(Mark One)

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

For the quarterly period ended March 31, 2022

OR

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

For the transition period from to

Commission file number: 1-13011

COMFORT SYSTEMS USA, INC.

(Exact name of registrant as specified in its charter)

Delaware
(State or other jurisdiction of
Incorporation or Organization)

76-0526487
(I.R.S. Employer
Identification No.)

675 Bering Drive
Suite 400
Houston, Texas 77057
(Address of Principal Executive Offices) (Zip Code)

Registrant’s telephone number, including area code: (713830-9600

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

Title of each class

Trading Symbol(s)

Name of each exchange on which registered

Common Stock, $0.01 par value

FIX

New York Stock Exchange

Indicate by check mark whether the registrant (1) has filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that the registrant was required to file such reports), and (2) has been subject to such filing requirements for the past 90 days. Yes  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 (Section 232.405 of this chapter) during the preceding 12 months (or for such shorter period that the registrant was required to submit such files). Yes  No 

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

Large accelerated filer 

Accelerated filer 

Non-accelerated filer 

Smaller reporting company 

Emerging growth company 

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

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

The number of shares outstanding of the issuer’s common stock as of April 22, 2022 was 35,983,287 (excluding treasury shares of 5,193,278).

COMFORT SYSTEMS USA, INC.

INDEX TO FORM 10-Q

FOR THE QUARTER ENDED MARCH 31, 2022

    

Page

Part I—Financial Information

2

Item 1—Financial Statements

2

Consolidated Balance Sheets

2

Consolidated Statements of Operations

3

Consolidated Statements of Stockholders’ Equity

4

Consolidated Statements of Cash Flows

5

Condensed Notes to Consolidated Financial Statements

6

Item 2—Management’s Discussion and Analysis of Financial Condition and Results of Operations

20

Item 3—Quantitative and Qualitative Disclosures about Market Risk

29

Item 4—Controls and Procedures

30

Part II—Other Information

31

Item 1—Legal Proceedings

31

Item 1A—Risk Factors

31

Item 2—Unregistered Sales of Equity Securities and Use of Proceeds

31

Item 6—Exhibits

33

Signatures

34

PART I—FINANCIAL INFORMATION

Item 1. Financial Statements

COMFORT SYSTEMS USA, INC.

CONSOLIDATED BALANCE SHEETS

(In Thousands, Except Share Amounts)

March 31,

December 31,

    

2022

    

2021

 

(Unaudited)

ASSETS

CURRENT ASSETS:

Cash and cash equivalents

$

115,615

$

58,776

Billed accounts receivable, less allowance for credit losses of $8,694 and $8,808, respectively

 

804,832

 

773,716

Unbilled accounts receivable, less allowance for credit losses of $751 and $715, respectively

 

70,901

 

61,881

Other receivables, less allowance for credit losses of $498 and $503, respectively

 

73,677

 

57,491

Inventories

 

24,918

 

21,853

Prepaid expenses and other

 

31,373

 

23,704

Costs and estimated earnings in excess of billings, less allowance for credit losses of $53 and $84, respectively

 

18,313

 

29,900

Total current assets

 

1,139,629

 

1,027,321

PROPERTY AND EQUIPMENT, NET

 

127,711

 

128,554

LEASE RIGHT-OF-USE ASSET

124,936

124,756

GOODWILL

 

593,947

 

592,114

IDENTIFIABLE INTANGIBLE ASSETS, NET

 

291,990

 

304,781

DEFERRED TAX ASSETS

20,577

22,905

OTHER NONCURRENT ASSETS

 

9,623

 

8,683

Total assets

$

2,308,413

$

2,209,114

LIABILITIES AND STOCKHOLDERS’ EQUITY

CURRENT LIABILITIES:

Current maturities of long-term debt

$

407

$

2,788

Accounts payable

267,246

254,788

Accrued compensation and benefits

 

121,990

 

129,971

Billings in excess of costs and estimated earnings

 

316,478

 

307,380

Accrued self-insurance

 

22,410

 

22,227

Other current liabilities

 

128,668

 

119,400

Total current liabilities

 

857,199

 

836,554

LONG-TERM DEBT, NET

 

412,079

 

385,242

LEASE LIABILITIES

107,033

 

107,701

DEFERRED TAX LIABILITIES

 

1,745

 

1,745

OTHER LONG-TERM LIABILITIES

 

51,949

 

72,206

Total liabilities

 

1,430,005

 

1,403,448

COMMITMENTS AND CONTINGENCIES

STOCKHOLDERS’ EQUITY:

Preferred stock, $.01 par, 5,000,000 shares authorized, none issued and outstanding

 

 

Common stock, $.01 par, 102,969,912 shares authorized, 41,123,365 and 41,123,365 shares issued, respectively

 

411

 

411

Treasury stock, at cost, 5,170,410 and 5,032,311 shares, respectively

 

(164,844)

 

(150,580)

Additional paid-in capital

 

331,978

 

327,061

Retained earnings

 

710,863

 

628,774

Total stockholders’ equity

 

878,408

 

805,666

Total liabilities and stockholders’ equity

$

2,308,413

$

2,209,114

The accompanying notes are an integral part of these consolidated financial statements.

2

COMFORT SYSTEMS USA, INC.

CONSOLIDATED STATEMENTS OF OPERATIONS

(In Thousands, Except Per Share Data)

(Unaudited)

Three Months Ended

March 31,

    

2022

    

2021

 

REVENUE

$

885,216

$

669,761

COST OF SERVICES

 

732,072

 

546,292

Gross profit

 

153,144

 

123,469

SELLING, GENERAL AND ADMINISTRATIVE EXPENSES

 

117,776

 

88,214

GAIN ON SALE OF ASSETS

 

(323)

 

(350)

Operating income

 

35,691

 

35,605

OTHER INCOME (EXPENSE):

Interest income

 

3

 

3

Interest expense

 

(2,129)

 

(1,497)

Changes in the fair value of contingent earn-out obligations

 

4,088

 

1,186

Other

 

56

 

(69)

Other income (expense)

 

2,018

 

(377)

INCOME BEFORE INCOME TAXES

 

37,709

 

35,228

PROVISION (BENEFIT) FOR INCOME TAXES

 

(49,053)

 

8,737

NET INCOME

$

86,762

$

26,491

INCOME PER SHARE:

Basic

$

2.40

$

0.73

Diluted

$

2.40

$

0.73

SHARES USED IN COMPUTING INCOME PER SHARE:

Basic

 

36,076

 

36,286

Diluted

 

36,188

 

36,499

The accompanying notes are an integral part of these consolidated financial statements.

3

COMFORT SYSTEMS USA, INC.

CONSOLIDATED STATEMENTS OF STOCKHOLDERS’ EQUITY

(In Thousands, Except Share Amounts)

(Unaudited)

Three Months Ended

March 31, 2021

Additional

Total

 

    

Common Stock

    

Treasury Stock

    

Paid-In

Retained

    

Stockholders’

 

    

Shares

    

Amount

    

Shares

    

Amount

    

Capital

    

Earnings

    

Equity

 

BALANCE AT DECEMBER 31, 2020

 

41,123,365

$

411

 

(4,935,186)

$

(129,243)

$

322,451

$

502,810

 

$

696,429

Net income

 

26,491

 

26,491

Issuance of Stock:

Issuance of shares for options exercised

 

61,454

1,616

(211)

 

1,405

Issuance of restricted stock & performance stock

 

29,544

777

1,431

 

2,208

Shares received in lieu of tax withholding payment on vested restricted stock

 

(11,424)

(854)

 

(854)

Stock-based compensation

 

2,472

 

2,472

Dividends ($0.115 per share)

 

(4,163)

 

(4,163)

Share repurchase

 

(13,250)

(885)

 

(885)

BALANCE AT MARCH 31, 2021

41,123,365

$

411

(4,868,862)

$

(128,589)

$

326,143

$

525,138

$

723,103

Three Months Ended

March 31, 2022

Additional

Total

    

Common Stock

    

Treasury Stock

    

Paid-In

Retained

    

Stockholders’

 

    

Shares

    

Amount

    

Shares

    

Amount

    

Capital

    

Earnings

    

Equity

 

BALANCE AT DECEMBER 31, 2021

 

41,123,365

$

411

(5,032,311)

$

(150,580)

$

327,061

$

628,774

$

805,666

Net income

 

86,762

 

86,762

Issuance of Stock:

Issuance of shares for options exercised

 

 

Issuance of restricted stock & performance stock

 

38,863

1,232

2,312

 

3,544

Shares received in lieu of tax withholding payment on vested restricted stock

 

(15,348)

(1,399)

 

(1,399)

Stock-based compensation

 

2,605

 

2,605

Dividends ($0.13 per share)

 

(4,673)

 

(4,673)

Share repurchase

 

(161,614)

(14,097)

 

(14,097)

BALANCE AT MARCH 31, 2022

 

41,123,365

$

411

 

(5,170,410)

$

(164,844)

$

331,978

$

710,863

$

878,408

The accompanying notes are an integral part of these consolidated financial statements.

4

COMFORT SYSTEMS USA, INC.

CONSOLIDATED STATEMENTS OF CASH FLOWS

(In Thousands)

(Unaudited)

Three Months Ended

March 31,

    

2022

    

2021

 

CASH FLOWS FROM OPERATING ACTIVITIES:

Net income

$

86,762

$

26,491

Adjustments to reconcile net income to net cash provided by operating activities—

Amortization of identifiable intangible assets

 

12,791

 

8,925

Depreciation expense

 

8,046

 

7,051

Change in right-of-use assets

4,734

4,377

Bad debt expense (benefit)

 

25

 

(1,018)

Deferred tax provision (benefit)

 

2,328

 

(410)

Amortization of debt financing costs

 

133

 

133

Gain on sale of assets

 

(323)

 

(350)

Changes in the fair value of contingent earn-out obligations

 

(4,088)

 

(1,186)

Stock-based compensation

 

3,996

 

4,711

Changes in operating assets and liabilities, net of effects of acquisitions and divestitures—

(Increase) decrease in—

Receivables, net

 

(52,701)

 

49,684

Inventories

 

(3,104)

 

(2,181)

Prepaid expenses and other current assets

 

(2,803)

 

(390)

Costs and estimated earnings in excess of billings and unbilled accounts receivable

 

2,562

 

6,840

Other noncurrent assets

 

181

 

(284)

Increase (decrease) in—

Accounts payable and accrued liabilities

 

1,899

 

(33,087)

Billings in excess of costs and estimated earnings

 

9,046

 

20,550

Other long-term liabilities

 

(5,755)

 

(5,209)

Net cash provided by operating activities

 

63,729

 

84,647

CASH FLOWS FROM INVESTING ACTIVITIES:

Purchases of property and equipment

 

(9,192)

 

(4,812)

Proceeds from sales of property and equipment

 

1,056

 

498

Cash paid for acquisitions, net of cash acquired

 

3

 

(10,716)

Payments for investments

(1,236)

Net cash used in investing activities

 

(9,369)

 

(15,030)

CASH FLOWS FROM FINANCING ACTIVITIES:

Proceeds from revolving credit facility

 

50,000

 

10,000

Payments on revolving credit facility

 

(10,000)

 

(70,000)

Payments on term loan

(7,500)

(7,500)

Payments on other debt

 

(7,797)

 

Payments on finance lease liabilities

(253)

Payments of dividends to stockholders

 

(4,673)

 

(4,163)

Share repurchase

 

(14,097)

 

(885)

Shares received in lieu of tax withholding

 

(1,399)

 

(854)

Proceeds from exercise of options

 

 

1,405

Deferred acquisition payments

(50)

(400)

Payments for contingent consideration arrangements

 

(1,752)

 

Net cash provided by (used in) financing activities

 

2,479

 

(72,397)

NET INCREASE (DECREASE) IN CASH AND CASH EQUIVALENTS

 

56,839

 

(2,780)

CASH AND CASH EQUIVALENTS, beginning of period

 

58,776

 

54,896

CASH AND CASH EQUIVALENTS, end of period

$

115,615

$

52,116

The accompanying notes are an integral part of these consolidated financial statements.

5

COMFORT SYSTEMS USA, INC.

CONDENSED NOTES TO CONSOLIDATED FINANCIAL STATEMENTS

March 31, 2022

(Unaudited)

1. Business and Organization

Comfort Systems USA, Inc., a Delaware corporation, provides comprehensive mechanical and electrical contracting services, which principally includes heating, ventilation and air conditioning (“HVAC”), plumbing, electrical, piping and controls, as well as off-site construction, monitoring and fire protection. We build, install, maintain, repair and replace mechanical, electrical and plumbing (“MEP”) systems throughout the United States. The terms “Comfort Systems,” “we,” “us,” or the “Company,” refer to Comfort Systems USA, Inc. or Comfort Systems USA, Inc. and its consolidated subsidiaries, as appropriate in the context.

2. Summary of Significant Accounting Policies and Estimates

Basis of Presentation

These interim statements should be read in conjunction with the historical Consolidated Financial Statements and related notes of Comfort Systems included in the Annual Report on Form 10-K as filed with the Securities and Exchange Commission (“SEC”) for the year ended December 31, 2021 (the “Form 10-K”).

The accompanying unaudited consolidated financial statements were prepared using generally accepted accounting principles for interim financial information and the instructions to Form 10-Q and applicable rules of Regulation S-X of the SEC. Accordingly, these financial statements do not include all the footnotes required by generally accepted accounting principles for complete financial statements and should be read in conjunction with the Form 10-K. We believe all adjustments necessary for a fair presentation of these interim statements have been included and are of a normal and recurring nature. The results of operations for interim periods are not necessarily indicative of the results for the full fiscal year.

Use of Estimates

The preparation of financial statements in conformity with generally accepted accounting principles requires the use of estimates and assumptions by management in determining the reported amounts of assets and liabilities, revenue and expenses and disclosures regarding contingent assets and liabilities. Actual results could differ from those estimates. The most significant estimates used in our financial statements affect revenue and cost recognition for construction contracts, self-insurance accruals, deferred tax assets, fair value accounting for acquisitions and the quantification of fair value for reporting units in connection with our goodwill impairment testing.

Recent Accounting Pronouncements

Recent Accounting Pronouncements Not Yet Adopted

In March 2020, the FASB issued ASU No. 2020-04, “Reference Rate Reform (Topic 848).” The pronouncement provides temporary optional expedients and exceptions to the current guidance on contract modifications and hedge accounting to ease the financial reporting burden related to the expected market transition from the London Interbank Offered Rate (“LIBOR”) and other interbank offered rates to alternative reference rates. The guidance was effective upon issuance and generally can be applied to applicable contract modifications through December 31, 2022. Our current debt facility (as further described in Note 7) includes a Eurodollar Rate Loan Option with an interest rate that is determined based on the one- to six-month LIBOR rates, which will cease to be published on June 30, 2023. We currently do not expect the impact of the transition from LIBOR to alternative reference rates to have a significant impact to our consolidated financial statements.

6

In October 2021, the FASB issued ASU 2021-08, “Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers.” This standard requires an acquirer to apply Accounting Standards Codification Topic 606 to recognize and measure contract assets and contract liabilities in a business combination. ASU 2021-08 is effective for fiscal years beginning after December 15, 2022 and interim periods within that year. Early adoption is permitted. We are currently evaluating the potential impact of this authoritative guidance on our consolidated financial statements.

Revenue Recognition

We recognize revenue over time for all of our services as we perform them because (i) control continuously transfers to that customer as work progresses, and (ii) we have the right to bill the customer as costs are incurred. The customer typically controls the work in process, as evidenced either by contractual termination clauses or by our rights to payment for work performed to date, plus a reasonable profit, for delivery of products or services that do not have an alternative use to the Company.

For the reasons listed above, revenue is recognized based on the extent of progress towards completion of the performance obligation. The selection of the method to measure progress towards completion requires judgment and is based on the nature of the products or services to be provided. We generally use a cost-to-cost input method to measure our progress towards satisfaction of the performance obligation for our contracts, as it best depicts the transfer of assets to the customer that occurs as we incur costs on our contracts. Under the cost-to-cost input method, the extent of progress towards completion is measured based on the ratio of costs incurred to date to the total estimated costs at completion of the performance obligation. Revenue, including estimated fees or profits, is recorded proportionally as costs are incurred. Costs to fulfill include labor, materials, subcontractors’ costs, other direct costs and an allocation of indirect costs.

For a small portion of our business in which our services are delivered in the form of service maintenance agreements for existing systems to be repaired and maintained, as opposed to constructed, our performance obligation is to maintain the customer’s mechanical system for a specific period of time. Similar to construction jobs, we recognize revenue over time; however, for service maintenance agreements in which the full cost to provide services may not be known, we generally use an input method to recognize revenue, which is based on the amount of time we have provided our services out of the total time we have been contracted to perform those services. Our revenue recognition policy is further discussed in Note 3 “Revenue from Contracts with Customers.”

Accounts Receivable and Allowance for Credit Losses

We are required to estimate and record the expected credit losses over the contractual life of our financial assets measured at amortized cost, including billed and unbilled accounts receivable, other receivables and contract assets. Accounts receivable include amounts from work completed in which we have billed or have an unconditional right to bill our customers. Our trade receivables are contractually due in less than a year.

We estimate our credit losses using a loss-rate method for each of our identified portfolio segments. Our portfolio segments are construction, service and other. While our construction and service financial assets are often with the same subset of customers and industries, our construction financial assets will generally have a lower loss-rate than service financial assets due to lien rights, which we are more likely to have on construction jobs. These lien rights result in lower credit loss expenses on average compared to receivables that do not have lien rights. Financial assets classified as Other include receivables that are not related to our core revenue producing activities, such as receivables related to our acquisition activity from former owners, our vendor rebate program or receivables for estimated losses in excess of our insurance deductible, which are accrued with a corresponding accrued insurance liability.

Loss rates for our portfolios are based on numerous factors, including our history of credit loss expense by portfolio, the financial strength of our customers and counterparties in each portfolio, the aging of our receivables, our expectation of likelihood of payment, macroeconomic trends in the U.S. and the current and forecasted non-residential construction market trends in the U.S.

7

In addition to the loss-rate calculations discussed above, we also record allowance for credit losses for specific receivables that are deemed to have a higher risk profile than the rest of the respective pool of receivables (e.g., when we hold concerns about a specific customer going bankrupt and no longer being able to pay the receivables due to us).

Income Taxes

We conduct business throughout the United States in virtually all fifty states. Our effective tax rate changes based upon our relative profitability, or lack thereof, in states with varying tax rates and rules. In addition, discrete items such as tax law changes, judgments and legal structures, can impact our effective tax rate. These items can also include the tax treatment for impairment of goodwill and other intangible assets, changes in fair value of acquisition-related assets and liabilities, uncertain tax positions, and accounting for losses associated with underperforming operations.

In early October 2020, we filed amended federal returns for 2016, 2017 and 2018 primarily to claim the credit for increasing research activities (the “R&D tax credit”) requesting refunds of $9.8 million, $9.5 million and $11.9 million, respectively. The $31.2 million of refunds requested was offset by unrecognized tax benefits of $28.8 million due to the uncertainty of the outcome of an Internal Revenue Service (“IRS”) examination. The R&D tax credit had no material impact on our effective tax rates for the 2020 and 2021 calendar years.

Following an IRS survey of previously filed refund claims for the 2016, 2017 and 2018 tax years, the Joint Committee on Taxation approved such refunds in late January 2022. As a result, our benefit for income taxes in the first quarter of 2022 included a $28.8 million reduction in unrecognized tax benefits plus approximately $1.6 million of net interest income on the refunds.

Our benefit for income taxes in the first quarter of 2022 was further increased by $26.8 million plus approximately $0.1 million of net interest income on the expected refunds due to our intention to claim the R&D tax credit for the 2019, 2020 and 2021 tax years. Additionally, we have included an estimate for the R&D tax credit in the computation of our annual effective tax rate for the current year and will continue to do so for the foreseeable future.

Financial Instruments

Our financial instruments consist of cash and cash equivalents, accounts receivable, other receivables, accounts payable and life insurance policies, for which we deem the carrying values approximate their fair value due to the short-term nature of these instruments, as well as notes to former owners, a revolving credit facility and a term loan. We believe the carrying value of our debt associated with our senior credit facility approximates its fair value due to the variable rate on such debt.

Investments

We have a $1.2 million investment with a fair value that is not readily determinable and is recorded at cost. This investment is included in “Other Noncurrent Assets” in our Consolidated Balance Sheet and is reviewed quarterly for impairment. We did not recognize any impairments in the current year related to this investment.

3. Revenue from Contracts with Customers

Revenue is recognized when control of the promised goods or services is transferred to our customers, in an amount that reflects the consideration to which we expect to be entitled in exchange for those goods or services. Sales-based taxes are excluded from revenue.

We provide mechanical and electrical contracting services. Our mechanical segment principally includes HVAC, plumbing, piping and controls, as well as off-site construction, monitoring and fire protection. Our electrical segment includes installation and servicing of electrical systems. We build, install, maintain, repair and replace products and systems throughout the United States. All of our revenue is recognized over time as we deliver goods and services to our customers. Revenue can be earned based on an agreed-upon fixed price or based on actual costs incurred, marked up at an agreed-upon percentage.

8

We account for a contract when: (i) it has approval and commitment from both parties, (ii) the rights of the parties are identified, (iii) payment terms are identified, (iv) the contract has commercial substance, and (v) collectability of consideration is probable. We consider the start of a project to be when the above criteria have been met and we either have written authorization from the customer to proceed or an executed contract.

We generally do not incur significant incremental costs related to obtaining or fulfilling a contract prior to the start of a project. On rare occasions, when significant pre-contract costs are incurred, they are capitalized and amortized over the life of the contract using a cost-to-cost input method to measure progress towards contract completion. We do not currently have any capitalized obtainment or fulfillment costs in our Consolidated Balance Sheet and have not incurred any impairment loss on such costs in the current year.

Due to the nature of the work required to be performed on many of our performance obligations, the estimation of total revenue and cost at completion (the process described below in more detail) is complex, subject to many variables and requires significant judgment. The consideration to which we are entitled on our long-term contracts may include both fixed and variable amounts. Variable amounts can either increase or decrease the transaction price. A common example of variable amounts that can either increase or decrease contract value are pending change orders that represent contract modifications for which a change in scope has been authorized or acknowledged by our customer, but the final adjustment to contract price is yet to be negotiated. Other examples of positive variable revenue include amounts awarded upon achievement of certain performance metrics, program milestones or cost of completion date targets and can be based upon customer discretion. Variable amounts can result in a deduction from contract revenue if we fail to meet stated performance requirements, such as complying with the construction schedule.

We include estimated amounts of variable consideration in the contract 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. Our estimates of variable consideration and determination of whether to include estimated amounts in the contract price are based largely on an assessment of our anticipated performance and all information (historical, current and forecasted) that is reasonably available to us. We reassess the amount of variable consideration each accounting period until the uncertainty associated with the variable consideration is resolved. Changes in the assessed amount of variable consideration are accounted for prospectively as a cumulative adjustment to revenue recognized in the current period.

Contracts are often modified to account for changes in contract specifications and requirements. We consider contract modifications to exist when the modification either creates new, or changes the existing, enforceable rights and obligations. Most of our contract modifications are for goods or services that are not distinct from the existing performance obligation(s). The effect of a contract modification on the transaction price, and our measure of progress for the performance obligation to which it relates, is recognized as an adjustment to revenue (either as an increase or decrease) on a cumulative catch-up basis.

We have a Company-wide policy requiring periodic review of the Estimate at Completion in which management reviews the progress and execution of our performance obligations and estimated remaining obligations. 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, identified risks and opportunities and the related changes in estimates of revenue and costs. The risks and opportunities include management's judgment about the ability and cost to achieve the schedule (e.g., the number and type of milestone events), technical requirements (e.g., a newly developed product versus a mature product) and other contract requirements. Management must make assumptions and estimates regarding labor productivity and availability, the complexity of the work to be performed, the availability of materials, the length of time to complete the performance obligation (e.g., to estimate increases in wages and prices for materials and related support cost allocations), execution by our subcontractors, the availability and timing of funding from our customer, and overhead cost rates, among other variables.

Based on this analysis, any adjustments to revenue, cost of services, and the related impact to operating income are recognized as necessary in the quarter when they become known. These adjustments may result from positive program performance if we determine we will be successful in mitigating risks surrounding the technical, schedule and cost aspects of those performance obligations or realizing related opportunities and may result in an increase in operating income during the performance of individual performance obligations. Likewise, if we determine we will not be

9

successful in mitigating these risks or realizing related opportunities, these adjustments may result in a decrease in operating income. Changes in estimates of revenue, cost of services and the related impact to operating income are recognized quarterly on a cumulative catch-up basis, meaning we recognize in the current period the cumulative effect of the changes on current and prior periods based on our progress towards complete satisfaction of a performance obligation. A significant change in one or more of these estimates could affect the profitability of one or more of our performance obligations. For projects in which estimates of total costs to be incurred on a performance obligation exceed total estimates of revenue to be earned, a provision for the entire loss on the performance obligation is recognized in the period the loss is determined.

In the first three months of 2022 and 2021, net revenue recognized from our performance obligations satisfied in previous periods was not material.

Disaggregation of Revenue

Our consolidated 2022 revenue was derived from contracts to provide service activities in the mechanical and electrical services segments we serve. Refer to Note 11 “Segment Information” for additional information on our reportable segments. We disaggregate our revenue from contracts with customers by activity, customer type and service provided, as we believe it best depicts how the nature, amount, timing and uncertainty of our revenue and cash flows are affected by economic factors. See details in the following tables (dollars in thousands):

Three Months Ended March 31,

Revenue by Service Provided

   

   

2022

   

2021

Mechanical Services

$

682,511

   

77.1

%

$

565,620

   

84.5

%

Electrical Services

202,705

22.9

%

104,141

15.5

%

Total

$

885,216

100.0

%

$

669,761

100.0

%

Three Months Ended March 31,

Revenue by Type of Customer

2022

2021

 

Industrial

$

410,184

46.3

%

$

269,583

40.3

%

Education

89,446

10.1

%

92,457

13.8

%

Office Buildings

75,115

8.5

%

78,996

11.8

%

Healthcare

134,795

15.2

%

95,091

14.2

%

Government

57,465

6.5

%

43,165

6.4

%

Retail, Restaurants and Entertainment

65,582

7.4

%

44,576

6.7

%

Multi-Family and Residential

24,442

2.8

%

24,660

3.7

%

Other

28,187

3.2

%

21,233

3.1

%

Total

$

885,216

100.0

%

$

669,761

100.0

%

Three Months Ended March 31,

Revenue by Activity Type

2022

2021

 

New Construction

$

429,418

48.5

%

$

302,061

45.1

%

Existing Building Construction

259,285

29.3

%

216,601

32.3

%

Service Projects

76,252

8.6

%

60,060

9.0

%

Service Calls, Maintenance and Monitoring

120,261

13.6

%

91,039

13.6

%

Total

$

885,216

100.0

%

$

669,761

100.0

%

Contract Assets and Liabilities

Project contracts typically provide for a schedule of billings or invoices to the customer based on our job-to-date completion percentage of specific tasks inherent in the fulfillment of our performance obligation(s). The schedules for such billings usually do not precisely match the schedule on which costs are incurred. Contract assets include unbilled amounts typically resulting from sales under long term contracts when the cost-to-cost method of revenue recognition is used, revenue recognized exceeds the amount billed to the customer and right to payment is conditional or subject to completing a milestone, such as a phase of the project. Contract assets are generally classified as current.

Contract liabilities consist of advance payments and billings in excess of revenue recognized. Our contract assets and liabilities are reported in a net position on a contract by contract basis at the end of each reporting period. We

10

classify advance payments and billings in excess of revenue recognized as current. It is very unusual for us to have advanced payments with a term of greater than one year; therefore, our contract assets and liabilities are usually all current. If we have advanced payments with a term greater than one year, the noncurrent portion of advanced payments would be included in “Other Long-term Liabilities” in our Consolidated Balance Sheets.

The following table presents the changes in contract assets and contract liabilities (in thousands):

Three Months Ended March 31,

Year Ended December 31,

2022

2021

Contract

    

Contract

Contract

    

Contract

Assets

Liabilities

Assets

Liabilities

Balance at beginning of period

$

29,900

$

307,380

$

18,622

$

226,237

Change due to acquisitions / disposals

(10)

52

10,356

36,523

Change related to credit allowance

31

(5)

Other changes in the period

(11,608)

21,135

927

44,620

Balance at end of period

$

18,313

$

328,567

$

29,900

 

$

307,380

In the first three months of 2022 and 2021, we recognized revenue of $220.6 million and $167.8 million related to our contract liabilities at January 1, 2022 and January 1, 2021, respectively.

We did not have any impairment losses recognized on our receivables or contract assets in the first three months of 2022 and 2021.

Remaining Performance Obligations

Remaining construction performance obligations represent the remaining transaction price of firm orders for which work has not been performed and exclude unexercised contract options. As of March 31, 2022, the aggregate amount of the transaction price allocated to remaining performance obligations was $2.73 billion. The Company expects to recognize revenue on approximately 80-85% of the remaining performance obligations over the next 12 months, with the remaining recognized thereafter. Our service maintenance agreements are generally one-year renewable agreements. We have adopted the practical expedient that allows us to not include service maintenance contracts with a total term of one year or less; therefore, we do not report unfulfilled performance obligations for service maintenance agreements.

4. Fair Value Measurements

Interest Rate Risk Management and Derivative Instruments

We have interest rate swap agreements in place to reduce our exposure to variable interest rates on our term loan and revolving credit facility. The notional amount covered by these interest rate swaps was $80.0 million as of March 31, 2022, and the termination date is September 30, 2022.

We use derivative instruments to manage exposure to market risk, including interest rate risk. Unsettled amounts under our interest rate swaps are recorded in the Consolidated Balance Sheet at fair value in “Other Receivables” or “Other Current Liabilities.” Gains and losses on our interest rate swaps are recorded in the Consolidated Income Statement in “Interest Expense.” For the three months ended March 31, 2022 and March 31, 2021, we recognized a net loss of $0.1 million related to our interest rate swaps. We currently do not have any derivatives that are accounted for as hedges under ASC 815.

Fair Value Measurements

We classify and disclose assets and liabilities carried at fair value in one of the following three categories:

Level 1—quoted prices in active markets for identical assets and liabilities;
Level 2—observable market-based inputs or unobservable inputs that are corroborated by market data; and
Level 3—significant unobservable inputs in which little or no market data exists, therefore requiring an entity to develop its own assumptions.

11

The following table summarizes the fair values, and levels within the fair value hierarchy in which the fair value measurements are included, for assets and liabilities measured on a recurring basis as of March 31, 2022 and December 31, 2021 (in thousands):

Fair Value Measurements at March 31, 2022

    

Level 1

    

Level 2

    

Level 3

    

Total

Cash and cash equivalents

$

115,615

$

$

$

115,615

Life insurance—cash surrender value

$

$

6,358

$

$

6,358

Contingent earn-out obligations

$

$

$

28,275

$

28,275

Fair Value Measurements at December 31, 2021

    

Level 1

    

Level 2

    

Level 3

    

Total

Cash and cash equivalents

$

58,776

$

$

$

58,776

Life insurance—cash surrender value

$

$

6,643

$

$

6,643

Contingent earn-out obligations

$

$

$

34,114

$

34,114

Cash and cash equivalents consist primarily of highly rated money market funds at a variety of well-known institutions with original maturities of three months or less. The original cost of these assets approximates fair value due to their short-term maturity. The Company’s outstanding term loan held by third-party financial institutions is carried at cost, adjusted for debt issuance costs. The Company’s term loan is not publicly traded and the carrying amount approximates fair value as the loan accrues interest at a variable rate. The carrying value of our borrowings associated with the revolving credit facility approximate its fair value due to the variable rate on such debt.

We have life insurance policies covering 109 employees with a combined face value of $74.7 million. The policies are invested in several investment vehicles, and the fair value measurement of the cash surrender balance associated with these policies is determined using Level 2 inputs within the fair value hierarchy and will vary with investment performance. The cash surrender value of these policies was $6.4 million as of March 31, 2022 and $6.6 million as of December 31, 2021. These assets are included in “Other Noncurrent Assets” in our Consolidated Balance Sheets.

We value contingent earn-out obligations using a probability weighted discounted cash flow method. This fair value measurement is based on significant unobservable inputs in the market and thus represents a Level 3 measurement within the fair value hierarchy. This analysis reflects the contractual terms of the purchase agreements (e.g., minimum and maximum payments, length of earn-out periods, manner of calculating any amounts due, etc.) and utilizes assumptions with regard to future cash flows and operating income, probabilities of achieving such future cash flows and operating income and a weighted average cost of capital. Significant changes in any of these assumptions could result in a significantly higher or lower potential liability. The contingent earn-out obligations are measured at fair value each reporting period, and changes in estimates of fair value are recognized in earnings. As of March 31, 2022, cash flows were discounted using a weighted average cost of capital ranging from 10.5% - 16.5%.

The table below presents a reconciliation of the fair value of our contingent earn-out obligations that use significant unobservable inputs (Level 3) (in thousands):

    

Three Months Ended

Year Ended

    

March 31, 2022

December 31, 2021

Balance at beginning of period

    

$

34,114

$

25,979

 

Issuances

 

 

19,949

Settlements

(1,751)

(3,994)

Adjustments to fair value

 

(4,088)

 

(7,820)

Balance at end of period

$

28,275

$

34,114

5. Acquisitions

On December 31, 2021, we acquired MEP Holding Co., Inc., and its related subsidiaries (collectively, “MEP Holdings”) for a total preliminary purchase price of $57.3 million, which included $45.2 million funded on the closing

12

date, $7.6 million in notes payable to former owners, an earn-out that will be paid if certain financial targets are met after the acquisition date and a working capital adjustment. As a result of the acquisition, MEP Holdings is a wholly owned subsidiary of the Company and reports as a separate operating location in our electrical services segment. Additionally, on December 31, 2021, we completed an acquisition of a service and controls business in Kentucky with a total preliminary purchase price of $20.6 million and a temporary staffing company based in Indiana with a total preliminary purchase price of $4.7 million, which are both reported in our mechanical services segment.

On December 1, 2021, we acquired Ivey Mechanical Company, LLC (“Ivey”) headquartered in Kosciusko, Mississippi for a total preliminary purchase price of $79.1 million, which included $64.1 million of cash paid on the closing date, $8.0 million in notes payable to former owners, a $0.4 million short term payable plus an earn-out that will be paid if certain financial targets are met after the acquisition date and a working capital adjustment. As a result of the acquisition, Ivey is a wholly owned subsidiary of the Company and reports as a separate operating location in our mechanical services segment.

On August 1, 2021, we acquired all of the issued and outstanding equity interests of Amteck Holdco LLC and each of its wholly owned subsidiaries (collectively “Amteck”). The total preliminary purchase price was $138.6 million of which $112.8 million was allocated to goodwill and identifiable intangible assets. The total preliminary purchase price included $107.4 million in cash, $8.4 million in working capital adjustment, $10.0 million in notes payable to former owners and a $12.9 million contingent earn-out obligation. Amteck provides electrical contracting solutions and services, including design and build, pre-fabrication and installation for core electric and low-voltage systems, as well as services for planned maintenance, retrofit and emergency work. Amteck is headquartered in Kentucky and primarily serves the greater Southeastern United States, including Kentucky, Tennessee and the Carolinas. As a result of the acquisition, Amteck is a wholly owned subsidiary of the Company reported in our electrical services segment.

In the first quarter of 2021, we completed an acquisition of a mechanical contractor in Utah with a total purchase price of $18.1 million, which is reported in our mechanical services segment.

The results of operations of acquisitions are included in our consolidated financial statements from their respective acquisition dates. Our Consolidated Balance Sheet includes preliminary allocations of the purchase price to the assets acquired and liabilities assumed for the applicable acquisitions pending the completion of the final valuation of intangible assets and accrued liabilities. The acquisitions completed in the current and prior year were not material, individually or in the aggregate. Additional contingent purchase price (“earn-out”) has been or will be paid if certain acquisitions achieve predetermined profitability targets. Such earn-outs, when they are not subject to the continued employment of the sellers, are estimated as of the purchase date and included as part of the consideration paid for the acquisition. If we have an earn-out under which continued employment is a condition to receipt of payment, then the earn-out is recorded as compensation expense over the period earned.

6. Goodwill and Identifiable Intangible Assets, Net

Goodwill

The changes in the carrying amount of goodwill are as follows (in thousands):

Mechanical Services

Electrical Services

    

Segment

    

Segment

Total

Balance at December 31, 2020

$

307,448

$

156,944

$

464,392

Acquisitions and purchase price adjustments (See Note 5)

 

52,771

74,951

127,722

Impact of segment reorganization

1,101

(1,101)

Balance at December 31, 2021

361,320

230,794

592,114

Acquisitions and purchase price adjustments (See Note 5)

1,833

1,833

Balance at March 31, 2022

$

363,153

$

230,794

$

593,947

During the fourth quarter of 2021, the Company performed a qualitative assessment for all of our reporting units except one for which we performed a quantitative assessment, which considered various factors, including changes in the carrying value of the reporting unit, forecasted operating results, long-term growth rates and discount rates. Additionally,

13

we considered qualitative key events and circumstances (i.e. macroeconomic environment, industry and market specific conditions, cost factors and events specific to the reporting unit, etc.). Based on this assessment, we concluded that it was more likely than not that the fair value of each of the reporting units was substantially greater than its carrying value. Accordingly, no further testing was required. For our Texas electrical operation, we performed a step 1 quantitative assessment, and the calculated fair value exceeded the carrying value by 32%. As a result of the reporting unit’s smaller excess of fair value percentage, this reporting unit is more susceptible to impairment risk from additional adverse changes in its operating environment, including micro- and macroeconomic environment conditions that could negatively impact them. Such adverse changes could include worsening economic conditions in the locations or markets they primarily serve, whether due to COVID-19 or other events and conditions. As of March 31, 2022, the Texas electrical operation had a goodwill balance of $96.8 million.

Identifiable Intangible Assets, Net

At March 31, 2022, future amortization expense of identifiable intangible assets is as follows (in thousands):

Year ending December 31—

    

    

2022 (remainder of the year)

    

$

33,715

 

2023

34,532

2024

 

32,343

2025

 

30,156

2026

 

29,312

Thereafter

 

131,932

Total

$

291,990

7. Debt Obligations

Debt obligations consist of the following (in thousands):

March 31,

December 31,

    

2022

    

2021

 

Revolving credit facility

$

260,000

$

220,000

Term loan

112,500

120,000

Notes to former owners

40,157

 

47,954

Finance lease liabilities (See Note 8)

266

Total principal amount

412,657

 

388,220

Less—unamortized debt issuance costs

(171)

(190)

Total debt, net of unamortized debt issuance costs

412,486

388,030

Less—current portion

(407)

 

(2,788)

Total long-term portion of debt, net

$

412,079

$

385,242

Revolving Credit Facility and Term Loan

We have a $600.0 million senior credit facility (the “Facility”) provided by a syndicate of banks. The Facility is composed of a revolving credit line in the amount of $450.0 million and a $150.0 million term loan, and the Facility provides for a $150.0 million accordion or increase option for the revolving portion of the Facility. As of March 31, 2022, the Facility capacity was $562.5 million, as the term loan was paid down by $37.5 million since the inception of the Facility. The amended Facility also includes a sublimit of up to $160.0 million issuable in the form of letters of credit. The Facility expires in January 2025 and is secured by a first lien on substantially all of our personal property except for assets related to projects subject to surety bonds and assets held by certain unrestricted subsidiaries and our wholly owned captive insurance company, and a second lien on our assets related to projects subject to surety bonds. As of March 31, 2022, we had $260.0 million of outstanding borrowings on the revolving credit facility, $55.6 million in letters of credit outstanding and $134.4 million of credit available.

14

There are two interest rate options for borrowings under the Facility, the Base Rate Loan Option and the Eurodollar Rate Loan Option. These rates are floating rates determined by the broad financial markets, meaning they can and do move up and down from time to time. Additional margins are then added to these two rates.

The following is a summary of the additional margins:

Consolidated Total Indebtedness to

 

Credit Facility Adjusted EBITDA

 

    

Less than 1.00

    

1.00 to 1.75

    

1.75 to 2.50

    

2.50 or greater

 

Additional Per Annum Interest Margin Added Under:

Base Rate Loan Option

0.25

%  

0.50

%  

0.75

%  

1.00

%

Eurodollar Rate Loan Option

1.25

%

1.50

%

1.75

%

2.00

%

The weighted average interest rate applicable to the borrowings under the revolving credit facility was approximately 1.9% as of March 31, 2022. The weighted average interest rate applicable to the term loan was approximately 2.0% as of March 31, 2022.

Certain of our vendors require letters of credit to ensure reimbursement for amounts they are disbursing on our behalf, such as to beneficiaries under our self-funded insurance programs. We have also occasionally used letters of credit to guarantee performance under our contracts and to ensure payment to our subcontractors and vendors under those contracts. Our lenders issue such letters of credit through the Facility. We have never had a claim made against a letter of credit that resulted in payments by a lender or by us and believe such a claim is unlikely in the foreseeable future. The letter of credit fees range from 1.25% to 2.00% per annum, based on the ratio of Consolidated Total Indebtedness to “Credit Facility Adjusted EBITDA,” which shall mean Consolidated EBITDA as such term is defined in the credit agreement.

Commitment fees are payable on the portion of the revolving loan capacity not in use for borrowings or letters of credit at any given time. These fees range from 0.20% to 0.35% per annum, based on the ratio of Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA.

The Facility contains financial covenants defining various financial measures and the levels of these measures with which we must comply. Covenant compliance is assessed as of each quarter end. We were in compliance with all of our financial covenants as of March 31, 2022.

Notes to Former Owners

As part of the consideration used to acquire nine companies, we have outstanding notes to the former owners. Together, these notes had an outstanding balance of $40.2 million as of March 31, 2022. At March 31, 2022, future principal payments of notes to former owners by maturity year are as follows (dollars in thousands):

Balance at

Range of Stated

    

March 31, 2022

Interest Rates

2022

    

$

407

 

2.5 - 3.5

%

2023

9,400

2.5

%

2024

 

10,800

2.5 - 3.0

%

2025

 

19,550

2.3 - 2.5

%

Total

$

40,157

8. Leases

We lease certain facilities, vehicles and equipment primarily under noncancelable operating leases. The most significant portion of these noncancelable operating leases are for the facilities occupied by our corporate office and our operating locations. We have finance leases on vehicles that are not material to our consolidated financial position. Leases with an initial term of 12 months or less are not recorded in the Balance Sheet. We do not separate lease

15

components from their associated non-lease components pursuant to lease accounting guidance. We have certain leases with variable payments based on an index as well as some short-term leases on equipment and facilities. Variable lease expense and short-term lease expense were not material to our financial statements and aggregated to $4.1 million and $1.9 million in the first three months of 2022 and 2021, respectively. Lease right-of-use assets and liabilities are recognized at commencement date based on the present value of lease payments over the lease term. As most of our leases do not provide an implicit rate, we generally use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments. The weighted average discount rate for our operating leases as of both March 31, 2022 and December 31, 2021 was 4.0%. We recognize operating lease expense, including escalating lease payments and lease incentives, on a straight-line basis over the lease term. Operating lease expense for the three months ended March 31, 2022 and 2021 was $10.4 million and $7.2 million, respectively.

The lease terms generally range from three to ten years. Some leases include one or more options to renew, which may be exercised to extend the lease term. We include the exercise of lease renewal options in the lease term when it is reasonably certain that we will exercise the option and such exercise is at our sole discretion. The weighted average remaining lease term for our operating leases was 8.4 years at March 31, 2022 and 8.7 years at December 31, 2021.

A majority of the Company’s real property leases are with individuals or entities with whom we have no other business relationship. However, in certain instances the Company enters into real property leases with current or former employees. Rent paid to related parties for the three months ended March 31, 2022 and 2021 was approximately $1.7 million and $1.3 million, respectively.

If we decide to cancel or terminate a lease before the end of its term, we would typically owe the lessor the remaining lease payments under the term of the lease. Our lease agreements do not contain any material residual value guarantees or material restrictive covenants. On rare occasions, we rent or sublease certain real estate assets that we no longer use to third parties.

Finance lease right-of-use assets are included in “Property and equipment, net,” and current and long-term finance lease liabilities are included within “Current maturities of long-term debt” and “Long-term debt, net,” respectively, in the Consolidated Balance Sheet. The following table summarizes the operating lease assets and liabilities included in the Consolidated Balance Sheet as follows (in thousands):

March 31, 2022

December 31, 2021

Operating lease right-of-use assets

$

124,936

$

124,756

Operating lease liabilities:

Other current liabilities

$

19,571

$

19,050

Long-term operating lease liabilities

107,033

107,701

Total operating lease liabilities

$

126,604

$

126,751

The maturities of operating lease liabilities are as follows (in thousands):

Year ending December 31—

2022 (excluding the three months ended March 31, 2022)

$

18,388

2023

22,243

2024

19,735

2025

18,638

2026

15,646

Thereafter

55,274

Total Lease Payments

149,924

Less—Present Value Discount

(23,320)

Present Value of Operating Lease Liabilities

$

126,604

16

Supplemental information related to operating leases was as follows (in thousands):

Three Months Ended March 31,

2022

2021

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

$

6,314

$

5,353

Operating lease right-of-use assets obtained in exchange for lease liabilities

$

4,914

$

6,432

9. Commitments and Contingencies

Claims and Lawsuits

We are subject to certain legal and regulatory claims, including lawsuits arising in the normal course of business. We maintain various insurance coverages to minimize financial risk associated with these claims. We have estimated and provided accruals for probable losses and related legal fees associated with certain litigation in the accompanying consolidated financial statements. While we cannot predict the outcome of these proceedings, in management’s opinion and based on reports of counsel, any liability arising from these matters individually and in the aggregate will not have a material effect on our operating results, cash flows or financial condition, after giving effect to provisions already recorded.

We are in a dispute with a customer regarding the outcome of a completed project and also regarding the obligation to perform subcontract work under two executed letters of intent for subsequent projects that we believe are not enforceable. The customer is claiming approximately $12 million in damages related to performance of the original project as well as excess costs to perform the work that was subject to the letters of intent. We are claiming approximately $9 million composed of unpaid amounts under the completed contract as well as costs and inefficiencies that we suffered. We have a lien on the project, and this matter is currently scheduled for arbitration in the second quarter of 2022 with a likely decision in the following months. As of March 31, 2022, we recorded an accrual for this matter based on our analysis of likely outcomes related to this dispute; however, it is possible that the ultimate outcome and associated costs will deviate from our estimates and that, in the event of an unexpectedly adverse outcome, we may experience additional costs and expenses in future periods.

Surety

Many customers, particularly in connection with new construction, require us to post performance and payment bonds issued by a financial institution known as a surety. If we fail to perform under the terms of a contract or to pay subcontractors and vendors who provided goods or services under a contract, the customer may demand that the surety make payments or provide services under the bond. We must reimburse the surety for any expenses or outlays it incurs. To date, we are not aware of any losses to our sureties in connection with bonds the sureties have posted on our behalf and do not expect such losses to be incurred in the foreseeable future.

Current market conditions for surety markets and bonding capacity are adequate, with acceptable terms and conditions. Historically, approximately 15% to 25% of our business has required bonds. While we currently have strong surety relationships to support our bonding needs, future market conditions or changes in the sureties’ assessment of our operating and financial risk could cause the sureties to decline to issue bonds for our work. If that were to occur, the alternatives include doing more business that does not require bonds, posting other forms of collateral for project performance, such as letters of credit or cash, and seeking bonding capacity from other sureties. We would likely also encounter concerns from customers, suppliers and other market participants as to our creditworthiness. While we believe our general operating and financial characteristics would enable us to ultimately respond effectively to an interruption in the availability of bonding capacity, such an interruption would likely cause our revenue and profits to decline in the near term.

Self-Insurance

We are substantially self-insured for workers’ compensation, employer’s liability, auto liability, general liability and employee group health claims, in view of the relatively high per-incident deductibles we absorb under our insurance arrangements for these risks. Losses are estimated and accrued based upon known facts, historical trends and industry averages. Estimated losses in excess of our deductible, which have not already been paid, are included in our accrual

17

with a corresponding receivable from our insurance carrier. Loss estimates associated with the larger and longer-developing risks, such as workers’ compensation, auto liability and general liability, are reviewed by a third-party actuary quarterly.

10. Stockholders’ Equity

Earnings Per Share

Basic earnings per share (“EPS”) is computed by dividing net income by the weighted average number of shares of common stock outstanding during the year. Diluted EPS is computed considering the dilutive effect of stock options, restricted stock, restricted stock units and performance stock units. The vesting of unvested, contingently issuable performance stock units is based on the achievement of certain earnings per share targets and total shareholder return. These shares are considered contingently issuable shares for purposes of calculating diluted earnings per share. These shares are not included in the diluted earnings per share denominator until the performance criteria are met, if it is assumed that the end of the reporting period was the end of the contingency period.

Unvested restricted stock, restricted stock units and performance stock units are included in diluted earnings per share, weighted outstanding until the shares and units vest. Upon vesting, the vested restricted stock, restricted stock units and performance stock units are included in basic earnings per share weighted outstanding from the vesting date.

There were zero and less than 0.1 million anti-dilutive stock options excluded from the calculation of diluted EPS for the three months ended March 31, 2022 and 2021, respectively.

The following table reconciles the number of shares outstanding with the number of shares used in computing basic and diluted earnings per share for each of the periods presented (in thousands):

Three Months Ended

March 31,

    

2022

    

2021

 

Common shares outstanding, end of period

35,953

 

36,255

Effect of using weighted average common shares outstanding

123

 

31

Shares used in computing earnings per share—basic

36,076

 

36,286

Effect of shares issuable under stock option plans based on the treasury stock method

43

 

131

Effect of restricted and contingently issuable shares

69

 

82

Shares used in computing earnings per share—diluted

36,188

 

36,499

Share Repurchase Program

On March 29, 2007, our Board of Directors (the “Board”) approved a stock repurchase program to acquire up to 1.0 million shares of our outstanding common stock. Subsequently, the Board has from time to time increased the number of shares that may be acquired under the program and approved extensions of the program. On December 8, 2020, the Board approved an extension to the program by increasing the shares authorized for repurchase by 0.7 million shares. Since the inception of the repurchase program, the Board has approved 10.3 million shares to be repurchased. As of March 31, 2022, we have repurchased a cumulative total of 9.8 million shares at an average price of $22.77 per share under the repurchase program.

The share repurchases will be made from time to time at our discretion in the open market or privately negotiated transactions as permitted by securities laws and other legal requirements, and subject to market conditions and other factors. The Board may modify, suspend, extend or terminate the program at any time. During the three months ended March 31, 2022, we repurchased 0.2 million shares for approximately $14.1 million at an average price of $87.23 per share.

11. Segment Information

Our activities are within the mechanical services industry and the electrical services industry, which represent our two reportable segments. We aggregate our operating segments into two reportable segments, as the operating

18

segments meet all of the aggregation criteria. The following table presents information about our reportable segments (in thousands):

Three Months Ended March 31, 2022

    

Mechanical Services

    

Electrical Services

    

Corporate

    

Consolidated

Revenue

$

682,511

$

202,705

$

$

885,216

Gross Profit

$

126,728

$

26,416

$

$

153,144

Three Months Ended March 31, 2021

    

Mechanical Services

    

Electrical Services

    

Corporate

    

Consolidated

Revenue

$

565,620

$

104,141

$

$

669,761

Gross Profit

$

108,128

$

15,341

$

$

123,469

12. Subsequent Event

On April 1, 2022, we acquired all of the issued and outstanding equity interests of Atlantic Electric, LLC and its related subsidiary (together, “Atlantic”). Atlantic is headquartered in Charleston, South Carolina, and performs electrical contracting for customers in various South Carolina markets, as well as installation of airport runway lighting in the Southeast. We expect Atlantic to initially contribute annualized revenues of approximately $50 million. The transaction was primarily funded from the Company’s revolving credit facility.

19

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

The following discussion and analysis should be read in conjunction with our historical Consolidated Financial Statements and related notes included elsewhere in this Form 10-Q and the Annual Report on Form 10-K filed with the Securities and Exchange Commission for the year ended December 31, 2021 (the “Form 10-K”). This discussion contains “forward-looking statements” regarding our business and industry within the meaning of applicable securities laws and regulations. These statements are based on our current plans and expectations and involve risks and uncertainties that could cause our actual future activities and results of operations to be materially different from those set forth in the forward-looking statements. Important factors that could cause actual results to differ include risks set forth in “Item 1A. Risk Factors” included in our Form 10-K. We undertake no obligation to revise or publicly release the results of any revision to these forward-looking statements, except as required by law. Given these risks and uncertainties, readers are cautioned not to place undue reliance on such forward-looking statements. The terms “Comfort Systems,” “we,” “us,” or the “Company,” refer to Comfort Systems USA, Inc. or Comfort Systems USA, Inc. and its consolidated subsidiaries, as appropriate in the context.

Introduction and Overview

We are a national provider of comprehensive mechanical and electrical installation, renovation, maintenance, repair and replacement services within the mechanical and electrical services industries. We operate primarily in the commercial, industrial and institutional markets and perform most of our work in industrial, healthcare, education, office, technology, retail and government facilities. We operate our business in two business segments: mechanical and electrical.

Nature and Economics of Our Business

In our mechanical business segment, customers hire us to ensure HVAC systems deliver specified or generally expected heating, cooling, conditioning and circulation of air in a facility. This entails installing core system equipment such as packaged heating and air conditioning units, or in the case of larger facilities, separate core components such as chillers, boilers, air handlers, and cooling towers. We also typically install connecting and distribution elements such as piping and ducting.

In our electrical business segment, our principal business activity is electrical construction and engineering in the commercial and industrial field. We also perform electrical logistics services, electrical service work, and electrical construction and engineering services.

In both our mechanical and electrical business segments, our responsibilities usually require conforming the systems to pre-established engineering drawings and equipment and performance specifications, which we frequently participate in establishing. Our project management responsibilities include staging equipment and materials to project sites, deploying labor to perform the work, and coordinating with other service providers on the project, including any subcontractors we might use to deliver our portion of the work.

Approximately 86.4% of our revenue is earned on a project basis for installation services in newly constructed facilities or for replacement of systems in existing facilities. When competing for project business, we usually estimate the costs we will incur on a project, and then propose a bid to the customer that includes a contract price and other performance and payment terms. Our bid price and terms are intended to cover our estimated costs on the project and provide a profit margin to us commensurate with the value of the installed system to the customer, the risk that project costs or duration will vary from estimate, the schedule on which we will be paid, the opportunities for other work that we might forego by committing capacity to this project, and other costs that we incur to support our operations but which are not specific to the project. Typically, customers will seek pricing from competitors for a given project. While the criteria on which customers select a provider vary widely and include factors such as quality, technical expertise, on-time performance, post-project support and service, and company history and financial strength, we believe that price for value is the most influential factor for most customers in choosing a mechanical or electrical installation and service provider.

20

After a customer accepts our bid, we generally enter into a contract with the customer that specifies what we will deliver on the project, what our related responsibilities are, and how much and when we will be paid. Our overall price for the project is typically set at a fixed amount in the contract, although changes in project specifications or work conditions that result in unexpected additional work are usually subject to additional payment from the customer via what are commonly known as change orders. Project contracts typically provide for periodic billings to the customer as we meet progress milestones or incur cost on the project. Project contracts in our industry also frequently allow for a small portion of progress billings or contract price to be withheld by the customer until after we have completed the work. Amounts withheld under this practice are known as retention or retainage.

Labor, materials and overhead costs account for the majority of our cost of service. Accordingly, labor management and utilization have the most impact on our project performance. Given the fixed price nature of much of our project work, if our initial estimate of project costs is wrong or we incur cost overruns that cannot be recovered in change orders, we can experience reduced profits or even significant losses on fixed price project work. We also perform some project work on a cost-plus or a time and materials basis, under which we are paid our costs incurred plus an agreed-upon profit margin, and such projects are sometimes subject to a guaranteed maximum cost. These margins are frequently less than fixed-price contract margins because there is less risk of unrecoverable cost overruns in cost-plus or time and materials work.

As of March 31, 2022, we had 8,359 projects in process. Our average project takes six to nine months to complete, with an average contract price of approximately $794,000. Our projects generally require working capital funding of equipment and labor costs. Customer payments on periodic billings generally do not recover these costs until late in the job. Our average project duration, together with typical retention terms as discussed above, generally allow us to complete the realization of revenue and earnings in cash within one year. We have what we consider to be a well-diversified distribution of revenue across end-use sectors that we believe reduces our exposure to negative developments in any given sector. Because of the integral nature of our services to most buildings, we have the legal right in almost all cases to attach liens to buildings or related funding sources when we have not been fully paid for installing systems, except with respect to some government buildings. The service work that we do, which is discussed further below, usually does not give rise to lien rights.

We also perform larger projects. Taken together, projects with contract prices of $1 million or more totaled $5.8 billion of aggregate contract value as of March 31, 2022, or approximately 87% of a total contract value for all projects in progress, totaling $6.6 billion. Generally, projects closer in size to $1 million will be completed in one year or less. It is unusual for us to work on a project that exceeds two years in length.

A stratification of projects in progress as of March 31, 2022, by contract price, is as follows:

    

    

Aggregate

 

Contract

 

No. of

Price Value

 

Contract Price of Project

Projects

(millions)

 

Under $1 million

 

7,381

$

873.9

$1 million - $5 million

 

688

 

1,573.0

$5 million - $10 million

 

147

 

999.8

$10 million - $15 million

 

54

 

666.7

Greater than $15 million

 

89

 

2,526.6

Total

 

8,359

$

6,640.0

In addition to project work, approximately 13.6% of our revenue represents maintenance and repair service on already installed HVAC, electrical, and controls systems. This kind of work usually takes from a few hours to a few days to perform. Prices to the customer are based on the equipment and materials used in the service as well as technician labor time. We usually bill the customer for service work when it is complete, typically with payment terms of up to thirty days. We also provide maintenance and repair service under ongoing contracts. Under these contracts, we are paid regular monthly or quarterly amounts and provide specified service based on customer requirements. These agreements typically are for one or more years and frequently contain thirty- to sixty-day cancellation notice periods.

21

A relatively small portion of our revenue comes from national and regional account customers. These customers typically have multiple sites and contract with us to perform maintenance and repair service. These contracts may also provide for us to perform new or replacement systems installation. We operate a national call center to dispatch technicians to sites requiring service. We perform the majority of this work with our own employees, with the balance being subcontracted to third parties that meet our performance qualifications.

Profile and Management of Our Operations

We manage our 41 operating units based on a variety of factors. Financial measures we emphasize include profitability and use of capital as indicated by cash flow and by other measures of working capital principally involving project cost, billings and receivables. We also monitor selling, general, administrative and indirect project support expense, backlog, workforce size and mix, growth in revenue and profits, variation of actual project cost from original estimate, and overall financial performance in comparison to budget and updated forecasts. Operational factors we emphasize include project selection, estimating, pricing, management and execution practices, labor utilization, safety, training, and the make-up of both existing backlog as well as new business being pursued, in terms of project size, technical application, facility type, end-use customers and industries and location of the work.

Most of our operations compete on a local or regional basis. Attracting and retaining effective operating unit managers is an important factor in our business, particularly in view of the relative uniqueness of each market and operation, the importance of relationships with customers and other market participants, such as architects and consulting engineers, and the high degree of competition and low barriers to entry in most of our markets. Accordingly, we devote considerable attention to operating unit management quality, stability, and contingency planning, including related considerations of compensation and non-competition protection where applicable.

Economic and Industry Factors

As a mechanical and electrical services provider, we operate in the broader nonresidential construction services industry and are affected by trends in this sector. While we do not have operations in all major cities of the United States, we believe our national presence is sufficiently large that we experience trends in demand for and pricing of our services that are consistent with trends in the national nonresidential construction sector. As a result, we monitor the views of major construction sector forecasters along with macroeconomic factors they believe drive the sector, including trends in gross domestic product, interest rates, business investment, employment, demographics and the fiscal condition of federal, state and local governments.

Spending decisions for building construction, renovation and system replacement are generally made on a project basis, usually with some degree of discretion as to when and if projects proceed. With larger amounts of capital, time, and discretion involved, spending decisions are affected to a significant degree by uncertainty, particularly concerns about economic and financial conditions and trends. We have experienced periods of time when economic weakness caused a significant slowdown in decisions to proceed with installation and replacement project work.

Operating Environment and Management Emphasis

During the five-year period from 2015 to 2019, there was an increase in nonresidential building construction and renovation activity levels. In 2020, the advent of a global pandemic led to some delays in service and construction, including delayed project starts and air pockets during 2020 and 2021. We believe that delays and air pockets have now substantially abated, however, we expect to continue to experience supply chain constraints and reduced labor availability during 2022.

We have a credit facility in place with terms we believe are favorable that does not expire until January 2025. As of March 31, 2022, we had $134.4 million of credit available to borrow under our credit facility. We have strong surety relationships to support our bonding needs, and we believe our relationships with the surety markets are strong and benefit from our operating history and financial position. We have generated positive free cash flow in each of the last twenty-three calendar years and will continue our emphasis in this area. We believe that the relative size and strength of our Balance Sheet and surety relationships, as compared to most companies in our industry, represent competitive advantages for us.

22

As discussed at greater length in “Results of Operations” below, we expect price competition to continue as local and regional industry participants compete for customers. We will continue to invest in our service business, to pursue the more active sectors in our markets, and to emphasize our regional and national account business.

Cyclicality and Seasonality

The construction industry is subject to business cycle fluctuation. As a result, our volume of business, particularly in new construction projects and renovation, may be adversely affected by declines in new installation and replacement projects in various geographic regions of the United States during periods of economic weakness.

The mechanical and electrical contracting industries are also subject to seasonal variations. The demand for new installation and replacement is generally lower during the winter months (the first quarter of the year) due to reduced construction activity during inclement weather and less use of air conditioning during the colder months. Demand for our services is generally higher in the second and third calendar quarters due to increased construction activity and increased use of air conditioning during the warmer months. Accordingly, we expect our revenue and operating results generally will be lower in the first calendar quarter.

Critical Accounting Policies and Estimates

Management believes that there have been no significant changes during the three months ended March 31, 2022, to the items that we disclosed as our "Critical Accounting Policies and Estimates" in Management's Discussion and Analysis of Financial Condition and Results of Operations in our Annual Report on Form 10-K for the fiscal year ended December 31, 2021. A summary of significant accounting policies and a summary of recent accounting pronouncements applicable to our Consolidated Financial Statements is included in Note 2 “Summary of Significant Accounting Policies and Estimates”.

Results of Operations (dollars in thousands):

Three Months Ended March 31,

2022

    

2021

 

Revenue

$

885,216

    

100.0

%  

$

669,761

    

100.0

%

Cost of services

 

732,072

 

82.7

%

 

546,292

 

81.6

%

Gross profit

 

153,144

 

17.3

%

 

123,469

 

18.4

%

Selling, general and administrative expenses

 

117,776

 

13.3

%

 

88,214

 

13.2

%

Gain on sale of assets

 

(323)

 

 

(350)

 

(0.1)

%

Operating income

 

35,691

 

4.0

%

 

35,605

 

5.3

%

Interest income

 

3

 

 

3

 

Interest expense

 

(2,129)

 

(0.2)

%

 

(1,497)

 

(0.2)

%

Changes in the fair value of contingent earn-out obligations

 

4,088

 

0.5

%

 

1,186

 

0.2

%

Other income (expense)

 

56

 

 

(69)

 

Income before income taxes

 

37,709

 

4.3

%

 

35,228

 

5.3

%

Provision (benefit) for income taxes

 

(49,053)

 

8,737

Net income

$

86,762

9.8

%

$

26,491

4.0

%

We had 41 operating locations as of December 31, 2021 and March 31, 2022. We did not make any changes to operating locations during the first quarter. Acquisitions are included in our results of operations from the respective acquisition date. The same-store comparison from 2022 to 2021, as described below, excludes Amteck Holdco LLC (“Amteck”), which was acquired on August 1, 2021, Ivey Mechanical Company, LLC (“Ivey”), which was acquired on December 1, 2021 and MEP Holding Co., Inc. (“MEP Holdings”), which was acquired on December 31, 2021. An operating location is included in the same-store comparison on the first day it has comparable prior year operating data, except for immaterial acquisitions that are often absorbed and integrated with existing operations.

23

Revenue—Revenue for the first quarter of 2022 increased $215.5 million, or 32.2%, to $885.2 million compared to the same period in 2021. The increase included a 15.6% increase in revenue related to same-store activity and a 16.6% increase related to the Amteck, Ivey and MEP Holdings acquisitions.

The following table presents our operating segment revenue (in thousands, except percentages):

 

Three Months Ended March 31,

 

    

2022

    

2021

    

Revenue:

    

Mechanical Services

$

682,511

    

77.1

%  

$

565,620

 

84.5

%

Electrical Services

 

202,705

 

22.9

%

 

104,141

 

15.5

%

Total

$

885,216

 

100.0

%

$

669,761

 

100.0

%

Revenue for our mechanical services segment increased $116.9 million, or 20.7%, to $682.5 million for the first quarter of 2022 compared to the same period in 2021. The increase was broad-based and included the acquisition of Ivey ($38.7 million), as well as an increase in activity in the industrial sector at one of our Texas operations ($10.0 million), our North Carolina operation ($8.6 million) and one of our Tennessee operations ($5.8 million) and an increase in activity in the healthcare sector at another one of our Texas operations ($5.0 million).

Revenue for our electrical services segment increased $98.6 million, or 94.6%, to $202.7 million for the first quarter of 2022 compared to the same period in 2021. The increase primarily resulted from the acquisitions of Amteck ($51.3 million) and MEP Holdings ($21.2 million) as well as an increase in activity in the industrial sector at our Texas electrical operation ($23.6 million).

Backlog reflects revenue still to be recognized under contracted or committed installation and replacement project work. Project work generally lasts less than one year. Service agreement revenue, service work and short duration projects, which are generally billed as performed, do not flow through backlog. Accordingly, backlog represents only a portion of our revenue for any given future period, and it represents revenue that is likely to be reflected in our operating results over the next six to twelve months. As a result, we believe the predictive value of backlog information is limited to indications of general revenue direction over the near term, and should not be interpreted as indicative of ongoing revenue performance over several quarters.

The following table presents our operating segment backlog (in thousands, except percentages):

 

March 31,

December 31,

 

March 31,

 

    

2022

    

2021

    

2021

    

Backlog:

    

    

Mechanical Services

$

2,055,866

    

75.2

%  

$

1,753,340

 

75.8

%

$

1,377,335

 

83.0

%

Electrical Services

 

677,110

 

24.8

%

 

558,544

 

24.2

%

 

282,537

 

17.0

%

Total

$

2,732,976

 

100.0

%

$

2,311,884

 

100.0

%

$

1,659,872

 

100.0

%

Backlog as of March 31, 2022 was $2.73 billion, an 18.2% increase from December 31, 2021 backlog of $2.31 billion, and a 64.6% increase from March 31, 2021 backlog of $1.66 billion. The sequential backlog growth was broad-based and was primarily due to increased project bookings at our Texas electrical operation ($107.1 million), one of our Florida operations ($81.8 million), our North Carolina operation ($62.0 million), one of our Virginia operations ($47.6 million) and one of our Tennessee operations ($30.3 million). The year-over-year backlog increase included the acquisitions of Ivey ($128.1 million), Amteck ($59.4 million) and MEP Holdings ($41.4 million), as well as a same-store increase of $844.2 million, or 50.9%. Same-store year-over-year backlog was broad-based and increased primarily due to increased project bookings at our Texas electrical operation ($222.8 million), our North Carolina operation ($185.3 million), one of our Virginia operations ($75.4 million), our Wisconsin operation ($60.9 million), one of our Florida operations ($54.8 million) and our Colorado operation ($52.1 million).

Gross Profit—Gross profit increased $29.7 million, or 24.0%, to $153.1 million for the first quarter of 2022 as compared to the same period in 2021. The increase included a 12.5% increase related to the Amteck, Ivey and MEP Holdings acquisitions, as well as an 11.5% increase in same-store activity. The same-store increase in gross profit was

24

primarily due to improvements in project execution at our North Carolina operation ($3.7 million), one of our Florida operations ($2.3 million) and our Tennessee electrical operation ($2.2 million). Additionally, we had increased volumes at one of our Texas operations ($2.3 million). As a percentage of revenue, gross profit for the first quarter decreased from 18.4% in 2021 to 17.3% in 2022 primarily due to product mix differences including a higher percentage of electrical segment revenue and new construction revenue in the current year, as well as lower margins at our Texas electrical operation, one of our Tennessee operations and one of our Virginia operations as compared to the same period in the prior year.

Selling, General and Administrative Expenses (“SG&A”)—SG&A increased $29.6 million, or 33.5%, to $117.8 million for the first quarter of 2022 as compared to 2021. On a same-store basis, excluding amortization expense, SG&A increased $13.2 million, or 16.3%. The same-store increase is primarily due to higher same-store revenue, an increase in consulting fees and other expenses of $4.5 million related to the credit for increasing research activities (the “R&D tax credit”) related to prior tax years, increased compensation costs of $4.2 million and a $1.3 million increase in travel related expenses. Amortization expense increased $1.7 million during the period, primarily as a result of the Amteck, Ivey and MEP Holdings acquisitions. As a percentage of revenue, SG&A for the first quarter increased from 13.2% in 2021 to 13.3% in 2022.

We have included same-store SG&A, excluding amortization, because we believe it is an effective measure of comparative results of operations. However, same-store SG&A, excluding amortization, is not considered under generally accepted accounting principles to be a primary measure of an entity’s financial results, and accordingly, should not be considered an alternative to SG&A as shown in our consolidated statements of operations.

 

Three Months Ended

 

March 31,

    

2022

    

2021

 

 

(in thousands)

SG&A

$

117,776

$

88,214

Less: SG&A from companies acquired

 

(14,654)

 

Less: Amortization expense

 

(8,838)

 

(7,177)

Same-store SG&A, excluding amortization expense

$

94,284

$

81,037

Interest Expense—Interest expense increased $0.6 million, or 42.2%, to $2.1 million for the first quarter of 2022 as compared to the same period in 2021. The increase in interest expense is due to an increase in our average interest rate on our outstanding borrowings in 2022 compared to the prior year as well as a higher average outstanding debt balance as compared to the prior year.

Changes in the Fair Value of Contingent Earn-out Obligations—The contingent earn-out obligations are measured at fair value each reporting period, and changes in estimates of fair value are recognized in earnings. Income from changes in the fair value of contingent earn-out obligations for the first quarter of 2022 increased $2.9 million as compared to the same period in 2021. This change in value was primarily the result of an increase in the discount rate in the first quarter of 2022 driven by higher interest rates that impacted all the earn-out liabilities as well as our lowering the obligation related to Amteck due to a downward adjustment of their forecasts.

Provision (Benefit) for Income Taxes—Our benefit for income taxes for the three months ended March 31, 2022 was $49.1 million with a negative effective tax rate of 130.1% as compared to a provision for income taxes of $8.7 million with an effective tax rate of 24.8% for the same period in 2021. The effective tax rate for 2022 was significantly lower than the 21% federal statutory rate primarily due to a reduction in unrecognized tax benefits from settlement with the Internal Revenue Service for the 2016, 2017 and 2018 tax years (80.5%), our intention to claim the R&D tax credit for the 2019, 2020 and 2021 tax years (71.3%) and inclusion of the R&D tax credit for the current year 2022 (4.5%). These benefits were partially offset by net state income taxes (4.3%) and nondeductible expenses, including nondeductible expenses related to TAS (1.3%). The effective tax rate for 2021 was higher than the 21% federal statutory rate primarily due to net state income taxes (4.2%) and nondeductible expenses, including nondeductible expenses related to TAS (1.2%), partially offset by deductions for stock-based compensation (1.8%).

25

Outlook

We are experiencing strong demand in 2022 and we believe that we have largely recovered from negative impacts to industry demand in our business due to the business disruption caused by COVID-19. We continue to see instances of delayed starts, and we continue to experience increased labor costs. We also are experiencing supply constraints and cost increases, reduced availability, and delays in delivery of various materials and equipment. We are recognizing these challenges in our job planning and pricing, and we are working to order materials earlier than usual and seeking to collaborate with customers to share supply risks and to mitigate the effects of these challenges.

We have a good pipeline of opportunities and potential backlog, and we have been generally successful in maintaining activity levels and productivity and in procuring needed materials despite ongoing challenges. Considering all these factors, we currently anticipate solid earnings and cash flow in 2022. We continue to prepare for a wide range of challenges and economic circumstances; however, despite challenges, we currently expect supportive conditions for our industry are likely to continue in 2022.

Liquidity and Capital Resources (in thousands):

Three Months Ended

March 31,

    

2022

    

2021

 

Cash provided by (used in):

Operating activities

$

63,729

$

84,647

Investing activities

 

(9,369)

 

(15,030)

Financing activities

 

2,479

 

(72,397)

Net increase (decrease) in cash and cash equivalents

$

56,839

$

(2,780)

Free cash flow:

Cash provided by operating activities

$

63,729

$

84,647

Purchases of property and equipment

 

(9,192)

 

(4,812)

Proceeds from sales of property and equipment

 

1,056

 

498

Free cash flow

$

55,593

$

80,333

Cash Flow

Our business does not require significant amounts of investment in long-term fixed assets. The substantial majority of the capital used in our business is working capital that funds our costs of labor and installed equipment deployed in project work until our customer pays us. Customary terms in our industry allow customers to withhold a small portion of the contract price until after we have completed the work, typically for six months. Amounts withheld under this practice are known as retention or retainage. Our average project duration, together with typical retention terms, generally allow us to complete the realization of revenue and earnings in cash within one year.

Cash Provided by Operating Activities—Cash flow from operations is primarily influenced by demand for our services and operating margins but can also be influenced by working capital needs associated with the various types of services that we provide. In particular, working capital needs may increase when we commence large volumes of work under circumstances where project costs, primarily associated with labor, equipment and subcontractors, are required to be paid before the receivables resulting from the work performed are billed and collected. Working capital needs are generally higher during the late winter and spring months as we prepare and plan for the increased project demand when favorable weather conditions exist in the summer and fall months. Conversely, working capital assets are typically converted to cash during the late summer and fall months as project completion is underway. These seasonal trends are sometimes offset by changes in the timing of major projects, which can be impacted by the weather, project delays or accelerations and other economic factors that may affect customer spending.

Cash provided by operating activities was $63.7 million during the first three months of 2022 compared with $84.6 million during the same period in 2021. This decrease was primarily driven by a $102.4 million change in receivables, net, including an increase in billed accounts receivable of $74.2 million attributable to strong collections in

26

the prior year and higher billings in the current year due to the increase in revenue. This decrease was partially offset by $33.3 million of tax refunds received in the first quarter of 2022 and higher earnings in the current year.

Cash Used in Investing Activities—During the first three months of 2022, cash used in investing activities was $9.4 million compared to $15.0 million during the same period in 2021. The $5.6 million decrease in cash used primarily relates to a reduction in cash paid (net of cash acquired) for acquisitions in 2022 compared to the same period in 2021, partially offset by an increase in purchases of property and equipment.

Cash Provided by (Used in) Financing Activities—Cash provided by financing activities was $2.5 million for the first three months of 2022 compared to cash used in financing activities of $72.4 million during the same period in 2021. The $74.9 million decrease in cash used in financing activities is primarily due to an increase in net proceeds from debt, including borrowings used to fund the Atlantic acquisition that closed in April 2022. This decrease was partially offset by an increase in share repurchases in 2022.

Free Cash Flow—We define free cash flow as cash provided by operating activities, less customary capital expenditures, plus the proceeds from asset sales. We believe free cash flow, by encompassing both profit margins and the use of working capital over our approximately one year working capital cycle, is an effective measure of operating effectiveness and efficiency. We have included free cash flow information here for this reason, and because we are often asked about it by third parties evaluating us. However, free cash flow is not considered under generally accepted accounting principles to be a primary measure of an entity’s financial results, and accordingly free cash flow should not be considered an alternative to operating income, net income, or amounts shown in our consolidated statements of cash flows as determined under generally accepted accounting principles. Free cash flow may be defined differently by other companies.

Share Repurchase Program

On March 29, 2007, our Board of Directors (the “Board”) approved a stock repurchase program to acquire up to 1.0 million shares of our outstanding common stock. Subsequently, the Board has from time to time increased the number of shares that may be acquired under the program and approved extensions of the program. On December 8, 2020, the Board approved an extension to the program by increasing the shares authorized for repurchase by 0.7 million shares. Since the inception of the repurchase program, the Board has approved 10.3 million shares to be repurchased. As of March 31, 2022, we have repurchased a cumulative total of 9.8 million shares at an average price of $22.77 per share under the repurchase program.

The share repurchases will be made from time to time at our discretion in the open market or privately negotiated transactions as permitted by securities laws and other legal requirements, and subject to market conditions and other factors. The Board may modify, suspend, extend or terminate the program at any time. During the three months ended March 31, 2022, we repurchased 0.2 million shares for approximately $14.1 million at an average price of $87.23 per share.

Debt

Revolving Credit Facility and Term Loan

We have a $600.0 million senior credit facility (the “Facility”) provided by a syndicate of banks. The Facility is composed of a revolving credit line in the amount of $450.0 million and a $150.0 million term loan, and the Facility provides for a $150.0 million accordion or increase option for the revolving portion of the Facility. As of March 31, 2022, the Facility capacity was $562.5 million, as the term loan was paid down by $37.5 million since the inception of the Facility. The Facility also includes a sublimit of up to $160.0 million issuable in the form of letters of credit. The Facility expires in January 2025 and is secured by a first lien on substantially all of our personal property except for assets related to projects subject to surety bonds and assets held by certain unrestricted subsidiaries and our wholly owned captive insurance company and a second lien on our assets related to projects subject to surety bonds. As of March 31, 2022, we had $260.0 million of outstanding borrowings on the revolving credit facility, $55.6 million in letters of credit outstanding and $134.4 million of credit available.

27

There are two interest rate options for borrowings under the Facility, the Base Rate Loan option and the Eurodollar Rate Loan option. These rates are floating rates determined by the broad financial markets, meaning they can and do move up and down from time to time. Additional margins are then added to these two rates.

Certain of our vendors require letters of credit to ensure reimbursement for amounts they are disbursing on our behalf, such as to beneficiaries under our self-funded insurance programs. We have also occasionally used letters of credit to guarantee performance under our contracts and to ensure payment to our subcontractors and vendors under those contracts. Our lenders issue such letters of credit through the Facility for a fee. We have never had a claim made against a letter of credit that resulted in payments by a lender or by us and believe such claims are unlikely in the foreseeable future. The letter of credit fees range from 1.25% to 2.00% per annum, based on the ratio of Consolidated Total Indebtedness to “Credit Facility Adjusted EBITDA,” which shall mean Consolidated EBITDA as such term is defined in the credit agreement.

Commitment fees are payable on the portion of the revolving loan capacity not in use for borrowings or letters of credit at any given time. These fees range from 0.20% to 0.35% per annum, based on the ratio of Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA.

The Facility contains financial covenants defining various financial measures and the levels of these measures with which we must comply. Covenant compliance is assessed as of each quarter end. We were in compliance with all of our financial covenants as of March 31, 2022.

Notes to Former Owners

As part of the consideration used to acquire nine companies, we have outstanding notes to the former owners. Together, these notes had an outstanding balance of $40.2 million as of March 31, 2022. At March 31, 2022, future principal payments of notes to former owners by maturity year are as follows (dollars in thousands):

Balance at

Range of Stated

    

March 31, 2022

Interest Rates

2022

    

$

407

 

2.5 - 3.5

%

2023

9,400

2.5

%

2024

 

10,800

2.5 - 3.0

%

2025

 

19,550

2.3 - 2.5

%

Total

$

40,157

Outlook

We have generated positive net free cash flow for the last twenty-three calendar years, much of which occurred during challenging economic and industry conditions. We also continue to have significant borrowing capacity under our credit facility, and we maintain what we feel are reasonable cash balances. We believe these factors will provide us with sufficient liquidity to fund our operations for the foreseeable future.

Material Cash Requirements and Other Commitments

Certain of our vendors require letters of credit to ensure reimbursement for amounts they are disbursing on our behalf, such as to beneficiaries under our self-funded insurance programs. We have also occasionally used letters of credit to guarantee performance under our contracts and to ensure payment to our subcontractors and vendors under those contracts. The letters of credit we provide are actually issued by our lenders through the Facility as described above. A letter of credit commits the lenders to pay specified amounts to the holder of the letter of credit if the holder demonstrates that we have failed to perform specified actions. If this were to occur, we would be required to reimburse the lenders. Depending on the circumstances of such a reimbursement, we may also have to record a charge to earnings for the reimbursement. Absent a claim, there is no payment or reserving of funds by us in connection with a letter of credit. However, because a claim on a letter of credit would require immediate reimbursement by us to our lenders, letters of credit are treated as a use of the Facility’s capacity just the same as actual borrowings. Claims against letters of credit are rare in our industry. To date, we have not had a claim made against a letter of credit that resulted in payments

28

by a lender or by us. We believe that it is unlikely that we will have to fund claims under a letter of credit in the foreseeable future.

As of March 31, 2022, we have $55.6 million in letter of credit commitments, of which $28.2 million will expire in 2022 and $27.4 million will expire in 2023. The substantial majority of these letters of credit are posted with insurers who disburse funds on our behalf in connection with our workers’ compensation, auto liability and general liability insurance program. These letters of credit provide additional security to the insurers that sufficient financial resources will be available to fund claims on our behalf, many of which develop over long periods of time, should we ever encounter financial duress. Posting of letters of credit for this purpose is a common practice for entities that manage their self-insurance programs through third-party insurers as we do. While some of these letter of credit commitments expire in the next twelve months, we expect nearly all of them, particularly those supporting our insurance programs, will be renewed annually.

Many customers, particularly in connection with new construction, require us to post performance and payment bonds issued by a financial institution known as a surety. If we fail to perform under the terms of a contract or to pay subcontractors and vendors who provided goods or services under a contract, the customer may demand that the surety make payments or provide services under the bond. We must reimburse the sureties for any expenses or outlays they incur. To date, we are not aware of any losses to our sureties in connection with bonds the sureties have posted on our behalf, and we do not expect such losses to be incurred in the foreseeable future.

Under standard terms in the surety market, sureties issue bonds on a project-by-project basis, and can decline to issue bonds at any time. Historically, approximately 15% to 25% of our business has required bonds. While we currently have strong surety relationships to support our bonding needs, future market conditions or changes in our sureties’ assessment of our operating and financial risk could cause our sureties to decline to issue bonds for our work. If that were to occur, our alternatives include doing more business that does not require bonds, posting other forms of collateral for project performance, such as letters of credit or cash, and seeking bonding capacity from other sureties. We would likely also encounter concerns from customers, suppliers and other market participants as to our creditworthiness. While we believe our general operating and financial characteristics would enable us to ultimately respond effectively to an interruption in the availability of bonding capacity, such an interruption would likely cause our revenue and profits to decline in the near term.

Item 3. Quantitative and Qualitative Disclosures about Market Risk

We are exposed to market risk primarily related to potential adverse changes in interest rates, as discussed below. We are actively involved in monitoring exposure to market risk and continue to develop and utilize appropriate risk management techniques. We are not exposed to any other significant financial market risks, including commodity price risk, or foreign currency exchange risk from the use of derivative financial instruments. At times, we use derivative financial instruments to manage our interest rate risk.

We have exposure to changes in interest rates under our senior credit facility. Our debt with fixed interest rates consists of notes to former owners of acquired companies.

The weighted average interest rate applicable to the borrowings under the revolving credit facility was approximately 1.9% as of March 31, 2022. The weighted average interest rate applicable to the term loan was approximately 2.0% as of March 31, 2022.

We measure certain assets at fair value on a nonrecurring basis. These assets are recognized at fair value when they are deemed to be other-than-temporarily impaired. We did not recognize any impairments in the current year on those assets required to be measured at fair value on a nonrecurring basis.

The valuation of the Company’s contingent earn-out payments is determined using a probability weighted discounted cash flow method. This analysis reflects the contractual terms of the purchase agreements (e.g., minimum and maximum payment, length of earn-out periods, manner of calculating any amounts due, etc.) and utilizes assumptions with regard to future cash flows, probabilities of achieving such future cash flows and a discount rate.

29

Item 4. Controls and Procedures

Evaluation of Disclosure Controls and Procedures

Our executive management is responsible for ensuring the effectiveness of the design and operation of our disclosure controls and procedures. We carried out an evaluation under the supervision and with the participation of our management, including our Chief Executive Officer and Chief Financial Officer, of the effectiveness of the design and operation of our disclosure controls and procedures (as defined in Rules 13a-15(e) and 15d-15(e) under the Securities Exchange Act of 1934) as of the end of the period covered by this report. Based on that evaluation, our Chief Executive Officer and Chief Financial Officer have concluded that our disclosure controls and procedures (as defined in Rules 13a-15(e) and 15d-15(e) of the Securities Exchange Act of 1934) are effective as of the end of the period covered by this report.

Changes in Internal Control over Financial Reporting

There have not been any changes in our internal control over financial reporting (as such term is defined in Rules 13a-15(f) and 15d-15(f) under the Securities Exchange Act of 1934) during the three months ended March 31, 2022 that have materially affected, or are reasonably likely to materially affect, our internal control over financial reporting.

30

PART II—OTHER INFORMATION

Item 1. Legal Proceedings

We are subject to certain legal and regulatory claims, including lawsuits arising in the normal course of business. We maintain various insurance coverages to minimize financial risk associated with these claims. We have estimated and provided accruals for probable losses and related legal fees associated with certain litigation in our consolidated financial statements. While we cannot predict the outcome of these proceedings, in management’s opinion and based on reports of counsel, any liability arising from these matters individually and in the aggregate will not have a material effect on our operating results, cash flows or financial condition, after giving effect to provisions already recorded.

We are in a dispute with a customer regarding the outcome of a completed project and also regarding the obligation to perform subcontract work under two executed letters of intent for subsequent projects that we believe are not enforceable. The customer is claiming approximately $12 million in damages related to performance of the original project as well as excess costs to perform the work that was subject to the letters of intent. We are claiming approximately $9 million composed of unpaid amounts under the completed contract as well as costs and inefficiencies that we suffered. We have a lien on the project, and this matter is currently scheduled for arbitration in the second quarter of 2022 with a likely decision in the following months. As of March 31, 2022, we recorded an accrual for this matter based on our analysis of likely outcomes related to this dispute; however, it is possible that the ultimate outcome and associated costs will deviate from our estimates and that, in the event of an unexpectedly adverse outcome, we may experience additional costs and expenses in future periods.

Item 1A. Risk Factors

In addition to the other information set forth in this report, you should carefully consider the factors discussed in Part 1, “Item 1A. Risk Factors” in our Annual Report on Form 10-K for the year ended December 31, 2021, which could materially affect our business, financial condition, or future results. Additional risks and uncertainties not currently known to us or that we currently deem to be immaterial also may materially adversely affect our business, financial condition, or future results.

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

Recent Sales of Unregistered Securities

None.

Issuer Purchases of Equity Securities

On March 29, 2007, our Board of Directors (the “Board”) approved a stock repurchase program to acquire up to 1.0 million shares of our outstanding common stock. Subsequently, the Board has from time to time increased the number of shares that may be acquired under the program and approved extensions of the program. On December 8, 2020, the Board approved an extension to the program by increasing the shares authorized for repurchase by 0.7 million shares. Since the inception of the repurchase program, the Board has approved 10.3 million shares to be repurchased. As of March 31, 2022, we have repurchased a cumulative total of 9.8 million shares at an average price of $22.77 per share under the repurchase program.

The share repurchases will be made from time to time at our discretion in the open market or privately negotiated transactions, as permitted by securities laws and other legal requirements, and subject to market conditions and other factors. The Board may modify, suspend, extend or terminate the program at any time. During the three months ended March 31, 2022, we repurchased 0.2 million shares for approximately $14.1 million at an average price of $87.23 per share.

31

During the quarter ended March 31, 2022, we purchased our common shares in the following amounts at the following average prices:

    

    

    

Total Number of Shares

    

Maximum Number of

 

Purchased as Part of

Shares that May Yet Be

 

Total Number of

Average Price

Publicly Announced Plans

Purchased Under the Plans

 

Period

Shares Purchased

Paid Per Share

or Programs (1)

or Programs

 

January 1 - January 31

 

52,203

$

89.68

 

9,727,000

 

566,751

February 1 - February 28

 

82,012

$

86.07

 

9,809,012

 

484,739

March 1 - March 31

 

27,399

$

86.05

 

9,836,411

 

457,340

 

161,614

$

87.23

 

9,836,411

 

457,340

________________________________________

(1)Purchased as part of a program announced on March 29, 2007 under which, since the inception of this program, 10.3 million shares have been approved for repurchase.

Under our 2012 Equity Incentive Plan and 2017 Omnibus Incentive Plan, employees may elect to have us withhold common shares to satisfy statutory federal, state and local tax withholding obligations arising on the vesting of restricted stock awards and exercise of options. When we withhold these shares, we are required to remit to the appropriate taxing authorities the market price of the shares withheld, which could be deemed a purchase of the common shares by us on the date of withholding.

32

Item 6. Exhibits

Incorporated by Reference
to the Exhibit Indicated Below
and to the Filing with the
Commission Indicated Below

Exhibit
Number

    

Description of Exhibits

    

Exhibit
Number

    

Filing or
File Number

3.1

Second Amended and Restated Certificate of Incorporation of the Registrant

3.1

333-24021

3.2

Certificate of Amendment dated May 21, 1998

3.2

1998 Form 10-K

3.3

Certificate of Amendment dated July 9, 2003

3.3

2003 Form 10-K

3.4

Certificate of Amendment dated May 20, 2016

3.1

May 20, 2016

Form 8-K

3.5

Amended and Restated Bylaws of Comfort Systems USA, Inc.

3.1

March 25, 2016

Form 8-K

10.1

Resignation and General Release Agreement between Comfort Systems USA, Inc. and Terrence Young, dated as of January 18, 2022.

10.1

January 19, 2022

Form 8-K

31.1*

Certification of Chief Executive Officer pursuant to Section 302 of the Sarbanes-Oxley Act of 2002

31.2*

Certification of Chief Financial Officer pursuant to Section 302 of the Sarbanes-Oxley Act of 2002

32.1**

Certification of Chief Executive Officer pursuant to Section 906 of the Sarbanes-Oxley Act of 2002

32.2**

Certification of Chief Financial Officer pursuant to Section 906 of the Sarbanes-Oxley Act of 2002

101.INS*

Inline XBRL Instance 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

104

Cover Page Interactive Data File (the cover page XBRL tags are embedded in the Inline XBRL document)

* Filed herewith.

** Furnished herewith.

33

SIGNATURES

Pursuant to the requirements of the Securities Exchange Act of 1934, the Registrant has duly caused this report to be signed on its behalf by the undersigned thereunto duly authorized.

Comfort Systems USA, Inc.

April 27, 2022

By:

/s/ Brian E. Lane

Brian E. Lane

President, Chief Executive Officer and Director

April 27, 2022

By:

/s/ William George

William George

Executive Vice President and Chief Financial Officer

April 27, 2022

By:

/s/ Julie S. Shaeff

Julie S. Shaeff

Senior Vice President and Chief Accounting Officer

34

EX-31.1 2 fix-20220331xex31d1.htm EX-31.1

Exhibit 31.1

CERTIFICATION OF CHIEF EXECUTIVE OFFICER

Pursuant to Section 302 of the Sarbanes Oxley Act of 2002

I, Brian E. Lane, certify that:

1.           I have reviewed this quarterly report on Form 10-Q of Comfort Systems USA, 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: April 27, 2022

/s/ Brian E. Lane

Brian E. Lane
President and Chief Executive Officer


EX-31.2 3 fix-20220331xex31d2.htm EX-31.2

Exhibit 31.2

CERTIFICATION OF CHIEF FINANCIAL OFFICER

Pursuant to Section 302 of the Sarbanes-Oxley Act of 2002

I, William George, certify that:

1.           I have reviewed this quarterly report on Form 10-Q of Comfort Systems USA, 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.

/s/ William George

Date: April 27, 2022

William George
Executive Vice President and Chief Financial Officer


EX-32.1 4 fix-20220331xex32d1.htm EX-32.1

Exhibit 32.1

CERTIFICATION PURSUANT TO

18 U.S.C. SECTION 1350

AS ADOPTED PURSUANT TO

SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002*

In connection with the Quarterly Report of Comfort Systems USA, Inc. (the “Company”) on Form 10-Q for the quarter ended March 31, 2022, as filed with the Securities and Exchange Commission on the date hereof (the “Report”), I, Brian E. Lane, President and Chief Executive Officer of the Company, certify, pursuant to 18 U.S.C. §1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that:

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

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

Date: April 27, 2022

/s/ Brian E. Lane

Brian E. Lane
President and Chief Executive Officer


*            A signed original of this written statement required by Section 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-32.2 5 fix-20220331xex32d2.htm EX-32.2

Exhibit 32.2

CERTIFICATION PURSUANT TO

18 U.S.C. SECTION 1350

AS ADOPTED PURSUANT TO

SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002*

In connection with the Quarterly Report of Comfort Systems USA, Inc. (the “Company”) on Form 10-Q for the quarter ended March 31, 2022, as filed with the Securities and Exchange Commission on the date hereof (the “Report”), I, William George, Executive Vice President and Chief Financial Officer of the Company, certify, pursuant to 18 U.S.C. §1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that:

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

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

Date: April 27, 2022

/s/ William George

William George
Executive Vice President and Chief Financial Officer


*            A signed original of this written statement required by Section 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 6 fix-20220331.xsd EX-101.SCH 99900 - Disclosure - Standard And Custom Axis Domain Defaults link:presentationLink link:calculationLink link:definitionLink 00100 - Statement - CONSOLIDATED BALANCE SHEETS link:presentationLink link:calculationLink link:definitionLink 00200 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS link:presentationLink link:calculationLink link:definitionLink 00400 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS link:presentationLink link:calculationLink link:definitionLink 40207 - Disclosure - Summary of Significant Accounting Policies - Leases (Details) Calc2 link:presentationLink link:calculationLink link:definitionLink 40501 - Disclosure - Acquisitions (Details) link:presentationLink link:calculationLink link:definitionLink 40602 - Disclosure - Goodwill and Identifiable Intangible Assets, Net - Identifiable Intangible Assets, Net (Details) link:presentationLink link:calculationLink link:definitionLink 40802 - Disclosure - Leases - Summary of Operating Lease Assets and Liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 40803 - Disclosure - Leases - Maturities of Lease Liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 41002 - Disclosure - Stockholders' Equity - Number of Shares (Details) link:presentationLink link:calculationLink link:definitionLink 00090 - Document - Document and Entity Information link:presentationLink link:calculationLink link:definitionLink 00105 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical) link:presentationLink link:calculationLink link:definitionLink 00300 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY link:presentationLink link:calculationLink link:definitionLink 10101 - Disclosure - Business and Organization link:presentationLink link:calculationLink link:definitionLink 10201 - Disclosure - Summary of Significant Accounting Policies and Estimates link:presentationLink link:calculationLink link:definitionLink 10301 - Disclosure - Revenue from Contracts with Customers link:presentationLink link:calculationLink link:definitionLink 10401 - Disclosure - Fair Value Measurements link:presentationLink link:calculationLink link:definitionLink 10501 - Disclosure - Acquisitions link:presentationLink link:calculationLink link:definitionLink 10601 - Disclosure - Goodwill and Identifiable Intangible Assets, Net link:presentationLink link:calculationLink link:definitionLink 10701 - Disclosure - Debt Obligations link:presentationLink link:calculationLink link:definitionLink 10801 - Disclosure - Leases link:presentationLink link:calculationLink link:definitionLink 10901 - Disclosure - Commitments and Contingencies link:presentationLink link:calculationLink link:definitionLink 11001 - Disclosure - Stockholders' Equity link:presentationLink link:calculationLink link:definitionLink 11201 - Disclosure - Subsequent Event link:presentationLink link:calculationLink link:definitionLink 20202 - Disclosure - Summary of Significant Accounting Policies and Estimates (Policies) link:presentationLink link:calculationLink link:definitionLink 30303 - Disclosure - Revenue from Contracts with Customers (Tables) link:presentationLink link:calculationLink link:definitionLink 30403 - Disclosure - Fair Value Measurements (Tables) link:presentationLink link:calculationLink link:definitionLink 30603 - Disclosure - Goodwill and Identifiable Intangible Assets, Net (Tables) link:presentationLink link:calculationLink link:definitionLink 30703 - Disclosure - Debt Obligations (Tables) link:presentationLink link:calculationLink link:definitionLink 30803 - Disclosure - Leases (Tables) link:presentationLink link:calculationLink link:definitionLink 31003 - Disclosure - Stockholders' Equity (Tables) link:presentationLink link:calculationLink link:definitionLink 40201 - Disclosure - Summary of Significant Accounting Policies and Estimates - Income Taxes (Details) link:presentationLink link:calculationLink link:definitionLink 40301 - Disclosure - Revenue from Contracts with Customers - Disaggregation of Revenue (Details) link:presentationLink link:calculationLink link:definitionLink 40302 - Disclosure - Revenue from Contracts with Customers - Contract Assets and Liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 40303 - Disclosure - Revenue from Contracts with Customers - Remaining Performance Obligations (Details) link:presentationLink link:calculationLink link:definitionLink 40303 - Disclosure - Revenue from Contracts with Customers - Remaining Performance Obligations Default (Details) link:presentationLink link:calculationLink link:definitionLink 40401 - Disclosure - Fair Value Measurements (Details) link:presentationLink link:calculationLink link:definitionLink 40504 - Disclosure - Acquisitions - Other Acquisitions (Details) link:presentationLink link:calculationLink link:definitionLink 40601 - Disclosure - Goodwill and Identifiable Intangible Assets, Net - Changes in Carrying Amount of Goodwill (Details) link:presentationLink link:calculationLink link:definitionLink 40603 - Disclosure - Goodwill and Identifiable Intangible Assets, Net - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 40701 - Disclosure - Debt Obligations (Details) link:presentationLink link:calculationLink link:definitionLink 40702 - Disclosure - Debt Obligations - Other (Details) link:presentationLink link:calculationLink link:definitionLink 40703 - Disclosure - Debt Obligations - Notes to Former Owners (Details) link:presentationLink link:calculationLink link:definitionLink 40801 - Disclosure - Leases (Details) link:presentationLink link:calculationLink link:definitionLink 40901 - Disclosure - Commitments and Contingencies - Other and Bonds (Details) link:presentationLink link:calculationLink link:definitionLink 41001 - Disclosure - Stockholders' Equity - Incentive and Other (Details) link:presentationLink link:calculationLink link:definitionLink 41101 - Disclosure - Segment Information (Details) link:presentationLink link:calculationLink link:definitionLink 41201 - Disclosure - Subsequent Event (Details) link:presentationLink link:calculationLink link:definitionLink 00305 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical) link:presentationLink link:calculationLink link:definitionLink 11101 - Disclosure - Segment Information link:presentationLink link:calculationLink link:definitionLink 31103 - Disclosure - Segment Information (Tables) link:presentationLink link:calculationLink link:definitionLink EX-101.CAL 7 fix-20220331_cal.xml EX-101.CAL EX-101.DEF 8 fix-20220331_def.xml EX-101.DEF EX-101.LAB 9 fix-20220331_lab.xml EX-101.LAB EX-101.PRE 10 fix-20220331_pre.xml EX-101.PRE XML 11 R1.htm IDEA: XBRL DOCUMENT v3.22.1
Document and Entity Information - shares
3 Months Ended
Mar. 31, 2022
Apr. 22, 2022
Cover [Abstract]    
Document Type 10-Q  
Document Quarterly Report true  
Document Period End Date Mar. 31, 2022  
Document Transition Report false  
Entity File Number 1-13011  
Entity Registrant Name COMFORT SYSTEMS USA, INC.  
Entity Incorporation, State or Country Code DE  
Entity Tax Identification Number 76-0526487  
Entity Address, Address Line One 675 Bering Drive  
Entity Address, Address Line Two Suite 400  
Entity Address, City or Town Houston  
Entity Address, State or Province TX  
Entity Address, Postal Zip Code 77057  
City Area Code 713  
Local Phone Number 830-9600  
Title of 12(b) Security Common Stock, $0.01 par value  
Trading Symbol FIX  
Security Exchange Name NYSE  
Entity Current Reporting Status Yes  
Entity Interactive Data Current Yes  
Entity Filer Category Large Accelerated Filer  
Entity Small Business false  
Entity Emerging Growth Company false  
Entity Shell Company false  
Entity Common Stock, Shares Outstanding   35,983,287
Entity Central Index Key 0001035983  
Document Fiscal Year Focus 2022  
Document Fiscal Period Focus Q1  
Current Fiscal Year End Date --12-31  
Amendment Flag false  
XML 12 R2.htm IDEA: XBRL DOCUMENT v3.22.1
CONSOLIDATED BALANCE SHEETS - USD ($)
$ in Thousands
Mar. 31, 2022
Dec. 31, 2021
CURRENT ASSETS:    
Cash and cash equivalents $ 115,615 $ 58,776
Billed accounts receivable, less allowance for credit losses of $8,694 and $8,808, respectively 804,832 773,716
Unbilled accounts receivable, less allowance for credit losses of $751 and $715, respectively 70,901 61,881
Other receivables, less allowance for credit losses of $498 and $503, respectively 73,677 57,491
Inventories 24,918 21,853
Prepaid expenses and other 31,373 23,704
Costs and estimated earnings in excess of billings, less allowance for credit losses of $53 and $84, respectively 18,313 29,900
Total current assets 1,139,629 1,027,321
PROPERTY AND EQUIPMENT, NET 127,711 128,554
LEASE RIGHT-OF-USE ASSET 124,936 124,756
GOODWILL 593,947 592,114
IDENTIFIABLE INTANGIBLE ASSETS, NET 291,990 304,781
DEFERRED TAX ASSETS 20,577 22,905
OTHER NONCURRENT ASSETS 9,623 8,683
Total assets 2,308,413 2,209,114
CURRENT LIABILITIES:    
Current maturities of long-term debt 407 2,788
Accounts payable 267,246 254,788
Accrued compensation and benefits 121,990 129,971
Billings in excess of costs and estimated earnings 316,478 307,380
Accrued self-insurance 22,410 22,227
Other current liabilities 128,668 119,400
Total current liabilities 857,199 836,554
LONG-TERM DEBT, NET 412,079 385,242
LEASE LIABILITIES 107,033 107,701
DEFERRED TAX LIABILITIES 1,745 1,745
OTHER LONG-TERM LIABILITIES 51,949 72,206
Total liabilities 1,430,005 1,403,448
COMMITMENTS AND CONTINGENCIES
STOCKHOLDERS' EQUITY:    
Preferred stock, $.01 par, 5,000,000 shares authorized, none issued and outstanding
Common stock, $.01 par, 102,969,912 shares authorized, 41,123,365 and 41,123,365 shares issued, respectively 411 411
Treasury stock, at cost, 5,170,410 and 5,032,311 shares, respectively (164,844) (150,580)
Additional paid-in capital 331,978 327,061
Retained earnings 710,863 628,774
Total stockholders' equity 878,408 805,666
Total liabilities and stockholders' equity $ 2,308,413 $ 2,209,114
XML 13 R3.htm IDEA: XBRL DOCUMENT v3.22.1
CONSOLIDATED BALANCE SHEETS (Parenthetical) - USD ($)
$ in Thousands
Mar. 31, 2022
Dec. 31, 2021
CONSOLIDATED BALANCE SHEETS    
Billed accounts receivable, allowance for credit losses (in dollars) $ 8,694 $ 8,808
Unbilled accounts receivable, allowance for credit losses (in dollars) 751 715
Other receivables, allowance for credit losses (in dollars) 498 503
Costs and estimated earnings in excess of billings, allowance for credit losses (in dollars) $ 53 $ 84
Preferred stock, par value (in dollars per share) $ 0.01 $ 0.01
Preferred stock, shares authorized 5,000,000 5,000,000
Preferred stock, shares issued 0 0
Preferred stock, shares outstanding 0 0
Common stock, par value (in dollars per share) $ 0.01 $ 0.01
Common stock, shares authorized 102,969,912 102,969,912
Common stock, shares issued 41,123,365 41,123,365
Treasury stock, shares 5,170,410 5,032,311
XML 14 R4.htm IDEA: XBRL DOCUMENT v3.22.1
CONSOLIDATED STATEMENTS OF OPERATIONS - USD ($)
shares in Thousands, $ in Thousands
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
CONSOLIDATED STATEMENTS OF OPERATIONS    
REVENUE $ 885,216 $ 669,761
COST OF SERVICES 732,072 546,292
Gross profit 153,144 123,469
SELLING, GENERAL AND ADMINISTRATIVE EXPENSES 117,776 88,214
GAIN ON SALE OF ASSETS (323) (350)
Operating income 35,691 35,605
OTHER INCOME (EXPENSE):    
Interest income 3 3
Interest expense (2,129) (1,497)
Changes in the fair value of contingent earn-out obligations 4,088 1,186
Other 56 (69)
Other income (expense) 2,018 (377)
INCOME BEFORE INCOME TAXES 37,709 35,228
PROVISION (BENEFIT) FOR INCOME TAXES (49,053) 8,737
NET INCOME $ 86,762 $ 26,491
INCOME PER SHARE:    
Basic $ 2.40 $ 0.73
Diluted $ 2.40 $ 0.73
SHARES USED IN COMPUTING INCOME PER SHARE:    
Basic 36,076 36,286
Diluted 36,188 36,499
XML 15 R5.htm IDEA: XBRL DOCUMENT v3.22.1
CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY - USD ($)
$ in Thousands
Common Stock
Treasury Stock
Additional Paid-In Capital
Retained Earnings
Total
BALANCE at Dec. 31, 2020 $ 411 $ (129,243) $ 322,451 $ 502,810 $ 696,429
BALANCE (in shares) at Dec. 31, 2020 41,123,365        
BALANCE (in shares) at Dec. 31, 2020   (4,935,186)      
Increase (Decrease) in Stockholders' Equity          
Net income       26,491 26,491
Issuance of Stock:          
Issuance of shares for options exercised   $ 1,616 (211)   1,405
Issuance of shares for options exercised (in shares)   61,454      
Issuance of restricted stock & performance stock   $ 777 1,431   2,208
Issuance of restricted stock & performance stock (in shares)   29,544      
Shares received in lieu of tax withholding payment on vested restricted stock   $ (854)     (854)
Shares received in lieu of tax withholding payment on vested restricted stock (in shares)   (11,424)      
Stock-based compensation     2,472   2,472
Dividends       (4,163) (4,163)
Share repurchase   $ (885)     (885)
Share repurchase (in shares)   (13,250)      
BALANCE at Mar. 31, 2021 $ 411 $ (128,589) 326,143 525,138 723,103
BALANCE (in shares) at Mar. 31, 2021 41,123,365        
BALANCE (in shares) at Mar. 31, 2021   (4,868,862)      
BALANCE at Dec. 31, 2021 $ 411 $ (150,580) 327,061 628,774 $ 805,666
BALANCE (in shares) at Dec. 31, 2021 41,123,365       41,123,365
BALANCE (in shares) at Dec. 31, 2021   (5,032,311)     5,032,311
Increase (Decrease) in Stockholders' Equity          
Net income       86,762 $ 86,762
Issuance of Stock:          
Issuance of restricted stock & performance stock   $ 1,232 2,312   3,544
Issuance of restricted stock & performance stock (in shares)   38,863      
Shares received in lieu of tax withholding payment on vested restricted stock   $ (1,399)     (1,399)
Shares received in lieu of tax withholding payment on vested restricted stock (in shares)   (15,348)      
Stock-based compensation     2,605   2,605
Dividends       (4,673) (4,673)
Share repurchase   $ (14,097)     (14,097)
Share repurchase (in shares)   (161,614)      
BALANCE at Mar. 31, 2022 $ 411 $ (164,844) $ 331,978 $ 710,863 $ 878,408
BALANCE (in shares) at Mar. 31, 2022 41,123,365       41,123,365
BALANCE (in shares) at Mar. 31, 2022   (5,170,410)     5,170,410
XML 16 R6.htm IDEA: XBRL DOCUMENT v3.22.1
CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical) - $ / shares
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY    
Dividends (per share) $ 0.13 $ 0.115
XML 17 R7.htm IDEA: XBRL DOCUMENT v3.22.1
CONSOLIDATED STATEMENTS OF CASH FLOWS - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
CASH FLOWS FROM OPERATING ACTIVITIES:    
Net income $ 86,762 $ 26,491
Adjustments to reconcile net income to net cash provided by operating activities-    
Amortization of identifiable intangible assets 12,791 8,925
Depreciation expense 8,046 7,051
Change in right-of-use assets 4,734 4,377
Bad debt expense (benefit) 25 (1,018)
Deferred tax provision (benefit) 2,328 (410)
Amortization of debt financing costs 133 133
Gain on sale of assets (323) (350)
Changes in the fair value of contingent earn-out obligations (4,088) (1,186)
Stock-based compensation 3,996 4,711
(Increase) decrease in-    
Receivables, net (52,701) 49,684
Inventories (3,104) (2,181)
Prepaid expenses and other current assets (2,803) (390)
Costs and estimated earnings in excess of billings and unbilled accounts receivable 2,562 6,840
Other noncurrent assets 181 (284)
Increase (decrease) in-    
Accounts payable and accrued liabilities 1,899 (33,087)
Billings in excess of costs and estimated earnings 9,046 20,550
Other long-term liabilities (5,755) (5,209)
Net cash provided by operating activities 63,729 84,647
CASH FLOWS FROM INVESTING ACTIVITIES:    
Purchases of property and equipment (9,192) (4,812)
Proceeds from sales of property and equipment 1,056 498
Cash paid for acquisitions, net of cash acquired 3 (10,716)
Payments for investments (1,236)  
Net cash used in investing activities (9,369) (15,030)
CASH FLOWS FROM FINANCING ACTIVITIES:    
Proceeds from revolving credit facility 50,000 10,000
Payments on revolving credit facility (10,000) (70,000)
Payments on term loan (7,500) (7,500)
Payments on other debt (7,797)  
Payments on finance lease liabilities (253)  
Payments of dividends to stockholders (4,673) (4,163)
Share repurchase (14,097) (885)
Shares received in lieu of tax withholding (1,399) (854)
Proceeds from exercise of options   1,405
Deferred acquisition payments (50) (400)
Payments for contingent consideration arrangements (1,752)  
Net cash provided by (used in) financing activities 2,479 (72,397)
NET INCREASE (DECREASE) IN CASH AND CASH EQUIVALENTS 56,839 (2,780)
CASH AND CASH EQUIVALENTS, beginning of period 58,776 54,896
CASH AND CASH EQUIVALENTS, end of period $ 115,615 $ 52,116
XML 18 R8.htm IDEA: XBRL DOCUMENT v3.22.1
Business and Organization
3 Months Ended
Mar. 31, 2022
Business and Organization  
Business and Organization

1. Business and Organization

Comfort Systems USA, Inc., a Delaware corporation, provides comprehensive mechanical and electrical contracting services, which principally includes heating, ventilation and air conditioning (“HVAC”), plumbing, electrical, piping and controls, as well as off-site construction, monitoring and fire protection. We build, install, maintain, repair and replace mechanical, electrical and plumbing (“MEP”) systems throughout the United States. The terms “Comfort Systems,” “we,” “us,” or the “Company,” refer to Comfort Systems USA, Inc. or Comfort Systems USA, Inc. and its consolidated subsidiaries, as appropriate in the context.

XML 19 R9.htm IDEA: XBRL DOCUMENT v3.22.1
Summary of Significant Accounting Policies and Estimates
3 Months Ended
Mar. 31, 2022
Summary of Significant Accounting Policies and Estimates  
Summary of Significant Accounting Policies and Estimates

2. Summary of Significant Accounting Policies and Estimates

Basis of Presentation

These interim statements should be read in conjunction with the historical Consolidated Financial Statements and related notes of Comfort Systems included in the Annual Report on Form 10-K as filed with the Securities and Exchange Commission (“SEC”) for the year ended December 31, 2021 (the “Form 10-K”).

The accompanying unaudited consolidated financial statements were prepared using generally accepted accounting principles for interim financial information and the instructions to Form 10-Q and applicable rules of Regulation S-X of the SEC. Accordingly, these financial statements do not include all the footnotes required by generally accepted accounting principles for complete financial statements and should be read in conjunction with the Form 10-K. We believe all adjustments necessary for a fair presentation of these interim statements have been included and are of a normal and recurring nature. The results of operations for interim periods are not necessarily indicative of the results for the full fiscal year.

Use of Estimates

The preparation of financial statements in conformity with generally accepted accounting principles requires the use of estimates and assumptions by management in determining the reported amounts of assets and liabilities, revenue and expenses and disclosures regarding contingent assets and liabilities. Actual results could differ from those estimates. The most significant estimates used in our financial statements affect revenue and cost recognition for construction contracts, self-insurance accruals, deferred tax assets, fair value accounting for acquisitions and the quantification of fair value for reporting units in connection with our goodwill impairment testing.

Recent Accounting Pronouncements

Recent Accounting Pronouncements Not Yet Adopted

In March 2020, the FASB issued ASU No. 2020-04, “Reference Rate Reform (Topic 848).” The pronouncement provides temporary optional expedients and exceptions to the current guidance on contract modifications and hedge accounting to ease the financial reporting burden related to the expected market transition from the London Interbank Offered Rate (“LIBOR”) and other interbank offered rates to alternative reference rates. The guidance was effective upon issuance and generally can be applied to applicable contract modifications through December 31, 2022. Our current debt facility (as further described in Note 7) includes a Eurodollar Rate Loan Option with an interest rate that is determined based on the one- to six-month LIBOR rates, which will cease to be published on June 30, 2023. We currently do not expect the impact of the transition from LIBOR to alternative reference rates to have a significant impact to our consolidated financial statements.

In October 2021, the FASB issued ASU 2021-08, “Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers.” This standard requires an acquirer to apply Accounting Standards Codification Topic 606 to recognize and measure contract assets and contract liabilities in a business combination. ASU 2021-08 is effective for fiscal years beginning after December 15, 2022 and interim periods within that year. Early adoption is permitted. We are currently evaluating the potential impact of this authoritative guidance on our consolidated financial statements.

Revenue Recognition

We recognize revenue over time for all of our services as we perform them because (i) control continuously transfers to that customer as work progresses, and (ii) we have the right to bill the customer as costs are incurred. The customer typically controls the work in process, as evidenced either by contractual termination clauses or by our rights to payment for work performed to date, plus a reasonable profit, for delivery of products or services that do not have an alternative use to the Company.

For the reasons listed above, revenue is recognized based on the extent of progress towards completion of the performance obligation. The selection of the method to measure progress towards completion requires judgment and is based on the nature of the products or services to be provided. We generally use a cost-to-cost input method to measure our progress towards satisfaction of the performance obligation for our contracts, as it best depicts the transfer of assets to the customer that occurs as we incur costs on our contracts. Under the cost-to-cost input method, the extent of progress towards completion is measured based on the ratio of costs incurred to date to the total estimated costs at completion of the performance obligation. Revenue, including estimated fees or profits, is recorded proportionally as costs are incurred. Costs to fulfill include labor, materials, subcontractors’ costs, other direct costs and an allocation of indirect costs.

For a small portion of our business in which our services are delivered in the form of service maintenance agreements for existing systems to be repaired and maintained, as opposed to constructed, our performance obligation is to maintain the customer’s mechanical system for a specific period of time. Similar to construction jobs, we recognize revenue over time; however, for service maintenance agreements in which the full cost to provide services may not be known, we generally use an input method to recognize revenue, which is based on the amount of time we have provided our services out of the total time we have been contracted to perform those services. Our revenue recognition policy is further discussed in Note 3 “Revenue from Contracts with Customers.”

Accounts Receivable and Allowance for Credit Losses

We are required to estimate and record the expected credit losses over the contractual life of our financial assets measured at amortized cost, including billed and unbilled accounts receivable, other receivables and contract assets. Accounts receivable include amounts from work completed in which we have billed or have an unconditional right to bill our customers. Our trade receivables are contractually due in less than a year.

We estimate our credit losses using a loss-rate method for each of our identified portfolio segments. Our portfolio segments are construction, service and other. While our construction and service financial assets are often with the same subset of customers and industries, our construction financial assets will generally have a lower loss-rate than service financial assets due to lien rights, which we are more likely to have on construction jobs. These lien rights result in lower credit loss expenses on average compared to receivables that do not have lien rights. Financial assets classified as Other include receivables that are not related to our core revenue producing activities, such as receivables related to our acquisition activity from former owners, our vendor rebate program or receivables for estimated losses in excess of our insurance deductible, which are accrued with a corresponding accrued insurance liability.

Loss rates for our portfolios are based on numerous factors, including our history of credit loss expense by portfolio, the financial strength of our customers and counterparties in each portfolio, the aging of our receivables, our expectation of likelihood of payment, macroeconomic trends in the U.S. and the current and forecasted non-residential construction market trends in the U.S.

In addition to the loss-rate calculations discussed above, we also record allowance for credit losses for specific receivables that are deemed to have a higher risk profile than the rest of the respective pool of receivables (e.g., when we hold concerns about a specific customer going bankrupt and no longer being able to pay the receivables due to us).

Income Taxes

We conduct business throughout the United States in virtually all fifty states. Our effective tax rate changes based upon our relative profitability, or lack thereof, in states with varying tax rates and rules. In addition, discrete items such as tax law changes, judgments and legal structures, can impact our effective tax rate. These items can also include the tax treatment for impairment of goodwill and other intangible assets, changes in fair value of acquisition-related assets and liabilities, uncertain tax positions, and accounting for losses associated with underperforming operations.

In early October 2020, we filed amended federal returns for 2016, 2017 and 2018 primarily to claim the credit for increasing research activities (the “R&D tax credit”) requesting refunds of $9.8 million, $9.5 million and $11.9 million, respectively. The $31.2 million of refunds requested was offset by unrecognized tax benefits of $28.8 million due to the uncertainty of the outcome of an Internal Revenue Service (“IRS”) examination. The R&D tax credit had no material impact on our effective tax rates for the 2020 and 2021 calendar years.

Following an IRS survey of previously filed refund claims for the 2016, 2017 and 2018 tax years, the Joint Committee on Taxation approved such refunds in late January 2022. As a result, our benefit for income taxes in the first quarter of 2022 included a $28.8 million reduction in unrecognized tax benefits plus approximately $1.6 million of net interest income on the refunds.

Our benefit for income taxes in the first quarter of 2022 was further increased by $26.8 million plus approximately $0.1 million of net interest income on the expected refunds due to our intention to claim the R&D tax credit for the 2019, 2020 and 2021 tax years. Additionally, we have included an estimate for the R&D tax credit in the computation of our annual effective tax rate for the current year and will continue to do so for the foreseeable future.

Financial Instruments

Our financial instruments consist of cash and cash equivalents, accounts receivable, other receivables, accounts payable and life insurance policies, for which we deem the carrying values approximate their fair value due to the short-term nature of these instruments, as well as notes to former owners, a revolving credit facility and a term loan. We believe the carrying value of our debt associated with our senior credit facility approximates its fair value due to the variable rate on such debt.

Investments

We have a $1.2 million investment with a fair value that is not readily determinable and is recorded at cost. This investment is included in “Other Noncurrent Assets” in our Consolidated Balance Sheet and is reviewed quarterly for impairment. We did not recognize any impairments in the current year related to this investment.

XML 20 R10.htm IDEA: XBRL DOCUMENT v3.22.1
Revenue from Contracts with Customers
3 Months Ended
Mar. 31, 2022
Revenue from Contracts with Customers  
Revenue from Contracts with Customers

3. Revenue from Contracts with Customers

Revenue is recognized when control of the promised goods or services is transferred to our customers, in an amount that reflects the consideration to which we expect to be entitled in exchange for those goods or services. Sales-based taxes are excluded from revenue.

We provide mechanical and electrical contracting services. Our mechanical segment principally includes HVAC, plumbing, piping and controls, as well as off-site construction, monitoring and fire protection. Our electrical segment includes installation and servicing of electrical systems. We build, install, maintain, repair and replace products and systems throughout the United States. All of our revenue is recognized over time as we deliver goods and services to our customers. Revenue can be earned based on an agreed-upon fixed price or based on actual costs incurred, marked up at an agreed-upon percentage.

We account for a contract when: (i) it has approval and commitment from both parties, (ii) the rights of the parties are identified, (iii) payment terms are identified, (iv) the contract has commercial substance, and (v) collectability of consideration is probable. We consider the start of a project to be when the above criteria have been met and we either have written authorization from the customer to proceed or an executed contract.

We generally do not incur significant incremental costs related to obtaining or fulfilling a contract prior to the start of a project. On rare occasions, when significant pre-contract costs are incurred, they are capitalized and amortized over the life of the contract using a cost-to-cost input method to measure progress towards contract completion. We do not currently have any capitalized obtainment or fulfillment costs in our Consolidated Balance Sheet and have not incurred any impairment loss on such costs in the current year.

Due to the nature of the work required to be performed on many of our performance obligations, the estimation of total revenue and cost at completion (the process described below in more detail) is complex, subject to many variables and requires significant judgment. The consideration to which we are entitled on our long-term contracts may include both fixed and variable amounts. Variable amounts can either increase or decrease the transaction price. A common example of variable amounts that can either increase or decrease contract value are pending change orders that represent contract modifications for which a change in scope has been authorized or acknowledged by our customer, but the final adjustment to contract price is yet to be negotiated. Other examples of positive variable revenue include amounts awarded upon achievement of certain performance metrics, program milestones or cost of completion date targets and can be based upon customer discretion. Variable amounts can result in a deduction from contract revenue if we fail to meet stated performance requirements, such as complying with the construction schedule.

We include estimated amounts of variable consideration in the contract 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. Our estimates of variable consideration and determination of whether to include estimated amounts in the contract price are based largely on an assessment of our anticipated performance and all information (historical, current and forecasted) that is reasonably available to us. We reassess the amount of variable consideration each accounting period until the uncertainty associated with the variable consideration is resolved. Changes in the assessed amount of variable consideration are accounted for prospectively as a cumulative adjustment to revenue recognized in the current period.

Contracts are often modified to account for changes in contract specifications and requirements. We consider contract modifications to exist when the modification either creates new, or changes the existing, enforceable rights and obligations. Most of our contract modifications are for goods or services that are not distinct from the existing performance obligation(s). The effect of a contract modification on the transaction price, and our measure of progress for the performance obligation to which it relates, is recognized as an adjustment to revenue (either as an increase or decrease) on a cumulative catch-up basis.

We have a Company-wide policy requiring periodic review of the Estimate at Completion in which management reviews the progress and execution of our performance obligations and estimated remaining obligations. 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, identified risks and opportunities and the related changes in estimates of revenue and costs. The risks and opportunities include management's judgment about the ability and cost to achieve the schedule (e.g., the number and type of milestone events), technical requirements (e.g., a newly developed product versus a mature product) and other contract requirements. Management must make assumptions and estimates regarding labor productivity and availability, the complexity of the work to be performed, the availability of materials, the length of time to complete the performance obligation (e.g., to estimate increases in wages and prices for materials and related support cost allocations), execution by our subcontractors, the availability and timing of funding from our customer, and overhead cost rates, among other variables.

Based on this analysis, any adjustments to revenue, cost of services, and the related impact to operating income are recognized as necessary in the quarter when they become known. These adjustments may result from positive program performance if we determine we will be successful in mitigating risks surrounding the technical, schedule and cost aspects of those performance obligations or realizing related opportunities and may result in an increase in operating income during the performance of individual performance obligations. Likewise, if we determine we will not be

successful in mitigating these risks or realizing related opportunities, these adjustments may result in a decrease in operating income. Changes in estimates of revenue, cost of services and the related impact to operating income are recognized quarterly on a cumulative catch-up basis, meaning we recognize in the current period the cumulative effect of the changes on current and prior periods based on our progress towards complete satisfaction of a performance obligation. A significant change in one or more of these estimates could affect the profitability of one or more of our performance obligations. For projects in which estimates of total costs to be incurred on a performance obligation exceed total estimates of revenue to be earned, a provision for the entire loss on the performance obligation is recognized in the period the loss is determined.

In the first three months of 2022 and 2021, net revenue recognized from our performance obligations satisfied in previous periods was not material.

Disaggregation of Revenue

Our consolidated 2022 revenue was derived from contracts to provide service activities in the mechanical and electrical services segments we serve. Refer to Note 11 “Segment Information” for additional information on our reportable segments. We disaggregate our revenue from contracts with customers by activity, customer type and service provided, as we believe it best depicts how the nature, amount, timing and uncertainty of our revenue and cash flows are affected by economic factors. See details in the following tables (dollars in thousands):

Three Months Ended March 31,

Revenue by Service Provided

   

   

2022

   

2021

Mechanical Services

$

682,511

   

77.1

%

$

565,620

   

84.5

%

Electrical Services

202,705

22.9

%

104,141

15.5

%

Total

$

885,216

100.0

%

$

669,761

100.0

%

Three Months Ended March 31,

Revenue by Type of Customer

2022

2021

 

Industrial

$

410,184

46.3

%

$

269,583

40.3

%

Education

89,446

10.1

%

92,457

13.8

%

Office Buildings

75,115

8.5

%

78,996

11.8

%

Healthcare

134,795

15.2

%

95,091

14.2

%

Government

57,465

6.5

%

43,165

6.4

%

Retail, Restaurants and Entertainment

65,582

7.4

%

44,576

6.7

%

Multi-Family and Residential

24,442

2.8

%

24,660

3.7

%

Other

28,187

3.2

%

21,233

3.1

%

Total

$

885,216

100.0

%

$

669,761

100.0

%

Three Months Ended March 31,

Revenue by Activity Type

2022

2021

 

New Construction

$

429,418

48.5

%

$

302,061

45.1

%

Existing Building Construction

259,285

29.3

%

216,601

32.3

%

Service Projects

76,252

8.6

%

60,060

9.0

%

Service Calls, Maintenance and Monitoring

120,261

13.6

%

91,039

13.6

%

Total

$

885,216

100.0

%

$

669,761

100.0

%

Contract Assets and Liabilities

Project contracts typically provide for a schedule of billings or invoices to the customer based on our job-to-date completion percentage of specific tasks inherent in the fulfillment of our performance obligation(s). The schedules for such billings usually do not precisely match the schedule on which costs are incurred. Contract assets include unbilled amounts typically resulting from sales under long term contracts when the cost-to-cost method of revenue recognition is used, revenue recognized exceeds the amount billed to the customer and right to payment is conditional or subject to completing a milestone, such as a phase of the project. Contract assets are generally classified as current.

Contract liabilities consist of advance payments and billings in excess of revenue recognized. Our contract assets and liabilities are reported in a net position on a contract by contract basis at the end of each reporting period. We

classify advance payments and billings in excess of revenue recognized as current. It is very unusual for us to have advanced payments with a term of greater than one year; therefore, our contract assets and liabilities are usually all current. If we have advanced payments with a term greater than one year, the noncurrent portion of advanced payments would be included in “Other Long-term Liabilities” in our Consolidated Balance Sheets.

The following table presents the changes in contract assets and contract liabilities (in thousands):

Three Months Ended March 31,

Year Ended December 31,

2022

2021

Contract

    

Contract

Contract

    

Contract

Assets

Liabilities

Assets

Liabilities

Balance at beginning of period

$

29,900

$

307,380

$

18,622

$

226,237

Change due to acquisitions / disposals

(10)

52

10,356

36,523

Change related to credit allowance

31

(5)

Other changes in the period

(11,608)

21,135

927

44,620

Balance at end of period

$

18,313

$

328,567

$

29,900

 

$

307,380

In the first three months of 2022 and 2021, we recognized revenue of $220.6 million and $167.8 million related to our contract liabilities at January 1, 2022 and January 1, 2021, respectively.

We did not have any impairment losses recognized on our receivables or contract assets in the first three months of 2022 and 2021.

Remaining Performance Obligations

Remaining construction performance obligations represent the remaining transaction price of firm orders for which work has not been performed and exclude unexercised contract options. As of March 31, 2022, the aggregate amount of the transaction price allocated to remaining performance obligations was $2.73 billion. The Company expects to recognize revenue on approximately 80-85% of the remaining performance obligations over the next 12 months, with the remaining recognized thereafter. Our service maintenance agreements are generally one-year renewable agreements. We have adopted the practical expedient that allows us to not include service maintenance contracts with a total term of one year or less; therefore, we do not report unfulfilled performance obligations for service maintenance agreements.

XML 21 R11.htm IDEA: XBRL DOCUMENT v3.22.1
Fair Value Measurements
3 Months Ended
Mar. 31, 2022
Fair Value Measurements  
Fair Value Measurements

4. Fair Value Measurements

Interest Rate Risk Management and Derivative Instruments

We have interest rate swap agreements in place to reduce our exposure to variable interest rates on our term loan and revolving credit facility. The notional amount covered by these interest rate swaps was $80.0 million as of March 31, 2022, and the termination date is September 30, 2022.

We use derivative instruments to manage exposure to market risk, including interest rate risk. Unsettled amounts under our interest rate swaps are recorded in the Consolidated Balance Sheet at fair value in “Other Receivables” or “Other Current Liabilities.” Gains and losses on our interest rate swaps are recorded in the Consolidated Income Statement in “Interest Expense.” For the three months ended March 31, 2022 and March 31, 2021, we recognized a net loss of $0.1 million related to our interest rate swaps. We currently do not have any derivatives that are accounted for as hedges under ASC 815.

Fair Value Measurements

We classify and disclose assets and liabilities carried at fair value in one of the following three categories:

Level 1—quoted prices in active markets for identical assets and liabilities;
Level 2—observable market-based inputs or unobservable inputs that are corroborated by market data; and
Level 3—significant unobservable inputs in which little or no market data exists, therefore requiring an entity to develop its own assumptions.

The following table summarizes the fair values, and levels within the fair value hierarchy in which the fair value measurements are included, for assets and liabilities measured on a recurring basis as of March 31, 2022 and December 31, 2021 (in thousands):

Fair Value Measurements at March 31, 2022

    

Level 1

    

Level 2

    

Level 3

    

Total

Cash and cash equivalents

$

115,615

$

$

$

115,615

Life insurance—cash surrender value

$

$

6,358

$

$

6,358

Contingent earn-out obligations

$

$

$

28,275

$

28,275

Fair Value Measurements at December 31, 2021

    

Level 1

    

Level 2

    

Level 3

    

Total

Cash and cash equivalents

$

58,776

$

$

$

58,776

Life insurance—cash surrender value

$

$

6,643

$

$

6,643

Contingent earn-out obligations

$

$

$

34,114

$

34,114

Cash and cash equivalents consist primarily of highly rated money market funds at a variety of well-known institutions with original maturities of three months or less. The original cost of these assets approximates fair value due to their short-term maturity. The Company’s outstanding term loan held by third-party financial institutions is carried at cost, adjusted for debt issuance costs. The Company’s term loan is not publicly traded and the carrying amount approximates fair value as the loan accrues interest at a variable rate. The carrying value of our borrowings associated with the revolving credit facility approximate its fair value due to the variable rate on such debt.

We have life insurance policies covering 109 employees with a combined face value of $74.7 million. The policies are invested in several investment vehicles, and the fair value measurement of the cash surrender balance associated with these policies is determined using Level 2 inputs within the fair value hierarchy and will vary with investment performance. The cash surrender value of these policies was $6.4 million as of March 31, 2022 and $6.6 million as of December 31, 2021. These assets are included in “Other Noncurrent Assets” in our Consolidated Balance Sheets.

We value contingent earn-out obligations using a probability weighted discounted cash flow method. This fair value measurement is based on significant unobservable inputs in the market and thus represents a Level 3 measurement within the fair value hierarchy. This analysis reflects the contractual terms of the purchase agreements (e.g., minimum and maximum payments, length of earn-out periods, manner of calculating any amounts due, etc.) and utilizes assumptions with regard to future cash flows and operating income, probabilities of achieving such future cash flows and operating income and a weighted average cost of capital. Significant changes in any of these assumptions could result in a significantly higher or lower potential liability. The contingent earn-out obligations are measured at fair value each reporting period, and changes in estimates of fair value are recognized in earnings. As of March 31, 2022, cash flows were discounted using a weighted average cost of capital ranging from 10.5% - 16.5%.

The table below presents a reconciliation of the fair value of our contingent earn-out obligations that use significant unobservable inputs (Level 3) (in thousands):

    

Three Months Ended

Year Ended

    

March 31, 2022

December 31, 2021

Balance at beginning of period

    

$

34,114

$

25,979

 

Issuances

 

 

19,949

Settlements

(1,751)

(3,994)

Adjustments to fair value

 

(4,088)

 

(7,820)

Balance at end of period

$

28,275

$

34,114

XML 22 R12.htm IDEA: XBRL DOCUMENT v3.22.1
Acquisitions
3 Months Ended
Mar. 31, 2022
Acquisitions  
Acquisitions

5. Acquisitions

On December 31, 2021, we acquired MEP Holding Co., Inc., and its related subsidiaries (collectively, “MEP Holdings”) for a total preliminary purchase price of $57.3 million, which included $45.2 million funded on the closing

date, $7.6 million in notes payable to former owners, an earn-out that will be paid if certain financial targets are met after the acquisition date and a working capital adjustment. As a result of the acquisition, MEP Holdings is a wholly owned subsidiary of the Company and reports as a separate operating location in our electrical services segment. Additionally, on December 31, 2021, we completed an acquisition of a service and controls business in Kentucky with a total preliminary purchase price of $20.6 million and a temporary staffing company based in Indiana with a total preliminary purchase price of $4.7 million, which are both reported in our mechanical services segment.

On December 1, 2021, we acquired Ivey Mechanical Company, LLC (“Ivey”) headquartered in Kosciusko, Mississippi for a total preliminary purchase price of $79.1 million, which included $64.1 million of cash paid on the closing date, $8.0 million in notes payable to former owners, a $0.4 million short term payable plus an earn-out that will be paid if certain financial targets are met after the acquisition date and a working capital adjustment. As a result of the acquisition, Ivey is a wholly owned subsidiary of the Company and reports as a separate operating location in our mechanical services segment.

On August 1, 2021, we acquired all of the issued and outstanding equity interests of Amteck Holdco LLC and each of its wholly owned subsidiaries (collectively “Amteck”). The total preliminary purchase price was $138.6 million of which $112.8 million was allocated to goodwill and identifiable intangible assets. The total preliminary purchase price included $107.4 million in cash, $8.4 million in working capital adjustment, $10.0 million in notes payable to former owners and a $12.9 million contingent earn-out obligation. Amteck provides electrical contracting solutions and services, including design and build, pre-fabrication and installation for core electric and low-voltage systems, as well as services for planned maintenance, retrofit and emergency work. Amteck is headquartered in Kentucky and primarily serves the greater Southeastern United States, including Kentucky, Tennessee and the Carolinas. As a result of the acquisition, Amteck is a wholly owned subsidiary of the Company reported in our electrical services segment.

In the first quarter of 2021, we completed an acquisition of a mechanical contractor in Utah with a total purchase price of $18.1 million, which is reported in our mechanical services segment.

The results of operations of acquisitions are included in our consolidated financial statements from their respective acquisition dates. Our Consolidated Balance Sheet includes preliminary allocations of the purchase price to the assets acquired and liabilities assumed for the applicable acquisitions pending the completion of the final valuation of intangible assets and accrued liabilities. The acquisitions completed in the current and prior year were not material, individually or in the aggregate. Additional contingent purchase price (“earn-out”) has been or will be paid if certain acquisitions achieve predetermined profitability targets. Such earn-outs, when they are not subject to the continued employment of the sellers, are estimated as of the purchase date and included as part of the consideration paid for the acquisition. If we have an earn-out under which continued employment is a condition to receipt of payment, then the earn-out is recorded as compensation expense over the period earned.

XML 23 R13.htm IDEA: XBRL DOCUMENT v3.22.1
Goodwill and Identifiable Intangible Assets, Net
3 Months Ended
Mar. 31, 2022
Goodwill and Identifiable Intangible Assets, Net  
Goodwill and Identifiable Intangible Assets, Net

6. Goodwill and Identifiable Intangible Assets, Net

Goodwill

The changes in the carrying amount of goodwill are as follows (in thousands):

Mechanical Services

Electrical Services

    

Segment

    

Segment

Total

Balance at December 31, 2020

$

307,448

$

156,944

$

464,392

Acquisitions and purchase price adjustments (See Note 5)

 

52,771

74,951

127,722

Impact of segment reorganization

1,101

(1,101)

Balance at December 31, 2021

361,320

230,794

592,114

Acquisitions and purchase price adjustments (See Note 5)

1,833

1,833

Balance at March 31, 2022

$

363,153

$

230,794

$

593,947

During the fourth quarter of 2021, the Company performed a qualitative assessment for all of our reporting units except one for which we performed a quantitative assessment, which considered various factors, including changes in the carrying value of the reporting unit, forecasted operating results, long-term growth rates and discount rates. Additionally,

we considered qualitative key events and circumstances (i.e. macroeconomic environment, industry and market specific conditions, cost factors and events specific to the reporting unit, etc.). Based on this assessment, we concluded that it was more likely than not that the fair value of each of the reporting units was substantially greater than its carrying value. Accordingly, no further testing was required. For our Texas electrical operation, we performed a step 1 quantitative assessment, and the calculated fair value exceeded the carrying value by 32%. As a result of the reporting unit’s smaller excess of fair value percentage, this reporting unit is more susceptible to impairment risk from additional adverse changes in its operating environment, including micro- and macroeconomic environment conditions that could negatively impact them. Such adverse changes could include worsening economic conditions in the locations or markets they primarily serve, whether due to COVID-19 or other events and conditions. As of March 31, 2022, the Texas electrical operation had a goodwill balance of $96.8 million.

Identifiable Intangible Assets, Net

At March 31, 2022, future amortization expense of identifiable intangible assets is as follows (in thousands):

Year ending December 31—

    

    

2022 (remainder of the year)

    

$

33,715

 

2023

34,532

2024

 

32,343

2025

 

30,156

2026

 

29,312

Thereafter

 

131,932

Total

$

291,990

XML 24 R14.htm IDEA: XBRL DOCUMENT v3.22.1
Debt Obligations
3 Months Ended
Mar. 31, 2022
Debt Obligations  
Debt Obligations

7. Debt Obligations

Debt obligations consist of the following (in thousands):

March 31,

December 31,

    

2022

    

2021

 

Revolving credit facility

$

260,000

$

220,000

Term loan

112,500

120,000

Notes to former owners

40,157

 

47,954

Finance lease liabilities (See Note 8)

266

Total principal amount

412,657

 

388,220

Less—unamortized debt issuance costs

(171)

(190)

Total debt, net of unamortized debt issuance costs

412,486

388,030

Less—current portion

(407)

 

(2,788)

Total long-term portion of debt, net

$

412,079

$

385,242

Revolving Credit Facility and Term Loan

We have a $600.0 million senior credit facility (the “Facility”) provided by a syndicate of banks. The Facility is composed of a revolving credit line in the amount of $450.0 million and a $150.0 million term loan, and the Facility provides for a $150.0 million accordion or increase option for the revolving portion of the Facility. As of March 31, 2022, the Facility capacity was $562.5 million, as the term loan was paid down by $37.5 million since the inception of the Facility. The amended Facility also includes a sublimit of up to $160.0 million issuable in the form of letters of credit. The Facility expires in January 2025 and is secured by a first lien on substantially all of our personal property except for assets related to projects subject to surety bonds and assets held by certain unrestricted subsidiaries and our wholly owned captive insurance company, and a second lien on our assets related to projects subject to surety bonds. As of March 31, 2022, we had $260.0 million of outstanding borrowings on the revolving credit facility, $55.6 million in letters of credit outstanding and $134.4 million of credit available.

There are two interest rate options for borrowings under the Facility, the Base Rate Loan Option and the Eurodollar Rate Loan Option. These rates are floating rates determined by the broad financial markets, meaning they can and do move up and down from time to time. Additional margins are then added to these two rates.

The following is a summary of the additional margins:

Consolidated Total Indebtedness to

 

Credit Facility Adjusted EBITDA

 

    

Less than 1.00

    

1.00 to 1.75

    

1.75 to 2.50

    

2.50 or greater

 

Additional Per Annum Interest Margin Added Under:

Base Rate Loan Option

0.25

%  

0.50

%  

0.75

%  

1.00

%

Eurodollar Rate Loan Option

1.25

%

1.50

%

1.75

%

2.00

%

The weighted average interest rate applicable to the borrowings under the revolving credit facility was approximately 1.9% as of March 31, 2022. The weighted average interest rate applicable to the term loan was approximately 2.0% as of March 31, 2022.

Certain of our vendors require letters of credit to ensure reimbursement for amounts they are disbursing on our behalf, such as to beneficiaries under our self-funded insurance programs. We have also occasionally used letters of credit to guarantee performance under our contracts and to ensure payment to our subcontractors and vendors under those contracts. Our lenders issue such letters of credit through the Facility. We have never had a claim made against a letter of credit that resulted in payments by a lender or by us and believe such a claim is unlikely in the foreseeable future. The letter of credit fees range from 1.25% to 2.00% per annum, based on the ratio of Consolidated Total Indebtedness to “Credit Facility Adjusted EBITDA,” which shall mean Consolidated EBITDA as such term is defined in the credit agreement.

Commitment fees are payable on the portion of the revolving loan capacity not in use for borrowings or letters of credit at any given time. These fees range from 0.20% to 0.35% per annum, based on the ratio of Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA.

The Facility contains financial covenants defining various financial measures and the levels of these measures with which we must comply. Covenant compliance is assessed as of each quarter end. We were in compliance with all of our financial covenants as of March 31, 2022.

Notes to Former Owners

As part of the consideration used to acquire nine companies, we have outstanding notes to the former owners. Together, these notes had an outstanding balance of $40.2 million as of March 31, 2022. At March 31, 2022, future principal payments of notes to former owners by maturity year are as follows (dollars in thousands):

Balance at

Range of Stated

    

March 31, 2022

Interest Rates

2022

    

$

407

 

2.5 - 3.5

%

2023

9,400

2.5

%

2024

 

10,800

2.5 - 3.0

%

2025

 

19,550

2.3 - 2.5

%

Total

$

40,157

XML 25 R15.htm IDEA: XBRL DOCUMENT v3.22.1
Leases
3 Months Ended
Mar. 31, 2022
Leases  
Leases

8. Leases

We lease certain facilities, vehicles and equipment primarily under noncancelable operating leases. The most significant portion of these noncancelable operating leases are for the facilities occupied by our corporate office and our operating locations. We have finance leases on vehicles that are not material to our consolidated financial position. Leases with an initial term of 12 months or less are not recorded in the Balance Sheet. We do not separate lease

components from their associated non-lease components pursuant to lease accounting guidance. We have certain leases with variable payments based on an index as well as some short-term leases on equipment and facilities. Variable lease expense and short-term lease expense were not material to our financial statements and aggregated to $4.1 million and $1.9 million in the first three months of 2022 and 2021, respectively. Lease right-of-use assets and liabilities are recognized at commencement date based on the present value of lease payments over the lease term. As most of our leases do not provide an implicit rate, we generally use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments. The weighted average discount rate for our operating leases as of both March 31, 2022 and December 31, 2021 was 4.0%. We recognize operating lease expense, including escalating lease payments and lease incentives, on a straight-line basis over the lease term. Operating lease expense for the three months ended March 31, 2022 and 2021 was $10.4 million and $7.2 million, respectively.

The lease terms generally range from three to ten years. Some leases include one or more options to renew, which may be exercised to extend the lease term. We include the exercise of lease renewal options in the lease term when it is reasonably certain that we will exercise the option and such exercise is at our sole discretion. The weighted average remaining lease term for our operating leases was 8.4 years at March 31, 2022 and 8.7 years at December 31, 2021.

A majority of the Company’s real property leases are with individuals or entities with whom we have no other business relationship. However, in certain instances the Company enters into real property leases with current or former employees. Rent paid to related parties for the three months ended March 31, 2022 and 2021 was approximately $1.7 million and $1.3 million, respectively.

If we decide to cancel or terminate a lease before the end of its term, we would typically owe the lessor the remaining lease payments under the term of the lease. Our lease agreements do not contain any material residual value guarantees or material restrictive covenants. On rare occasions, we rent or sublease certain real estate assets that we no longer use to third parties.

Finance lease right-of-use assets are included in “Property and equipment, net,” and current and long-term finance lease liabilities are included within “Current maturities of long-term debt” and “Long-term debt, net,” respectively, in the Consolidated Balance Sheet. The following table summarizes the operating lease assets and liabilities included in the Consolidated Balance Sheet as follows (in thousands):

March 31, 2022

December 31, 2021

Operating lease right-of-use assets

$

124,936

$

124,756

Operating lease liabilities:

Other current liabilities

$

19,571

$

19,050

Long-term operating lease liabilities

107,033

107,701

Total operating lease liabilities

$

126,604

$

126,751

The maturities of operating lease liabilities are as follows (in thousands):

Year ending December 31—

2022 (excluding the three months ended March 31, 2022)

$

18,388

2023

22,243

2024

19,735

2025

18,638

2026

15,646

Thereafter

55,274

Total Lease Payments

149,924

Less—Present Value Discount

(23,320)

Present Value of Operating Lease Liabilities

$

126,604

Supplemental information related to operating leases was as follows (in thousands):

Three Months Ended March 31,

2022

2021

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

$

6,314

$

5,353

Operating lease right-of-use assets obtained in exchange for lease liabilities

$

4,914

$

6,432

XML 26 R16.htm IDEA: XBRL DOCUMENT v3.22.1
Commitments and Contingencies
3 Months Ended
Mar. 31, 2022
Commitments and Contingencies  
Commitments and Contingencies

9. Commitments and Contingencies

Claims and Lawsuits

We are subject to certain legal and regulatory claims, including lawsuits arising in the normal course of business. We maintain various insurance coverages to minimize financial risk associated with these claims. We have estimated and provided accruals for probable losses and related legal fees associated with certain litigation in the accompanying consolidated financial statements. While we cannot predict the outcome of these proceedings, in management’s opinion and based on reports of counsel, any liability arising from these matters individually and in the aggregate will not have a material effect on our operating results, cash flows or financial condition, after giving effect to provisions already recorded.

We are in a dispute with a customer regarding the outcome of a completed project and also regarding the obligation to perform subcontract work under two executed letters of intent for subsequent projects that we believe are not enforceable. The customer is claiming approximately $12 million in damages related to performance of the original project as well as excess costs to perform the work that was subject to the letters of intent. We are claiming approximately $9 million composed of unpaid amounts under the completed contract as well as costs and inefficiencies that we suffered. We have a lien on the project, and this matter is currently scheduled for arbitration in the second quarter of 2022 with a likely decision in the following months. As of March 31, 2022, we recorded an accrual for this matter based on our analysis of likely outcomes related to this dispute; however, it is possible that the ultimate outcome and associated costs will deviate from our estimates and that, in the event of an unexpectedly adverse outcome, we may experience additional costs and expenses in future periods.

Surety

Many customers, particularly in connection with new construction, require us to post performance and payment bonds issued by a financial institution known as a surety. If we fail to perform under the terms of a contract or to pay subcontractors and vendors who provided goods or services under a contract, the customer may demand that the surety make payments or provide services under the bond. We must reimburse the surety for any expenses or outlays it incurs. To date, we are not aware of any losses to our sureties in connection with bonds the sureties have posted on our behalf and do not expect such losses to be incurred in the foreseeable future.

Current market conditions for surety markets and bonding capacity are adequate, with acceptable terms and conditions. Historically, approximately 15% to 25% of our business has required bonds. While we currently have strong surety relationships to support our bonding needs, future market conditions or changes in the sureties’ assessment of our operating and financial risk could cause the sureties to decline to issue bonds for our work. If that were to occur, the alternatives include doing more business that does not require bonds, posting other forms of collateral for project performance, such as letters of credit or cash, and seeking bonding capacity from other sureties. We would likely also encounter concerns from customers, suppliers and other market participants as to our creditworthiness. While we believe our general operating and financial characteristics would enable us to ultimately respond effectively to an interruption in the availability of bonding capacity, such an interruption would likely cause our revenue and profits to decline in the near term.

Self-Insurance

We are substantially self-insured for workers’ compensation, employer’s liability, auto liability, general liability and employee group health claims, in view of the relatively high per-incident deductibles we absorb under our insurance arrangements for these risks. Losses are estimated and accrued based upon known facts, historical trends and industry averages. Estimated losses in excess of our deductible, which have not already been paid, are included in our accrual

with a corresponding receivable from our insurance carrier. Loss estimates associated with the larger and longer-developing risks, such as workers’ compensation, auto liability and general liability, are reviewed by a third-party actuary quarterly.

XML 27 R17.htm IDEA: XBRL DOCUMENT v3.22.1
Stockholders' Equity
3 Months Ended
Mar. 31, 2022
Stockholders' Equity  
Stockholders' Equity.

10. Stockholders’ Equity

Earnings Per Share

Basic earnings per share (“EPS”) is computed by dividing net income by the weighted average number of shares of common stock outstanding during the year. Diluted EPS is computed considering the dilutive effect of stock options, restricted stock, restricted stock units and performance stock units. The vesting of unvested, contingently issuable performance stock units is based on the achievement of certain earnings per share targets and total shareholder return. These shares are considered contingently issuable shares for purposes of calculating diluted earnings per share. These shares are not included in the diluted earnings per share denominator until the performance criteria are met, if it is assumed that the end of the reporting period was the end of the contingency period.

Unvested restricted stock, restricted stock units and performance stock units are included in diluted earnings per share, weighted outstanding until the shares and units vest. Upon vesting, the vested restricted stock, restricted stock units and performance stock units are included in basic earnings per share weighted outstanding from the vesting date.

There were zero and less than 0.1 million anti-dilutive stock options excluded from the calculation of diluted EPS for the three months ended March 31, 2022 and 2021, respectively.

The following table reconciles the number of shares outstanding with the number of shares used in computing basic and diluted earnings per share for each of the periods presented (in thousands):

Three Months Ended

March 31,

    

2022

    

2021

 

Common shares outstanding, end of period

35,953

 

36,255

Effect of using weighted average common shares outstanding

123

 

31

Shares used in computing earnings per share—basic

36,076

 

36,286

Effect of shares issuable under stock option plans based on the treasury stock method

43

 

131

Effect of restricted and contingently issuable shares

69

 

82

Shares used in computing earnings per share—diluted

36,188

 

36,499

Share Repurchase Program

On March 29, 2007, our Board of Directors (the “Board”) approved a stock repurchase program to acquire up to 1.0 million shares of our outstanding common stock. Subsequently, the Board has from time to time increased the number of shares that may be acquired under the program and approved extensions of the program. On December 8, 2020, the Board approved an extension to the program by increasing the shares authorized for repurchase by 0.7 million shares. Since the inception of the repurchase program, the Board has approved 10.3 million shares to be repurchased. As of March 31, 2022, we have repurchased a cumulative total of 9.8 million shares at an average price of $22.77 per share under the repurchase program.

The share repurchases will be made from time to time at our discretion in the open market or privately negotiated transactions as permitted by securities laws and other legal requirements, and subject to market conditions and other factors. The Board may modify, suspend, extend or terminate the program at any time. During the three months ended March 31, 2022, we repurchased 0.2 million shares for approximately $14.1 million at an average price of $87.23 per share.

XML 28 R18.htm IDEA: XBRL DOCUMENT v3.22.1
Segment Information
3 Months Ended
Mar. 31, 2022
Segment Information  
Segment Information

11. Segment Information

Our activities are within the mechanical services industry and the electrical services industry, which represent our two reportable segments. We aggregate our operating segments into two reportable segments, as the operating

segments meet all of the aggregation criteria. The following table presents information about our reportable segments (in thousands):

Three Months Ended March 31, 2022

    

Mechanical Services

    

Electrical Services

    

Corporate

    

Consolidated

Revenue

$

682,511

$

202,705

$

$

885,216

Gross Profit

$

126,728

$

26,416

$

$

153,144

Three Months Ended March 31, 2021

    

Mechanical Services

    

Electrical Services

    

Corporate

    

Consolidated

Revenue

$

565,620

$

104,141

$

$

669,761

Gross Profit

$

108,128

$

15,341

$

$

123,469

XML 29 R19.htm IDEA: XBRL DOCUMENT v3.22.1
Subsequent Event
3 Months Ended
Mar. 31, 2022
Subsequent Events.  
Subsequent Event

12. Subsequent Event

On April 1, 2022, we acquired all of the issued and outstanding equity interests of Atlantic Electric, LLC and its related subsidiary (together, “Atlantic”). Atlantic is headquartered in Charleston, South Carolina, and performs electrical contracting for customers in various South Carolina markets, as well as installation of airport runway lighting in the Southeast. We expect Atlantic to initially contribute annualized revenues of approximately $50 million. The transaction was primarily funded from the Company’s revolving credit facility.

XML 30 R20.htm IDEA: XBRL DOCUMENT v3.22.1
Summary of Significant Accounting Policies and Estimates (Policies)
3 Months Ended
Mar. 31, 2022
Summary of Significant Accounting Policies and Estimates  
Basis of Presentation

Basis of Presentation

These interim statements should be read in conjunction with the historical Consolidated Financial Statements and related notes of Comfort Systems included in the Annual Report on Form 10-K as filed with the Securities and Exchange Commission (“SEC”) for the year ended December 31, 2021 (the “Form 10-K”).

The accompanying unaudited consolidated financial statements were prepared using generally accepted accounting principles for interim financial information and the instructions to Form 10-Q and applicable rules of Regulation S-X of the SEC. Accordingly, these financial statements do not include all the footnotes required by generally accepted accounting principles for complete financial statements and should be read in conjunction with the Form 10-K. We believe all adjustments necessary for a fair presentation of these interim statements have been included and are of a normal and recurring nature. The results of operations for interim periods are not necessarily indicative of the results for the full fiscal year.

Use of Estimates

Use of Estimates

The preparation of financial statements in conformity with generally accepted accounting principles requires the use of estimates and assumptions by management in determining the reported amounts of assets and liabilities, revenue and expenses and disclosures regarding contingent assets and liabilities. Actual results could differ from those estimates. The most significant estimates used in our financial statements affect revenue and cost recognition for construction contracts, self-insurance accruals, deferred tax assets, fair value accounting for acquisitions and the quantification of fair value for reporting units in connection with our goodwill impairment testing.

Recent Accounting Pronouncements

Recent Accounting Pronouncements

Recent Accounting Pronouncements Not Yet Adopted

In March 2020, the FASB issued ASU No. 2020-04, “Reference Rate Reform (Topic 848).” The pronouncement provides temporary optional expedients and exceptions to the current guidance on contract modifications and hedge accounting to ease the financial reporting burden related to the expected market transition from the London Interbank Offered Rate (“LIBOR”) and other interbank offered rates to alternative reference rates. The guidance was effective upon issuance and generally can be applied to applicable contract modifications through December 31, 2022. Our current debt facility (as further described in Note 7) includes a Eurodollar Rate Loan Option with an interest rate that is determined based on the one- to six-month LIBOR rates, which will cease to be published on June 30, 2023. We currently do not expect the impact of the transition from LIBOR to alternative reference rates to have a significant impact to our consolidated financial statements.

In October 2021, the FASB issued ASU 2021-08, “Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers.” This standard requires an acquirer to apply Accounting Standards Codification Topic 606 to recognize and measure contract assets and contract liabilities in a business combination. ASU 2021-08 is effective for fiscal years beginning after December 15, 2022 and interim periods within that year. Early adoption is permitted. We are currently evaluating the potential impact of this authoritative guidance on our consolidated financial statements.

Revenue Recognition

Revenue Recognition

We recognize revenue over time for all of our services as we perform them because (i) control continuously transfers to that customer as work progresses, and (ii) we have the right to bill the customer as costs are incurred. The customer typically controls the work in process, as evidenced either by contractual termination clauses or by our rights to payment for work performed to date, plus a reasonable profit, for delivery of products or services that do not have an alternative use to the Company.

For the reasons listed above, revenue is recognized based on the extent of progress towards completion of the performance obligation. The selection of the method to measure progress towards completion requires judgment and is based on the nature of the products or services to be provided. We generally use a cost-to-cost input method to measure our progress towards satisfaction of the performance obligation for our contracts, as it best depicts the transfer of assets to the customer that occurs as we incur costs on our contracts. Under the cost-to-cost input method, the extent of progress towards completion is measured based on the ratio of costs incurred to date to the total estimated costs at completion of the performance obligation. Revenue, including estimated fees or profits, is recorded proportionally as costs are incurred. Costs to fulfill include labor, materials, subcontractors’ costs, other direct costs and an allocation of indirect costs.

For a small portion of our business in which our services are delivered in the form of service maintenance agreements for existing systems to be repaired and maintained, as opposed to constructed, our performance obligation is to maintain the customer’s mechanical system for a specific period of time. Similar to construction jobs, we recognize revenue over time; however, for service maintenance agreements in which the full cost to provide services may not be known, we generally use an input method to recognize revenue, which is based on the amount of time we have provided our services out of the total time we have been contracted to perform those services. Our revenue recognition policy is further discussed in Note 3 “Revenue from Contracts with Customers.”

Accounts Receivable and Allowance for Credit Losses

Accounts Receivable and Allowance for Credit Losses

We are required to estimate and record the expected credit losses over the contractual life of our financial assets measured at amortized cost, including billed and unbilled accounts receivable, other receivables and contract assets. Accounts receivable include amounts from work completed in which we have billed or have an unconditional right to bill our customers. Our trade receivables are contractually due in less than a year.

We estimate our credit losses using a loss-rate method for each of our identified portfolio segments. Our portfolio segments are construction, service and other. While our construction and service financial assets are often with the same subset of customers and industries, our construction financial assets will generally have a lower loss-rate than service financial assets due to lien rights, which we are more likely to have on construction jobs. These lien rights result in lower credit loss expenses on average compared to receivables that do not have lien rights. Financial assets classified as Other include receivables that are not related to our core revenue producing activities, such as receivables related to our acquisition activity from former owners, our vendor rebate program or receivables for estimated losses in excess of our insurance deductible, which are accrued with a corresponding accrued insurance liability.

Loss rates for our portfolios are based on numerous factors, including our history of credit loss expense by portfolio, the financial strength of our customers and counterparties in each portfolio, the aging of our receivables, our expectation of likelihood of payment, macroeconomic trends in the U.S. and the current and forecasted non-residential construction market trends in the U.S.

In addition to the loss-rate calculations discussed above, we also record allowance for credit losses for specific receivables that are deemed to have a higher risk profile than the rest of the respective pool of receivables (e.g., when we hold concerns about a specific customer going bankrupt and no longer being able to pay the receivables due to us).

Income Taxes

Income Taxes

We conduct business throughout the United States in virtually all fifty states. Our effective tax rate changes based upon our relative profitability, or lack thereof, in states with varying tax rates and rules. In addition, discrete items such as tax law changes, judgments and legal structures, can impact our effective tax rate. These items can also include the tax treatment for impairment of goodwill and other intangible assets, changes in fair value of acquisition-related assets and liabilities, uncertain tax positions, and accounting for losses associated with underperforming operations.

In early October 2020, we filed amended federal returns for 2016, 2017 and 2018 primarily to claim the credit for increasing research activities (the “R&D tax credit”) requesting refunds of $9.8 million, $9.5 million and $11.9 million, respectively. The $31.2 million of refunds requested was offset by unrecognized tax benefits of $28.8 million due to the uncertainty of the outcome of an Internal Revenue Service (“IRS”) examination. The R&D tax credit had no material impact on our effective tax rates for the 2020 and 2021 calendar years.

Following an IRS survey of previously filed refund claims for the 2016, 2017 and 2018 tax years, the Joint Committee on Taxation approved such refunds in late January 2022. As a result, our benefit for income taxes in the first quarter of 2022 included a $28.8 million reduction in unrecognized tax benefits plus approximately $1.6 million of net interest income on the refunds.

Our benefit for income taxes in the first quarter of 2022 was further increased by $26.8 million plus approximately $0.1 million of net interest income on the expected refunds due to our intention to claim the R&D tax credit for the 2019, 2020 and 2021 tax years. Additionally, we have included an estimate for the R&D tax credit in the computation of our annual effective tax rate for the current year and will continue to do so for the foreseeable future.

Financial Instruments

Financial Instruments

Our financial instruments consist of cash and cash equivalents, accounts receivable, other receivables, accounts payable and life insurance policies, for which we deem the carrying values approximate their fair value due to the short-term nature of these instruments, as well as notes to former owners, a revolving credit facility and a term loan. We believe the carrying value of our debt associated with our senior credit facility approximates its fair value due to the variable rate on such debt.

Investments

Investments

We have a $1.2 million investment with a fair value that is not readily determinable and is recorded at cost. This investment is included in “Other Noncurrent Assets” in our Consolidated Balance Sheet and is reviewed quarterly for impairment. We did not recognize any impairments in the current year related to this investment.

Leases

We lease certain facilities, vehicles and equipment primarily under noncancelable operating leases. The most significant portion of these noncancelable operating leases are for the facilities occupied by our corporate office and our operating locations. We have finance leases on vehicles that are not material to our consolidated financial position. Leases with an initial term of 12 months or less are not recorded in the Balance Sheet. We do not separate lease

components from their associated non-lease components pursuant to lease accounting guidance. We have certain leases with variable payments based on an index as well as some short-term leases on equipment and facilities. Variable lease expense and short-term lease expense were not material to our financial statements and aggregated to $4.1 million and $1.9 million in the first three months of 2022 and 2021, respectively. Lease right-of-use assets and liabilities are recognized at commencement date based on the present value of lease payments over the lease term. As most of our leases do not provide an implicit rate, we generally use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments. The weighted average discount rate for our operating leases as of both March 31, 2022 and December 31, 2021 was 4.0%. We recognize operating lease expense, including escalating lease payments and lease incentives, on a straight-line basis over the lease term. Operating lease expense for the three months ended March 31, 2022 and 2021 was $10.4 million and $7.2 million, respectively.

The lease terms generally range from three to ten years. Some leases include one or more options to renew, which may be exercised to extend the lease term. We include the exercise of lease renewal options in the lease term when it is reasonably certain that we will exercise the option and such exercise is at our sole discretion. The weighted average remaining lease term for our operating leases was 8.4 years at March 31, 2022 and 8.7 years at December 31, 2021.

A majority of the Company’s real property leases are with individuals or entities with whom we have no other business relationship. However, in certain instances the Company enters into real property leases with current or former employees. Rent paid to related parties for the three months ended March 31, 2022 and 2021 was approximately $1.7 million and $1.3 million, respectively.

If we decide to cancel or terminate a lease before the end of its term, we would typically owe the lessor the remaining lease payments under the term of the lease. Our lease agreements do not contain any material residual value guarantees or material restrictive covenants. On rare occasions, we rent or sublease certain real estate assets that we no longer use to third parties.

XML 31 R21.htm IDEA: XBRL DOCUMENT v3.22.1
Revenue from Contracts with Customers (Tables)
3 Months Ended
Mar. 31, 2022
Revenue from Contracts with Customers  
Schedule of disaggregation of revenue See details in the following tables (dollars in thousands):

Three Months Ended March 31,

Revenue by Service Provided

   

   

2022

   

2021

Mechanical Services

$

682,511

   

77.1

%

$

565,620

   

84.5

%

Electrical Services

202,705

22.9

%

104,141

15.5

%

Total

$

885,216

100.0

%

$

669,761

100.0

%

Three Months Ended March 31,

Revenue by Type of Customer

2022

2021

 

Industrial

$

410,184

46.3

%

$

269,583

40.3

%

Education

89,446

10.1

%

92,457

13.8

%

Office Buildings

75,115

8.5

%

78,996

11.8

%

Healthcare

134,795

15.2

%

95,091

14.2

%

Government

57,465

6.5

%

43,165

6.4

%

Retail, Restaurants and Entertainment

65,582

7.4

%

44,576

6.7

%

Multi-Family and Residential

24,442

2.8

%

24,660

3.7

%

Other

28,187

3.2

%

21,233

3.1

%

Total

$

885,216

100.0

%

$

669,761

100.0

%

Three Months Ended March 31,

Revenue by Activity Type

2022

2021

 

New Construction

$

429,418

48.5

%

$

302,061

45.1

%

Existing Building Construction

259,285

29.3

%

216,601

32.3

%

Service Projects

76,252

8.6

%

60,060

9.0

%

Service Calls, Maintenance and Monitoring

120,261

13.6

%

91,039

13.6

%

Total

$

885,216

100.0

%

$

669,761

100.0

%

Schedule of contract assets and liabilities

The following table presents the changes in contract assets and contract liabilities (in thousands):

Three Months Ended March 31,

Year Ended December 31,

2022

2021

Contract

    

Contract

Contract

    

Contract

Assets

Liabilities

Assets

Liabilities

Balance at beginning of period

$

29,900

$

307,380

$

18,622

$

226,237

Change due to acquisitions / disposals

(10)

52

10,356

36,523

Change related to credit allowance

31

(5)

Other changes in the period

(11,608)

21,135

927

44,620

Balance at end of period

$

18,313

$

328,567

$

29,900

 

$

307,380

XML 32 R22.htm IDEA: XBRL DOCUMENT v3.22.1
Fair Value Measurements (Tables)
3 Months Ended
Mar. 31, 2022
Fair Value Measurements  
Summary of fair values and levels within the fair value hierarchy in which the fair value measurements fall for assets and liabilities measured on a recurring basis

The following table summarizes the fair values, and levels within the fair value hierarchy in which the fair value measurements are included, for assets and liabilities measured on a recurring basis as of March 31, 2022 and December 31, 2021 (in thousands):

Fair Value Measurements at March 31, 2022

    

Level 1

    

Level 2

    

Level 3

    

Total

Cash and cash equivalents

$

115,615

$

$

$

115,615

Life insurance—cash surrender value

$

$

6,358

$

$

6,358

Contingent earn-out obligations

$

$

$

28,275

$

28,275

Fair Value Measurements at December 31, 2021

    

Level 1

    

Level 2

    

Level 3

    

Total

Cash and cash equivalents

$

58,776

$

$

$

58,776

Life insurance—cash surrender value

$

$

6,643

$

$

6,643

Contingent earn-out obligations

$

$

$

34,114

$

34,114

Schedule of reconciliation of the fair value of contingent earn-out obligations that use significant unobservable inputs (Level 3)

The table below presents a reconciliation of the fair value of our contingent earn-out obligations that use significant unobservable inputs (Level 3) (in thousands):

    

Three Months Ended

Year Ended

    

March 31, 2022

December 31, 2021

Balance at beginning of period

    

$

34,114

$

25,979

 

Issuances

 

 

19,949

Settlements

(1,751)

(3,994)

Adjustments to fair value

 

(4,088)

 

(7,820)

Balance at end of period

$

28,275

$

34,114

XML 33 R23.htm IDEA: XBRL DOCUMENT v3.22.1
Goodwill and Identifiable Intangible Assets, Net (Tables)
3 Months Ended
Mar. 31, 2022
Goodwill and Identifiable Intangible Assets, Net  
Schedule of changes in the carrying amount of goodwill

The changes in the carrying amount of goodwill are as follows (in thousands):

Mechanical Services

Electrical Services

    

Segment

    

Segment

Total

Balance at December 31, 2020

$

307,448

$

156,944

$

464,392

Acquisitions and purchase price adjustments (See Note 5)

 

52,771

74,951

127,722

Impact of segment reorganization

1,101

(1,101)

Balance at December 31, 2021

361,320

230,794

592,114

Acquisitions and purchase price adjustments (See Note 5)

1,833

1,833

Balance at March 31, 2022

$

363,153

$

230,794

$

593,947

Schedule of future amortization expense of identifiable intangible assets

At March 31, 2022, future amortization expense of identifiable intangible assets is as follows (in thousands):

Year ending December 31—

    

    

2022 (remainder of the year)

    

$

33,715

 

2023

34,532

2024

 

32,343

2025

 

30,156

2026

 

29,312

Thereafter

 

131,932

Total

$

291,990

XML 34 R24.htm IDEA: XBRL DOCUMENT v3.22.1
Debt Obligations (Tables)
3 Months Ended
Mar. 31, 2022
Schedule of components of debt obligations

Debt obligations consist of the following (in thousands):

March 31,

December 31,

    

2022

    

2021

 

Revolving credit facility

$

260,000

$

220,000

Term loan

112,500

120,000

Notes to former owners

40,157

 

47,954

Finance lease liabilities (See Note 8)

266

Total principal amount

412,657

 

388,220

Less—unamortized debt issuance costs

(171)

(190)

Total debt, net of unamortized debt issuance costs

412,486

388,030

Less—current portion

(407)

 

(2,788)

Total long-term portion of debt, net

$

412,079

$

385,242

Summary of additional margins

Consolidated Total Indebtedness to

 

Credit Facility Adjusted EBITDA

 

    

Less than 1.00

    

1.00 to 1.75

    

1.75 to 2.50

    

2.50 or greater

 

Additional Per Annum Interest Margin Added Under:

Base Rate Loan Option

0.25

%  

0.50

%  

0.75

%  

1.00

%

Eurodollar Rate Loan Option

1.25

%

1.50

%

1.75

%

2.00

%

Notes to Former Owners  
Schedule of future principal payments of notes to former owners

Balance at

Range of Stated

    

March 31, 2022

Interest Rates

2022

    

$

407

 

2.5 - 3.5

%

2023

9,400

2.5

%

2024

 

10,800

2.5 - 3.0

%

2025

 

19,550

2.3 - 2.5

%

Total

$

40,157

XML 35 R25.htm IDEA: XBRL DOCUMENT v3.22.1
Leases (Tables)
3 Months Ended
Mar. 31, 2022
Leases  
Schedule of operating lease assets and liabilities

Finance lease right-of-use assets are included in “Property and equipment, net,” and current and long-term finance lease liabilities are included within “Current maturities of long-term debt” and “Long-term debt, net,” respectively, in the Consolidated Balance Sheet. The following table summarizes the operating lease assets and liabilities included in the Consolidated Balance Sheet as follows (in thousands):

March 31, 2022

December 31, 2021

Operating lease right-of-use assets

$

124,936

$

124,756

Operating lease liabilities:

Other current liabilities

$

19,571

$

19,050

Long-term operating lease liabilities

107,033

107,701

Total operating lease liabilities

$

126,604

$

126,751

Schedule of maturities of lease liabilities

The maturities of operating lease liabilities are as follows (in thousands):

Year ending December 31—

2022 (excluding the three months ended March 31, 2022)

$

18,388

2023

22,243

2024

19,735

2025

18,638

2026

15,646

Thereafter

55,274

Total Lease Payments

149,924

Less—Present Value Discount

(23,320)

Present Value of Operating Lease Liabilities

$

126,604

Schedule of supplemental information related to leases

Supplemental information related to operating leases was as follows (in thousands):

Three Months Ended March 31,

2022

2021

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

$

6,314

$

5,353

Operating lease right-of-use assets obtained in exchange for lease liabilities

$

4,914

$

6,432

XML 36 R26.htm IDEA: XBRL DOCUMENT v3.22.1
Stockholders' Equity (Tables)
3 Months Ended
Mar. 31, 2022
Stockholders' Equity  
Reconciliation of number of shares outstanding with the number of shares used in computing basic and diluted earnings per share

The following table reconciles the number of shares outstanding with the number of shares used in computing basic and diluted earnings per share for each of the periods presented (in thousands):

Three Months Ended

March 31,

    

2022

    

2021

 

Common shares outstanding, end of period

35,953

 

36,255

Effect of using weighted average common shares outstanding

123

 

31

Shares used in computing earnings per share—basic

36,076

 

36,286

Effect of shares issuable under stock option plans based on the treasury stock method

43

 

131

Effect of restricted and contingently issuable shares

69

 

82

Shares used in computing earnings per share—diluted

36,188

 

36,499

XML 37 R27.htm IDEA: XBRL DOCUMENT v3.22.1
Segment Information (Tables)
3 Months Ended
Mar. 31, 2022
Segment Information  
Summary of information about reportable segments The following table presents information about our reportable segments (in thousands):

Three Months Ended March 31, 2022

    

Mechanical Services

    

Electrical Services

    

Corporate

    

Consolidated

Revenue

$

682,511

$

202,705

$

$

885,216

Gross Profit

$

126,728

$

26,416

$

$

153,144

Three Months Ended March 31, 2021

    

Mechanical Services

    

Electrical Services

    

Corporate

    

Consolidated

Revenue

$

565,620

$

104,141

$

$

669,761

Gross Profit

$

108,128

$

15,341

$

$

123,469

XML 38 R28.htm IDEA: XBRL DOCUMENT v3.22.1
Summary of Significant Accounting Policies and Estimates - Income Taxes (Details) - USD ($)
$ in Thousands
1 Months Ended 3 Months Ended
Oct. 31, 2020
Mar. 31, 2022
Mar. 31, 2021
Income Tax Examination [Line Items]      
Reduced provision for income taxes   $ 28,800  
Provision for income taxes   (49,053) $ 8,737
Net interest income on the tax refunds   1,600  
Investment fair value   1,200  
Tax Year 2016 | R&D Tax Credit and 179D Deduction      
Income Tax Examination [Line Items]      
Provision for income taxes $ 9,800    
Tax Year 2017 | R&D Tax Credit and 179D Deduction      
Income Tax Examination [Line Items]      
Provision for income taxes 9,500    
Tax Year 2018 | R&D Tax Credit and 179D Deduction      
Income Tax Examination [Line Items]      
Provision for income taxes 11,900    
Total Tax Years 2016-2018      
Income Tax Examination [Line Items]      
Additions based on tax positions related to prior years 28,800    
Total Tax Years 2016-2018 | R&D Tax Credit and 179D Deduction      
Income Tax Examination [Line Items]      
Provision for income taxes $ 31,200    
Total Tax Years 2019-2021      
Income Tax Examination [Line Items]      
R&D tax credits   26,800  
Net interest income   $ 100  
XML 39 R29.htm IDEA: XBRL DOCUMENT v3.22.1
Revenue from Contracts with Customers - Disaggregation of Revenue (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Disaggregation of Revenue    
Revenue $ 885,216 $ 669,761
Percentage of revenue from contract with customer (as a percent) 100.00% 100.00%
Industrial    
Disaggregation of Revenue    
Revenue $ 410,184 $ 269,583
Percentage of revenue from contract with customer (as a percent) 46.30% 40.30%
Education    
Disaggregation of Revenue    
Revenue $ 89,446 $ 92,457
Percentage of revenue from contract with customer (as a percent) 10.10% 13.80%
Office Buildings    
Disaggregation of Revenue    
Revenue $ 75,115 $ 78,996
Percentage of revenue from contract with customer (as a percent) 8.50% 11.80%
Healthcare    
Disaggregation of Revenue    
Revenue $ 134,795 $ 95,091
Percentage of revenue from contract with customer (as a percent) 15.20% 14.20%
Government    
Disaggregation of Revenue    
Revenue $ 57,465 $ 43,165
Percentage of revenue from contract with customer (as a percent) 6.50% 6.40%
Retail, Restaurants and Entertainment    
Disaggregation of Revenue    
Revenue $ 65,582 $ 44,576
Percentage of revenue from contract with customer (as a percent) 7.40% 6.70%
Multi-Family and Residential    
Disaggregation of Revenue    
Revenue $ 24,442 $ 24,660
Percentage of revenue from contract with customer (as a percent) 2.80% 3.70%
Other    
Disaggregation of Revenue    
Revenue $ 28,187 $ 21,233
Percentage of revenue from contract with customer (as a percent) 3.20% 3.10%
New Construction    
Disaggregation of Revenue    
Revenue $ 429,418 $ 302,061
Percentage of revenue from contract with customer (as a percent) 48.50% 45.10%
Existing Building Construction    
Disaggregation of Revenue    
Revenue $ 259,285 $ 216,601
Percentage of revenue from contract with customer (as a percent) 29.30% 32.30%
Service Projects    
Disaggregation of Revenue    
Revenue $ 76,252 $ 60,060
Percentage of revenue from contract with customer (as a percent) 8.60% 9.00%
Service Calls, Maintenance and Monitoring    
Disaggregation of Revenue    
Revenue $ 120,261 $ 91,039
Percentage of revenue from contract with customer (as a percent) 13.60% 13.60%
Mechanical Services    
Disaggregation of Revenue    
Revenue $ 682,511 $ 565,620
Percentage of revenue from contract with customer (as a percent) 77.10% 84.50%
Electrical Services    
Disaggregation of Revenue    
Revenue $ 202,705 $ 104,141
Percentage of revenue from contract with customer (as a percent) 22.90% 15.50%
XML 40 R30.htm IDEA: XBRL DOCUMENT v3.22.1
Revenue from Contracts with Customers - Contract Assets and Liabilities (Details) - USD ($)
$ in Thousands
3 Months Ended 12 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Dec. 31, 2021
Contract Assets      
Change due to acquisitions / disposals $ (10)   $ 10,356
Change related to credit allowance 31   (5)
Other changes in the period (11,608)   927
Contract Liabilities      
Change due to acquisitions / disposals 52   36,523
Other changes in the period 21,135   44,620
Contract assets:      
Balance at beginning of period 29,900 $ 18,622 18,622
Balance at end of period 18,313   29,900
Costs and estimated earnings in excess of billings, less allowance for credit losses 18,313   29,900
Contract liabilities:      
Balance at beginning of period 307,380 226,237 226,237
Balance at end of period 328,567   307,380
Total contract liabilities 328,567   $ 307,380
Revenue related to our contract liabilities $ 220,600    
Calculated under Revenue Guidance in Effect before Topic 606 [Member]      
Contract liabilities:      
Revenue related to our contract liabilities   $ 167,800  
XML 41 R31.htm IDEA: XBRL DOCUMENT v3.22.1
Revenue from Contracts with Customers - Remaining Performance Obligations (Details)
$ in Millions
3 Months Ended
Mar. 31, 2022
USD ($)
Remaining Performance Obligations  
The term of the renewable service maintenance agreements (in years) 1 year
Practical Expedient true
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2022-04-01  
Remaining Performance Obligations  
Remaining performance obligations $ 2,730
Expected timing of performance obligations 12 months
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2022-04-01 | Minimum  
Remaining Performance Obligations  
Expected percentage of remaining performance obligations 80.00%
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2022-04-01 | Maximum  
Remaining Performance Obligations  
Expected percentage of remaining performance obligations 85.00%
XML 42 R32.htm IDEA: XBRL DOCUMENT v3.22.1
Fair Value Measurements (Details)
$ in Thousands
3 Months Ended 12 Months Ended
Mar. 31, 2022
USD ($)
employee
Mar. 31, 2021
USD ($)
Dec. 31, 2021
USD ($)
Fair Value Measurements      
Number of employees covered under life insurance policies | employee 109    
Combined face value of life insurance policies $ 74,700    
Cash surrender value $ 6,400   $ 6,600
Minimum      
Fair Value Measurements      
Weighted average cost of capital 10.50%    
Maximum      
Fair Value Measurements      
Weighted average cost of capital 16.50%    
Contingent earn-out obligations      
Reconciliation of the fair value of contingent earn-out obligations that use significant unobservable inputs (Level 3)      
Balance at beginning of period $ 34,114 $ 25,979 25,979
Issuances     19,949
Settlements (1,751)   (3,994)
Adjustments to fair value (4,088)   (7,820)
Balance at end of period 28,275   34,114
Recurring basis | Total      
Fair Value Measurements      
Cash and cash equivalents 115,615   58,776
Life insurance-cash surrender value 6,358   6,643
Contingent earn-out obligations 28,275   34,114
Recurring basis | Quoted Market Prices In Active Markets for Identical Assets (Level 1)      
Fair Value Measurements      
Cash and cash equivalents 115,615   58,776
Recurring basis | Significant Other Observable Inputs (Level 2)      
Fair Value Measurements      
Life insurance-cash surrender value 6,358   6,643
Recurring basis | Significant Unobservable Inputs (Level 3)      
Fair Value Measurements      
Contingent earn-out obligations 28,275   $ 34,114
Interest Rate Swap      
Fair Value Measurements      
Net loss on derivative 100 $ 100  
Interest Rate Swap | Not Designated as Hedging Instrument, Economic Hedge [Member]      
Fair Value Measurements      
Notional amount $ 80,000    
XML 43 R33.htm IDEA: XBRL DOCUMENT v3.22.1
Acquisitions (Details) - USD ($)
$ in Thousands
Aug. 01, 2021
Mar. 31, 2022
Dec. 31, 2021
Dec. 31, 2020
Recognized amounts of identifiable assets acquired and liabilities assumed:        
Goodwill   $ 593,947 $ 592,114 $ 464,392
Amteck        
Consideration transferred:        
Cash paid at closing $ 107,400      
Working capital adjustment 8,400      
Notes issued to former owners 10,000      
Estimated fair value of contingent earn-out payments 12,900      
Identifiable intangible assets 112,800      
Total consideration transferred $ 138,600      
XML 44 R34.htm IDEA: XBRL DOCUMENT v3.22.1
Acquisitions - Other Acquisitions (Details) - USD ($)
$ in Millions
3 Months Ended
Dec. 31, 2021
Dec. 01, 2021
Mar. 31, 2021
MEP Holdings      
Acquisitions      
Total purchase price $ 57.3    
Purchase price paid in cash 45.2    
Promissory note payable 7.6    
Mechanical Contractor Kentucky      
Acquisitions      
Total purchase price 20.6    
Mechanical Contractor Indiana      
Acquisitions      
Total purchase price $ 4.7    
Ivey      
Acquisitions      
Total purchase price   $ 79.1  
Purchase price paid in cash   64.1  
Promissory note payable   8.0  
Other amount payable   $ 0.4  
Mechanical Contractor Utah      
Acquisitions      
Total purchase price     $ 18.1
XML 45 R35.htm IDEA: XBRL DOCUMENT v3.22.1
Goodwill and Identifiable Intangible Assets, Net - Changes in Carrying Amount of Goodwill (Details) - USD ($)
$ in Thousands
3 Months Ended 12 Months Ended
Mar. 31, 2022
Dec. 31, 2021
Changes in the carrying amount of goodwill    
Balance at beginning of year $ 592,114 $ 464,392
Acquisitions and purchase price adjustments (See Note 5) 1,833 127,722
Balance at end of period 593,947 592,114
Mechanical Services Segment    
Changes in the carrying amount of goodwill    
Balance at beginning of year 361,320 307,448
Acquisitions and purchase price adjustments (See Note 5) 1,833 52,771
Impact of segment reorganization   1,101
Balance at end of period 363,153 361,320
Electrical Services Industry    
Changes in the carrying amount of goodwill    
Balance at beginning of year 230,794 156,944
Acquisitions and purchase price adjustments (See Note 5)   74,951
Impact of segment reorganization   (1,101)
Balance at end of period $ 230,794 $ 230,794
XML 46 R36.htm IDEA: XBRL DOCUMENT v3.22.1
Goodwill and Identifiable Intangible Assets, Net - Identifiable Intangible Assets, Net (Details)
$ in Thousands
Mar. 31, 2022
USD ($)
Future amortization expense of identifiable intangible assets  
2022 (remainder of the year) $ 33,715
2023 34,532
2024 32,343
2025 30,156
2026 29,312
Thereafter 131,932
Total $ 291,990
XML 47 R37.htm IDEA: XBRL DOCUMENT v3.22.1
Goodwill and Identifiable Intangible Assets, Net - Additional Information (Details) - USD ($)
$ in Thousands
3 Months Ended
Dec. 31, 2021
Mar. 31, 2022
Dec. 31, 2020
Goodwill      
Goodwill $ 592,114 $ 593,947 $ 464,392
Walker      
Goodwill      
Fair values in excess of carrying value (as a percent) 32.00%    
Goodwill   $ 96,800  
XML 48 R38.htm IDEA: XBRL DOCUMENT v3.22.1
Debt Obligations (Details) - USD ($)
$ in Thousands
Mar. 31, 2022
Dec. 31, 2021
Debt Obligations    
Finance lease liabilities (See Note 8)   $ 266
Total principal amount $ 412,657 388,220
Less-unamortized debt issuance costs (171) (190)
Total debt, net of unamortized debt issuance costs 412,486 388,030
Less-current portion 407 2,788
Total long-term portion of debt, net 412,079 385,242
Revolving credit facility    
Debt Obligations    
Total principal amount 260,000 220,000
Term loan    
Debt Obligations    
Total principal amount 112,500 120,000
Notes to Former Owners    
Debt Obligations    
Outstanding balance $ 40,157 $ 47,954
XML 49 R39.htm IDEA: XBRL DOCUMENT v3.22.1
Debt Obligations - Other (Details)
$ in Thousands
3 Months Ended
Mar. 31, 2022
USD ($)
item
Mar. 31, 2021
USD ($)
Dec. 31, 2021
USD ($)
Debt Obligations      
Payments on term loan $ 7,500 $ 7,500  
Outstanding balance 412,657   $ 388,220
Reconciliation of Credit Facility Adjusted EBITDA to net income      
Net income 86,762 26,491  
Provision for income taxes (49,053) 8,737  
Stock-based compensation 3,996 $ 4,711  
Revolving credit facility      
Debt Obligations      
Borrowing capacity 450,000    
Outstanding borrowings 260,000    
Outstanding balance 260,000   220,000
Letters of credit amount outstanding 55,600    
Credit available $ 134,400    
Principal financial covenants      
Number of interest rate options | item 2    
Other disclosures      
Range of stated interest rates (as a percent) 1.90%    
Revolving credit facility | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: Less than 1.00      
Debt Instrument, Interest Rate, Effective Percentage [Abstract]      
Letter of credit fees (as a percent) 1.25%    
Commitment fees payable on unused portion of the facility (as a percent) 0.20%    
Revolving credit facility | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 2.50 or greater      
Debt Instrument, Interest Rate, Effective Percentage [Abstract]      
Letter of credit fees (as a percent) 2.00%    
Commitment fees payable on unused portion of the facility (as a percent) 0.35%    
Revolving credit facility | Base Rate | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: Less than 1.00      
Debt Instrument, Interest Rate, Effective Percentage [Abstract]      
Additional per annum interest margin (as a percent) 0.25%    
Revolving credit facility | Base Rate | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 1.00 to 1.75      
Debt Instrument, Interest Rate, Effective Percentage [Abstract]      
Additional per annum interest margin (as a percent) 0.50%    
Revolving credit facility | Base Rate | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 1.75 to 2.50      
Debt Instrument, Interest Rate, Effective Percentage [Abstract]      
Additional per annum interest margin (as a percent) 0.75%    
Revolving credit facility | Base Rate | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 2.50 or greater      
Debt Instrument, Interest Rate, Effective Percentage [Abstract]      
Additional per annum interest margin (as a percent) 1.00%    
Revolving credit facility | Eurodollar rate | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: Less than 1.00      
Debt Instrument, Interest Rate, Effective Percentage [Abstract]      
Additional per annum interest margin (as a percent) 1.25%    
Revolving credit facility | Eurodollar rate | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 1.00 to 1.75      
Debt Instrument, Interest Rate, Effective Percentage [Abstract]      
Additional per annum interest margin (as a percent) 1.50%    
Revolving credit facility | Eurodollar rate | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 1.75 to 2.50      
Debt Instrument, Interest Rate, Effective Percentage [Abstract]      
Additional per annum interest margin (as a percent) 1.75%    
Revolving credit facility | Eurodollar rate | Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 2.50 or greater      
Debt Instrument, Interest Rate, Effective Percentage [Abstract]      
Additional per annum interest margin (as a percent) 2.00%    
Amended senior revolving credit facility      
Debt Obligations      
Borrowing capacity $ 562,500   600,000
Line of credit borrowing capacity accordion option 150,000    
Payments on term loan 37,500    
Term loan      
Debt Obligations      
Borrowing capacity 150,000    
Outstanding balance $ 112,500   120,000
Other disclosures      
Range of stated interest rates (as a percent) 2.00%    
Notes to Former Owners      
Other disclosures      
Cumulative number of companies acquired | item 9    
Outstanding balance $ 40,157   $ 47,954
Letter of Credit      
Debt Obligations      
Borrowing capacity $ 160,000    
XML 50 R40.htm IDEA: XBRL DOCUMENT v3.22.1
Debt Obligations - Notes to Former Owners (Details) - Notes to Former Owners - USD ($)
$ in Thousands
Mar. 31, 2022
Dec. 31, 2021
Future principal payments of long-term debt    
Notes issued to former owners $ 40,157 $ 47,954
2022    
Future principal payments of long-term debt    
Notes issued to former owners $ 407  
2022 | Minimum    
Future principal payments of long-term debt    
Stated interest rate (as a percent) 2.50%  
2022 | Maximum    
Future principal payments of long-term debt    
Stated interest rate (as a percent) 3.50%  
2023    
Future principal payments of long-term debt    
Notes issued to former owners $ 9,400  
Stated interest rate (as a percent) 2.50%  
2024    
Future principal payments of long-term debt    
Notes issued to former owners $ 10,800  
2024 | Minimum    
Future principal payments of long-term debt    
Stated interest rate (as a percent) 2.50%  
2024 | Maximum    
Future principal payments of long-term debt    
Stated interest rate (as a percent) 3.00%  
2025    
Future principal payments of long-term debt    
Notes issued to former owners $ 19,550  
2025 | Minimum    
Future principal payments of long-term debt    
Stated interest rate (as a percent) 2.30%  
2025 | Maximum    
Future principal payments of long-term debt    
Stated interest rate (as a percent) 2.50%  
XML 51 R41.htm IDEA: XBRL DOCUMENT v3.22.1
Leases (Details)
$ in Thousands
3 Months Ended
Mar. 31, 2022
USD ($)
Option
Mar. 31, 2021
USD ($)
Dec. 31, 2021
USD ($)
Lessee, Lease, Description [Line Items]      
Finance lease liability     $ 266
Variable lease expense and short-term lease expenses $ 4,100 $ 1,900  
Weighted average discount rate for operating leases 4.00%   4.00%
Operating lease expense $ 10,400 7,200  
Weighted average remaining lease term 8 years 4 months 24 days   8 years 8 months 12 days
Rent paid to related parties $ 1,700 $ 1,300  
Existence of option to extend true    
Minimum      
Lessee, Lease, Description [Line Items]      
Lease term for operating lease 3 years    
Number of options to renew | Option 1    
Maximum      
Lessee, Lease, Description [Line Items]      
Lease term for operating lease 10 years    
XML 52 R42.htm IDEA: XBRL DOCUMENT v3.22.1
Leases - Summary of Operating Lease Assets and Liabilities (Details) - USD ($)
$ in Thousands
Mar. 31, 2022
Dec. 31, 2021
Summary of lease asset and liabilities    
Operating lease right-of-use assets $ 124,936 $ 124,756
Operating lease liabilities:    
Other current liabilities $ 19,571 $ 19,050
Operating Lease, Liability, Current, Statement of Financial Position [Extensible List] Other Liabilities, Current Other Liabilities, Current
Long-term operating lease liabilities $ 107,033 $ 107,701
Total operating lease liabilities $ 126,604 $ 126,751
XML 53 R43.htm IDEA: XBRL DOCUMENT v3.22.1
Leases - Maturities of Lease Liabilities (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Dec. 31, 2021
Maturities of lease liabilities:      
2022 (excluding the three months ended March 31, 2022) $ 18,388    
2023 22,243    
2024 19,735    
2025 18,638    
2026 15,646    
Thereafter 55,274    
Total Lease Payments 149,924    
Less-Present Value Discount (23,320)    
Present Value of Lease Liabilities 126,604   $ 126,751
Supplemental information related to leases:      
Cash paid for amounts included in the measurement of operating lease liabilities 6,314 $ 5,353  
Operating lease right-of-use assets obtained in exchange for lease liabilities $ 4,914 $ 6,432  
XML 54 R44.htm IDEA: XBRL DOCUMENT v3.22.1
Commitments and Contingencies - Other and Bonds (Details)
$ in Millions
3 Months Ended
Mar. 31, 2022
USD ($)
item
Obligation to perform subcontract work | Pending Litigation  
Commitments and Contingencies  
Letter of intent under dispute | item 2
Damages claimed $ 9
Obligation to perform subcontract work | Customer | Pending Litigation  
Commitments and Contingencies  
Damages claimed $ 12
Surety | Minimum  
Surety  
Percentage of business which has required bonds 15.00%
Surety | Maximum  
Surety  
Percentage of business which has required bonds 25.00%
XML 55 R45.htm IDEA: XBRL DOCUMENT v3.22.1
Stockholders' Equity - Incentive and Other (Details) - USD ($)
$ / shares in Units, $ in Thousands, shares in Millions
3 Months Ended 180 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Mar. 31, 2022
Dec. 08, 2020
Mar. 29, 2007
Share Repurchase Program          
Share repurchase $ 14,097 $ 885      
Anti-dilutive securities excluded from computation of earnings per share amount (in shares) 0.0 0.1      
Stock Repurchase Program 2007          
Share Repurchase Program          
Number of shares of outstanding common stock authorized to be acquired under a stock repurchase program 10.3   10.3   1.0
Additional number of shares authorized for repurchase       0.7  
Share repurchase (in shares)     9.8    
Average price (in dollars per share) $ 87.23   $ 22.77    
Share repurchase $ 14,100        
Maximum | Stock Repurchase Program 2007          
Share Repurchase Program          
Share repurchase (in shares) 0.2        
XML 56 R46.htm IDEA: XBRL DOCUMENT v3.22.1
Stockholders' Equity - Number of Shares (Details) - shares
shares in Thousands
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Reconciliation of the number of shares outstanding with the number of shares used in computing basic and diluted earnings per share    
Common shares outstanding, end of period 35,953 36,255
Effect of using weighted average common shares outstanding 123 31
Shares used in computing earnings per share-basic 36,076 36,286
Effect of shares issuable under stock option plans based on the treasury stock method 43 131
Effect of restricted and contingently issuable shares 69 82
Shares used in computing earnings per share-diluted 36,188 36,499
XML 57 R47.htm IDEA: XBRL DOCUMENT v3.22.1
Segment Information (Details)
$ in Thousands
3 Months Ended
Mar. 31, 2022
USD ($)
segment
Mar. 31, 2021
USD ($)
Dec. 31, 2021
USD ($)
Segment Information      
Number of reportable segments | segment 2    
Revenue $ 885,216 $ 669,761  
Gross Profit 153,144 123,469  
Capital Expenditures 9,192 4,812  
Total Assets 2,308,413   $ 2,209,114
Operating | Mechanical Services Segment      
Segment Information      
Revenue 682,511 565,620  
Gross Profit 126,728 108,128  
Operating | Electrical Services Industry      
Segment Information      
Revenue 202,705 104,141  
Gross Profit $ 26,416 $ 15,341  
XML 58 R48.htm IDEA: XBRL DOCUMENT v3.22.1
Subsequent Event (Details)
$ in Millions
Apr. 01, 2022
USD ($)
Subsequent events | Atlantic  
Subsequent Events  
Expected revenue, acquired company $ 50
XML 59 fix-20220331x10q_htm.xml IDEA: XBRL DOCUMENT 0001035983 fix:TaxYears2016To2018Member 2020-10-01 2020-10-31 0001035983 srt:MaximumMember fix:StockRepurchaseProgram2007Member 2022-01-01 2022-03-31 0001035983 fix:StockRepurchaseProgram2007Member 2007-03-29 2022-03-31 0001035983 fix:StockRepurchaseProgram2007Member 2022-03-31 0001035983 fix:StockRepurchaseProgram2007Member 2007-03-29 0001035983 us-gaap:TreasuryStockMember 2022-03-31 0001035983 us-gaap:RetainedEarningsMember 2022-03-31 0001035983 us-gaap:AdditionalPaidInCapitalMember 2022-03-31 0001035983 us-gaap:TreasuryStockMember 2021-12-31 0001035983 us-gaap:RetainedEarningsMember 2021-12-31 0001035983 us-gaap:AdditionalPaidInCapitalMember 2021-12-31 0001035983 us-gaap:TreasuryStockMember 2021-03-31 0001035983 us-gaap:RetainedEarningsMember 2021-03-31 0001035983 us-gaap:AdditionalPaidInCapitalMember 2021-03-31 0001035983 us-gaap:TreasuryStockMember 2020-12-31 0001035983 us-gaap:RetainedEarningsMember 2020-12-31 0001035983 us-gaap:AdditionalPaidInCapitalMember 2020-12-31 0001035983 fix:SubordinateDebtAndPromissoryNoteMember 2022-01-01 2022-03-31 0001035983 srt:MinimumMember 2022-04-01 2022-03-31 0001035983 srt:MaximumMember 2022-04-01 2022-03-31 0001035983 2022-04-01 2022-03-31 0001035983 fix:AmendedSeniorRevolvingCreditFacilityMember 2022-01-01 2022-03-31 0001035983 fix:StockRepurchaseProgram2007Member 2022-01-01 2022-03-31 0001035983 fix:SubordinateDebtAndPromissoryNoteMember fix:MaturityYearThreeMember 2022-03-31 0001035983 fix:SubordinateDebtAndPromissoryNoteMember fix:MaturityYearOneMember 2022-03-31 0001035983 fix:SubordinateDebtAndPromissoryNoteMember fix:MaturityYearFourMember 2022-03-31 0001035983 fix:SubordinateDebtAndPromissoryNoteMember 2021-12-31 0001035983 fix:CustomerMember us-gaap:PendingLitigationMember us-gaap:PerformanceGuaranteeMember 2022-01-01 2022-03-31 0001035983 us-gaap:LetterOfCreditMember 2022-03-31 0001035983 fix:AmendedSeniorRevolvingCreditFacilityMember 2021-12-31 0001035983 srt:MinimumMember 2022-03-31 0001035983 srt:MaximumMember 2022-03-31 0001035983 fix:ResearchAndDevelopmentTaxCreditAnd179DeductionMember us-gaap:TaxYear2018Member 2020-10-01 2020-10-31 0001035983 fix:ResearchAndDevelopmentTaxCreditAnd179DeductionMember us-gaap:TaxYear2017Member 2020-10-01 2020-10-31 0001035983 fix:ResearchAndDevelopmentTaxCreditAnd179DeductionMember us-gaap:TaxYear2016Member 2020-10-01 2020-10-31 0001035983 fix:ResearchAndDevelopmentTaxCreditAnd179DeductionMember fix:TaxYears2016To2018Member 2020-10-01 2020-10-31 0001035983 us-gaap:OperatingSegmentsMember fix:MechanicalServicesIndustryMember 2022-01-01 2022-03-31 0001035983 us-gaap:OperatingSegmentsMember fix:ElectricalServicesIndustryMember 2022-01-01 2022-03-31 0001035983 us-gaap:OperatingSegmentsMember fix:MechanicalServicesIndustryMember 2021-01-01 2021-03-31 0001035983 us-gaap:OperatingSegmentsMember fix:ElectricalServicesIndustryMember 2021-01-01 2021-03-31 0001035983 fix:MechanicalServicesIndustryMember 2022-01-01 2022-03-31 0001035983 fix:MechanicalServicesIndustryMember 2021-01-01 2021-12-31 0001035983 fix:ElectricalServicesIndustryMember 2021-01-01 2021-12-31 0001035983 fix:WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember 2022-03-31 0001035983 fix:MechanicalServicesIndustryMember 2022-03-31 0001035983 fix:ElectricalServicesIndustryMember 2022-03-31 0001035983 fix:MechanicalServicesIndustryMember 2021-12-31 0001035983 fix:ElectricalServicesIndustryMember 2021-12-31 0001035983 fix:MechanicalServicesIndustryMember 2020-12-31 0001035983 fix:ElectricalServicesIndustryMember 2020-12-31 0001035983 fix:ContingentConsiderationObligationsMember 2022-03-31 0001035983 fix:ContingentConsiderationObligationsMember 2021-12-31 0001035983 fix:ContingentConsiderationObligationsMember 2020-12-31 0001035983 fix:ContingentConsiderationObligationsMember 2022-01-01 2022-03-31 0001035983 fix:ContingentConsiderationObligationsMember 2021-01-01 2021-12-31 0001035983 us-gaap:RetainedEarningsMember 2022-01-01 2022-03-31 0001035983 us-gaap:RetainedEarningsMember 2021-01-01 2021-03-31 0001035983 us-gaap:RevolvingCreditFacilityMember 2022-03-31 0001035983 fix:TermLoanMember 2022-03-31 0001035983 us-gaap:RevolvingCreditFacilityMember 2021-12-31 0001035983 fix:TermLoanMember 2021-12-31 0001035983 srt:MinimumMember fix:SubordinateDebtAndPromissoryNoteMember fix:MaturityYearThreeMember 2022-03-31 0001035983 srt:MaximumMember fix:SubordinateDebtAndPromissoryNoteMember fix:MaturityYearThreeMember 2022-03-31 0001035983 srt:MinimumMember fix:SubordinateDebtAndPromissoryNoteMember fix:MaturityYearOneMember 2022-03-31 0001035983 srt:MaximumMember fix:SubordinateDebtAndPromissoryNoteMember fix:MaturityYearOneMember 2022-03-31 0001035983 srt:MinimumMember fix:SubordinateDebtAndPromissoryNoteMember fix:MaturityYearFourMember 2022-03-31 0001035983 srt:MaximumMember fix:SubordinateDebtAndPromissoryNoteMember fix:MaturityYearFourMember 2022-03-31 0001035983 fix:SubordinateDebtAndPromissoryNoteMember fix:MaturityYearTwoMember 2022-03-31 0001035983 us-gaap:RevolvingCreditFacilityMember us-gaap:EurodollarMember fix:DebtCovenantRatioRangeTwoMember 2022-01-01 2022-03-31 0001035983 us-gaap:RevolvingCreditFacilityMember us-gaap:BaseRateMember fix:DebtCovenantRatioRangeTwoMember 2022-01-01 2022-03-31 0001035983 us-gaap:RevolvingCreditFacilityMember us-gaap:EurodollarMember fix:DebtCovenantRatioRangeThreeMember 2022-01-01 2022-03-31 0001035983 us-gaap:RevolvingCreditFacilityMember us-gaap:BaseRateMember fix:DebtCovenantRatioRangeThreeMember 2022-01-01 2022-03-31 0001035983 us-gaap:RevolvingCreditFacilityMember us-gaap:EurodollarMember fix:DebtCovenantRatioRangeOneMember 2022-01-01 2022-03-31 0001035983 us-gaap:RevolvingCreditFacilityMember us-gaap:BaseRateMember fix:DebtCovenantRatioRangeOneMember 2022-01-01 2022-03-31 0001035983 us-gaap:RevolvingCreditFacilityMember us-gaap:EurodollarMember fix:DebtCovenantRatioRangeFourMember 2022-01-01 2022-03-31 0001035983 us-gaap:RevolvingCreditFacilityMember us-gaap:BaseRateMember fix:DebtCovenantRatioRangeFourMember 2022-01-01 2022-03-31 0001035983 us-gaap:CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member 2021-01-01 2021-03-31 0001035983 us-gaap:CommonStockMember 2022-03-31 0001035983 us-gaap:CommonStockMember 2021-12-31 0001035983 us-gaap:CommonStockMember 2021-03-31 0001035983 us-gaap:CommonStockMember 2020-12-31 0001035983 us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember 2022-03-31 0001035983 us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember 2021-12-31 0001035983 2021-03-31 0001035983 2020-12-31 0001035983 us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember 2022-03-31 0001035983 us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember 2021-12-31 0001035983 fix:MepHoldingCo.IncMember 2021-12-31 2021-12-31 0001035983 fix:MechanicalContractorKentuckyMember 2021-12-31 2021-12-31 0001035983 fix:MechanicalContractorIndianaMember 2021-12-31 2021-12-31 0001035983 fix:IveyMechanicalCompanyLlcMember 2021-12-01 2021-12-01 0001035983 fix:MechanicalContractorUtahMember 2021-01-01 2021-03-31 0001035983 srt:MaximumMember 2022-01-01 2022-03-31 0001035983 fix:StockRepurchaseProgram2007Member 2020-12-08 0001035983 us-gaap:AdditionalPaidInCapitalMember 2022-01-01 2022-03-31 0001035983 us-gaap:AdditionalPaidInCapitalMember 2021-01-01 2021-03-31 0001035983 us-gaap:TreasuryStockMember 2022-01-01 2022-03-31 0001035983 us-gaap:TreasuryStockMember 2021-01-01 2021-03-31 0001035983 us-gaap:OtherCustomerMember 2022-01-01 2022-03-31 0001035983 fix:ServiceProjectsMember 2022-01-01 2022-03-31 0001035983 fix:ServiceCallsMaintenanceAndMonitoringMember 2022-01-01 2022-03-31 0001035983 fix:RetailRestaurantsAndEntertainmentMember 2022-01-01 2022-03-31 0001035983 fix:OfficeBuildingCustomerMember 2022-01-01 2022-03-31 0001035983 fix:NewConstructionMember 2022-01-01 2022-03-31 0001035983 fix:MultiFamilyAndResidentialMember 2022-01-01 2022-03-31 0001035983 fix:MechanicalServicesMember 2022-01-01 2022-03-31 0001035983 fix:IndustrialPropertyCustomerMember 2022-01-01 2022-03-31 0001035983 fix:HealthcareSectorCustomerMember 2022-01-01 2022-03-31 0001035983 fix:GovernmentCustomerMember 2022-01-01 2022-03-31 0001035983 fix:ExistingBuildingConstructionMember 2022-01-01 2022-03-31 0001035983 fix:ElectricalServicesMember 2022-01-01 2022-03-31 0001035983 fix:EducationMember 2022-01-01 2022-03-31 0001035983 us-gaap:OtherCustomerMember 2021-01-01 2021-03-31 0001035983 fix:ServiceProjectsMember 2021-01-01 2021-03-31 0001035983 fix:ServiceCallsMaintenanceAndMonitoringMember 2021-01-01 2021-03-31 0001035983 fix:RetailRestaurantsAndEntertainmentMember 2021-01-01 2021-03-31 0001035983 fix:OfficeBuildingCustomerMember 2021-01-01 2021-03-31 0001035983 fix:NewConstructionMember 2021-01-01 2021-03-31 0001035983 fix:MultiFamilyAndResidentialMember 2021-01-01 2021-03-31 0001035983 fix:MechanicalServicesMember 2021-01-01 2021-03-31 0001035983 fix:IndustrialPropertyCustomerMember 2021-01-01 2021-03-31 0001035983 fix:HealthcareSectorCustomerMember 2021-01-01 2021-03-31 0001035983 fix:GovernmentCustomerMember 2021-01-01 2021-03-31 0001035983 fix:ExistingBuildingConstructionMember 2021-01-01 2021-03-31 0001035983 fix:ElectricalServicesMember 2021-01-01 2021-03-31 0001035983 fix:EducationMember 2021-01-01 2021-03-31 0001035983 fix:WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember 2021-10-01 2021-12-31 0001035983 srt:MinimumMember us-gaap:SuretyBondMember 2022-01-01 2022-03-31 0001035983 srt:MaximumMember us-gaap:SuretyBondMember 2022-01-01 2022-03-31 0001035983 srt:MinimumMember 2022-01-01 2022-03-31 0001035983 us-gaap:PendingLitigationMember us-gaap:PerformanceGuaranteeMember 2022-01-01 2022-03-31 0001035983 fix:AmendedSeniorRevolvingCreditFacilityMember 2022-03-31 0001035983 us-gaap:RevolvingCreditFacilityMember fix:DebtCovenantRatioRangeOneMember 2022-01-01 2022-03-31 0001035983 us-gaap:RevolvingCreditFacilityMember fix:DebtCovenantRatioRangeFourMember 2022-01-01 2022-03-31 0001035983 fix:TaxYears2019To2021Member 2022-01-01 2022-03-31 0001035983 us-gaap:InterestRateSwapMember 2022-01-01 2022-03-31 0001035983 us-gaap:InterestRateSwapMember 2021-01-01 2021-03-31 0001035983 us-gaap:InterestRateSwapMember us-gaap:NotDesignatedAsHedgingInstrumentEconomicHedgeMember 2022-03-31 0001035983 us-gaap:RevolvingCreditFacilityMember 2022-01-01 2022-03-31 0001035983 fix:SubordinateDebtAndPromissoryNoteMember 2022-03-31 0001035983 2022-03-31 0001035983 2021-12-31 0001035983 2021-01-01 2021-12-31 0001035983 2021-01-01 2021-03-31 0001035983 fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember 2021-08-01 0001035983 fix:AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember 2021-08-01 2021-08-01 0001035983 fix:AtlanticElectricLlcMember us-gaap:SubsequentEventMember 2022-04-01 2022-04-01 0001035983 us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember 2022-03-31 0001035983 us-gaap:EstimateOfFairValueFairValueDisclosureMember us-gaap:FairValueMeasurementsRecurringMember 2022-03-31 0001035983 us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember 2021-12-31 0001035983 us-gaap:EstimateOfFairValueFairValueDisclosureMember us-gaap:FairValueMeasurementsRecurringMember 2021-12-31 0001035983 2022-04-22 0001035983 2022-01-01 2022-03-31 shares iso4217:USD fix:item pure fix:employee fix:Option iso4217:USD shares fix:segment 0 0 http://fasb.org/us-gaap/2021-01-31#OtherLiabilitiesCurrent 0001035983 --12-31 2022 Q1 false P3Y http://fasb.org/us-gaap/2021-01-31#OtherLiabilitiesCurrent 10-Q true 2022-03-31 false 1-13011 COMFORT SYSTEMS USA, INC. DE 76-0526487 675 Bering Drive Suite 400 Houston TX 77057 713 830-9600 Common Stock, $0.01 par value FIX NYSE Yes Yes Large Accelerated Filer false false false 35983287 115615000 58776000 8694000 8808000 804832000 773716000 751000 715000 70901000 61881000 498000 503000 73677000 57491000 24918000 21853000 31373000 23704000 53000 84000 18313000 29900000 1139629000 1027321000 127711000 128554000 124936000 124756000 593947000 592114000 291990000 304781000 20577000 22905000 9623000 8683000 2308413000 2209114000 407000 2788000 267246000 254788000 121990000 129971000 316478000 307380000 22410000 22227000 128668000 119400000 857199000 836554000 412079000 385242000 107033000 107701000 1745000 1745000 51949000 72206000 1430005000 1403448000 0.01 0.01 5000000 5000000 0 0 0.01 0.01 102969912 102969912 41123365 41123365 411000 411000 5170410 5032311 164844000 150580000 331978000 327061000 710863000 628774000 878408000 805666000 2308413000 2209114000 885216000 669761000 732072000 546292000 153144000 123469000 117776000 88214000 323000 350000 35691000 35605000 3000 3000 2129000 1497000 -4088000 -1186000 56000 -69000 2018000 -377000 37709000 35228000 -49053000 8737000 86762000 26491000 2.40 0.73 2.40 0.73 36076000 36286000 36188000 36499000 41123365 411000 -4935186 -129243000 322451000 502810000 696429000 26491000 26491000 61454 1616000 -211000 1405000 29544 777000 1431000 2208000 11424 854000 854000 2472000 2472000 0.115 4163000 4163000 13250 885000 885000 41123365 411000 -4868862 -128589000 326143000 525138000 723103000 41123365 411000 -5032311 -150580000 327061000 628774000 805666000 86762000 86762000 38863 1232000 2312000 3544000 15348 1399000 1399000 2605000 2605000 0.13 4673000 4673000 161614 14097000 14097000 41123365 411000 -5170410 -164844000 331978000 710863000 878408000 86762000 26491000 12791000 8925000 8046000 7051000 4734000 4377000 25000 -1018000 2328000 -410000 133000 133000 323000 350000 -4088000 -1186000 3996000 4711000 52701000 -49684000 3104000 2181000 2803000 390000 -2562000 -6840000 -181000 284000 1899000 -33087000 9046000 20550000 -5755000 -5209000 63729000 84647000 9192000 4812000 1056000 498000 -3000 10716000 1236000 -9369000 -15030000 50000000 10000000 10000000 70000000 7500000 7500000 7797000 253000 4673000 4163000 14097000 885000 1399000 854000 1405000 50000 400000 1752000 2479000 -72397000 56839000 -2780000 58776000 54896000 115615000 52116000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">1. Business and Organization</b></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;">Comfort Systems USA, Inc., a Delaware corporation, provides comprehensive mechanical and electrical contracting services, which principally includes heating, ventilation and air conditioning (“HVAC”), plumbing, electrical, piping and controls, as well as off-site construction, monitoring and fire protection. We build, install, maintain, repair and replace mechanical, electrical and plumbing (“MEP”) systems throughout the United States. The terms “Comfort Systems,” “we,” “us,” or the “Company,” refer to Comfort Systems USA, Inc. or Comfort Systems USA, Inc. and its consolidated subsidiaries, as appropriate in the context.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;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;"><b style="font-weight:bold;">2. Summary of Significant Accounting Policies and Estimates</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;margin-left:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Basis of Presentation</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;">These interim statements should be read in conjunction with the historical Consolidated Financial Statements and related notes of Comfort Systems included in the Annual Report on Form 10-K as filed with the Securities and Exchange Commission (“SEC”) for the year ended December 31, 2021 (the “Form 10-K”).</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;">The accompanying unaudited consolidated financial statements were prepared using generally accepted accounting principles for interim financial information and the instructions to Form 10-Q and applicable rules of Regulation S-X of the SEC. Accordingly, these financial statements do not include all the footnotes required by generally accepted accounting principles for complete financial statements and should be read in conjunction with the Form 10-K. We believe all adjustments necessary for a fair presentation of these interim statements have been included and are of a normal and recurring nature. The results of operations for interim periods are not necessarily indicative of the results for the full fiscal year.</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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Use of Estimates</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;">The preparation of financial statements in conformity with generally accepted accounting principles requires the use of estimates and assumptions by management in determining the reported amounts of assets and liabilities, revenue and expenses and disclosures regarding contingent assets and liabilities. Actual results could differ from those estimates. The most significant estimates used in our financial statements affect revenue and cost recognition for construction contracts, self-insurance accruals, deferred tax assets, fair value accounting for acquisitions and the quantification of fair value for reporting units in connection with our goodwill impairment testing. </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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Recent Accounting Pronouncements</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;"><i style="font-style:italic;">Recent Accounting Pronouncements Not Yet Adopted</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;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;">In March 2020, the FASB issued ASU No. 2020-04, “Reference Rate Reform (Topic 848).” The pronouncement provides temporary optional expedients and exceptions to the current guidance on contract modifications and hedge accounting to ease the financial reporting burden related to the expected market transition from the London Interbank Offered Rate (“LIBOR”) and other interbank offered rates to alternative reference rates. The guidance was effective upon issuance and generally can be applied to applicable contract modifications through December 31, 2022. Our current debt facility (as further described in Note 7) includes a Eurodollar Rate Loan Option with an interest rate that is determined based on the one- to six-month LIBOR rates, which will cease to be published on June 30, 2023. We currently do not expect the impact of the transition from LIBOR to alternative reference rates to have a significant impact to our consolidated financial statements.</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;">In October 2021, the FASB issued ASU 2021-08, “Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers.” This standard requires an acquirer to apply Accounting Standards Codification Topic 606 to recognize and measure contract assets and contract liabilities in a business combination. ASU 2021-08 is effective for fiscal years beginning after December 15, 2022 and interim periods within that year. Early adoption is permitted. We are currently evaluating the potential impact of this authoritative guidance on our consolidated financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;margin-left:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Revenue Recognition</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="white-space:pre-wrap;">We recognize revenue over time for all of our services as we perform them because (i) control continuously transfers to that customer as work progresses, and (ii) we have the right to bill the customer as costs are incurred. The customer typically controls the work in process, as evidenced either by contractual termination clauses or by our rights to payment for work performed to date, plus a reasonable profit, for delivery of products or services that do not have an alternative use to the Company.</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="white-space:pre-wrap;"> For the reasons listed above, revenue is recognized based on the extent of progress towards completion of the performance obligation. The selection of the method to measure progress towards completion requires judgment and is based on the nature of the products or services to be provided. We generally use a cost-to-cost input method to measure our progress towards satisfaction of the performance obligation for our contracts, as it best depicts the transfer of assets to the customer that occurs as we incur costs on our contracts. Under the cost-to-cost input method, the extent of progress towards completion is measured based on the ratio of costs incurred to date to the total estimated costs at completion of the performance obligation. Revenue, including estimated fees or profits, is recorded proportionally as costs are incurred. Costs to fulfill include labor, materials, subcontractors’ costs, other direct costs and an allocation of indirect costs.</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;">For a small portion of our business in which our services are delivered in the form of service maintenance agreements for existing systems to be repaired and maintained, as opposed to constructed, our performance obligation is to maintain the customer’s mechanical system for a specific period of time. Similar to construction jobs, we recognize revenue over time; however, for service maintenance agreements in which the full cost to provide services may not be known, we generally use an input method to recognize revenue, which is based on the amount of time we have provided our services out of the total time we have been contracted to perform those services. Our revenue recognition policy is further discussed in Note 3 “Revenue from Contracts with 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;"><span style="font-style:italic;font-weight:bold;">Accounts Receivable and Allowance for Credit Losses</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;">We are required to estimate and record the expected credit losses over the contractual life of our financial assets measured at amortized cost, including billed and unbilled accounts receivable, other receivables and contract assets. Accounts receivable include amounts from work completed in which we have billed or have an unconditional right to bill our customers. Our trade receivables are contractually due in less than a year.</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;">We estimate our credit losses using a loss-rate method for each of our identified portfolio segments. Our portfolio segments are construction, service and other. While our construction and service financial assets are often with the same subset of customers and industries, our construction financial assets will generally have a lower loss-rate than service financial assets due to lien rights, which we are more likely to have on construction jobs. These lien rights result in lower credit loss expenses on average compared to receivables that do not have lien rights. Financial assets classified as Other include receivables that are not related to our core revenue producing activities, such as receivables related to our acquisition activity from former owners, our vendor rebate program or receivables for estimated losses in excess of our insurance deductible, which are accrued with a corresponding accrued insurance liability.</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;">Loss rates for our portfolios are based on numerous factors, including our history of credit loss expense by portfolio, the financial strength of our customers and counterparties in each portfolio, the aging of our receivables, our expectation of likelihood of payment, macroeconomic trends in the U.S. and the current and forecasted non-residential construction market trends in the U.S.</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;">In addition to the loss-rate calculations discussed above, we also record allowance for credit losses for specific receivables that are deemed to have a higher risk profile than the rest of the respective pool of receivables (e.g., when we hold concerns about a specific customer going bankrupt and no longer being able to pay the receivables due to us).</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;"><span style="font-style:italic;font-weight:bold;">Income Taxes</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;">We conduct business throughout the United States in virtually all fifty states. Our effective tax rate changes based upon our relative profitability, or lack thereof, in states with varying tax rates and rules. In addition, discrete items such as tax law changes, judgments and legal structures, can impact our effective tax rate. These items can also include the tax treatment for impairment of goodwill and other intangible assets, changes in fair value of acquisition-related assets and liabilities, uncertain tax positions, and accounting for losses associated with underperforming operations.</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;">In early October 2020, we filed amended federal returns for 2016, 2017 and 2018 primarily to claim the credit for increasing research activities (the “R&amp;D tax credit”) requesting refunds of $9.8 million, $9.5 million and $11.9 million, respectively. The $31.2 million of refunds requested was offset by unrecognized tax benefits of $28.8 million due to the uncertainty of the outcome of an Internal Revenue Service (“IRS”) examination. The R&amp;D tax credit had no material impact on our effective tax rates for the 2020 and 2021 calendar years.</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;">Following an IRS survey of previously filed refund claims for the 2016, 2017 and 2018 tax years, the Joint Committee on Taxation approved such refunds in late January 2022. As a result, our benefit for income taxes in the first quarter of 2022 included a $28.8 million reduction in unrecognized tax benefits plus approximately $1.6 million of net interest income on the refunds.</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;">Our benefit for income taxes in the first quarter of 2022 was further increased by $26.8 million plus approximately $0.1 million of net interest income on the expected refunds due to our intention to claim the R&amp;D tax credit for the 2019, 2020 and 2021 tax years. Additionally, we have included an estimate for the R&amp;D tax credit in the computation of our annual effective tax rate for the current year and will continue to do so for the foreseeable future.</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;"><span style="font-style:italic;font-weight:bold;">Financial Instruments</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;">Our financial instruments consist of cash and cash equivalents, accounts receivable, other receivables, accounts payable and life insurance policies, for which we deem the carrying values approximate their fair value due to the short-term nature of these instruments, as well as notes to former owners, a revolving credit facility and a term loan. We believe the carrying value of our debt associated with our senior credit facility approximates its fair value due to the variable rate on such debt. <span style="font-style:italic;font-weight:bold;"> </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="font-style:italic;font-weight:bold;">Investments</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;">We have a $1.2 million investment with a fair value that is not readily determinable and is recorded at cost. This investment is included in “Other Noncurrent Assets” in our Consolidated Balance Sheet and is reviewed quarterly for impairment. We did not recognize any impairments in the current year related to this investment.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Basis of Presentation</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;">These interim statements should be read in conjunction with the historical Consolidated Financial Statements and related notes of Comfort Systems included in the Annual Report on Form 10-K as filed with the Securities and Exchange Commission (“SEC”) for the year ended December 31, 2021 (the “Form 10-K”).</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;">The accompanying unaudited consolidated financial statements were prepared using generally accepted accounting principles for interim financial information and the instructions to Form 10-Q and applicable rules of Regulation S-X of the SEC. Accordingly, these financial statements do not include all the footnotes required by generally accepted accounting principles for complete financial statements and should be read in conjunction with the Form 10-K. We believe all adjustments necessary for a fair presentation of these interim statements have been included and are of a normal and recurring nature. The results of operations for interim periods are not necessarily indicative of the results for the full fiscal year.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Use of Estimates</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;">The preparation of financial statements in conformity with generally accepted accounting principles requires the use of estimates and assumptions by management in determining the reported amounts of assets and liabilities, revenue and expenses and disclosures regarding contingent assets and liabilities. Actual results could differ from those estimates. The most significant estimates used in our financial statements affect revenue and cost recognition for construction contracts, self-insurance accruals, deferred tax assets, fair value accounting for acquisitions and the quantification of fair value for reporting units in connection with our goodwill impairment testing. </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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Recent Accounting Pronouncements</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;"><i style="font-style:italic;">Recent Accounting Pronouncements Not Yet Adopted</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;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;">In March 2020, the FASB issued ASU No. 2020-04, “Reference Rate Reform (Topic 848).” The pronouncement provides temporary optional expedients and exceptions to the current guidance on contract modifications and hedge accounting to ease the financial reporting burden related to the expected market transition from the London Interbank Offered Rate (“LIBOR”) and other interbank offered rates to alternative reference rates. The guidance was effective upon issuance and generally can be applied to applicable contract modifications through December 31, 2022. Our current debt facility (as further described in Note 7) includes a Eurodollar Rate Loan Option with an interest rate that is determined based on the one- to six-month LIBOR rates, which will cease to be published on June 30, 2023. We currently do not expect the impact of the transition from LIBOR to alternative reference rates to have a significant impact to our consolidated financial statements.</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;">In October 2021, the FASB issued ASU 2021-08, “Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers.” This standard requires an acquirer to apply Accounting Standards Codification Topic 606 to recognize and measure contract assets and contract liabilities in a business combination. ASU 2021-08 is effective for fiscal years beginning after December 15, 2022 and interim periods within that year. Early adoption is permitted. We are currently evaluating the potential impact of this authoritative guidance on our consolidated financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;margin-left:0pt;visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Revenue Recognition</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="white-space:pre-wrap;">We recognize revenue over time for all of our services as we perform them because (i) control continuously transfers to that customer as work progresses, and (ii) we have the right to bill the customer as costs are incurred. The customer typically controls the work in process, as evidenced either by contractual termination clauses or by our rights to payment for work performed to date, plus a reasonable profit, for delivery of products or services that do not have an alternative use to the Company.</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="white-space:pre-wrap;"> For the reasons listed above, revenue is recognized based on the extent of progress towards completion of the performance obligation. The selection of the method to measure progress towards completion requires judgment and is based on the nature of the products or services to be provided. We generally use a cost-to-cost input method to measure our progress towards satisfaction of the performance obligation for our contracts, as it best depicts the transfer of assets to the customer that occurs as we incur costs on our contracts. Under the cost-to-cost input method, the extent of progress towards completion is measured based on the ratio of costs incurred to date to the total estimated costs at completion of the performance obligation. Revenue, including estimated fees or profits, is recorded proportionally as costs are incurred. Costs to fulfill include labor, materials, subcontractors’ costs, other direct costs and an allocation of indirect costs.</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;">For a small portion of our business in which our services are delivered in the form of service maintenance agreements for existing systems to be repaired and maintained, as opposed to constructed, our performance obligation is to maintain the customer’s mechanical system for a specific period of time. Similar to construction jobs, we recognize revenue over time; however, for service maintenance agreements in which the full cost to provide services may not be known, we generally use an input method to recognize revenue, which is based on the amount of time we have provided our services out of the total time we have been contracted to perform those services. Our revenue recognition policy is further discussed in Note 3 “Revenue from Contracts with Customers.”</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Accounts Receivable and Allowance for Credit Losses</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;">We are required to estimate and record the expected credit losses over the contractual life of our financial assets measured at amortized cost, including billed and unbilled accounts receivable, other receivables and contract assets. Accounts receivable include amounts from work completed in which we have billed or have an unconditional right to bill our customers. Our trade receivables are contractually due in less than a year.</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;">We estimate our credit losses using a loss-rate method for each of our identified portfolio segments. Our portfolio segments are construction, service and other. While our construction and service financial assets are often with the same subset of customers and industries, our construction financial assets will generally have a lower loss-rate than service financial assets due to lien rights, which we are more likely to have on construction jobs. These lien rights result in lower credit loss expenses on average compared to receivables that do not have lien rights. Financial assets classified as Other include receivables that are not related to our core revenue producing activities, such as receivables related to our acquisition activity from former owners, our vendor rebate program or receivables for estimated losses in excess of our insurance deductible, which are accrued with a corresponding accrued insurance liability.</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;">Loss rates for our portfolios are based on numerous factors, including our history of credit loss expense by portfolio, the financial strength of our customers and counterparties in each portfolio, the aging of our receivables, our expectation of likelihood of payment, macroeconomic trends in the U.S. and the current and forecasted non-residential construction market trends in the U.S.</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;">In addition to the loss-rate calculations discussed above, we also record allowance for credit losses for specific receivables that are deemed to have a higher risk profile than the rest of the respective pool of receivables (e.g., when we hold concerns about a specific customer going bankrupt and no longer being able to pay the receivables due to us).</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Income Taxes</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;">We conduct business throughout the United States in virtually all fifty states. Our effective tax rate changes based upon our relative profitability, or lack thereof, in states with varying tax rates and rules. In addition, discrete items such as tax law changes, judgments and legal structures, can impact our effective tax rate. These items can also include the tax treatment for impairment of goodwill and other intangible assets, changes in fair value of acquisition-related assets and liabilities, uncertain tax positions, and accounting for losses associated with underperforming operations.</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;">In early October 2020, we filed amended federal returns for 2016, 2017 and 2018 primarily to claim the credit for increasing research activities (the “R&amp;D tax credit”) requesting refunds of $9.8 million, $9.5 million and $11.9 million, respectively. The $31.2 million of refunds requested was offset by unrecognized tax benefits of $28.8 million due to the uncertainty of the outcome of an Internal Revenue Service (“IRS”) examination. The R&amp;D tax credit had no material impact on our effective tax rates for the 2020 and 2021 calendar years.</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;">Following an IRS survey of previously filed refund claims for the 2016, 2017 and 2018 tax years, the Joint Committee on Taxation approved such refunds in late January 2022. As a result, our benefit for income taxes in the first quarter of 2022 included a $28.8 million reduction in unrecognized tax benefits plus approximately $1.6 million of net interest income on the refunds.</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;">Our benefit for income taxes in the first quarter of 2022 was further increased by $26.8 million plus approximately $0.1 million of net interest income on the expected refunds due to our intention to claim the R&amp;D tax credit for the 2019, 2020 and 2021 tax years. Additionally, we have included an estimate for the R&amp;D tax credit in the computation of our annual effective tax rate for the current year and will continue to do so for the foreseeable future.</p> 9800000 9500000 11900000 31200000 28800000 28800000 1600000 26800000 100000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Financial Instruments</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;">Our financial instruments consist of cash and cash equivalents, accounts receivable, other receivables, accounts payable and life insurance policies, for which we deem the carrying values approximate their fair value due to the short-term nature of these instruments, as well as notes to former owners, a revolving credit facility and a term loan. We believe the carrying value of our debt associated with our senior credit facility approximates its fair value due to the variable rate on such debt. <span style="font-style:italic;font-weight:bold;"> </span> </p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Investments</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;">We have a $1.2 million investment with a fair value that is not readily determinable and is recorded at cost. This investment is included in “Other Noncurrent Assets” in our Consolidated Balance Sheet and is reviewed quarterly for impairment. We did not recognize any impairments in the current year related to this investment.</p> 1200000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">3. Revenue from Contracts with Customers</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="white-space:pre-wrap;">Revenue is recognized when control of the promised goods or services is transferred to our customers, in an amount that reflects the consideration to which we expect to be entitled in exchange for those goods or services. Sales-based taxes are excluded from revenue.</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;">We provide mechanical and electrical contracting services. Our mechanical segment principally includes HVAC, plumbing, piping and controls, as well as off-<span style="white-space:pre-wrap;">site construction, monitoring and fire protection. Our electrical segment includes installation and servicing of electrical systems. We build, install, maintain, repair and replace products and systems throughout the United States. All of our revenue is recognized over time as we deliver goods and services to our customers. Revenue can be earned based on an agreed-upon fixed price or based on actual costs incurred, marked up at an agreed-upon percentage.</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;">We account for a contract when: (i) it has approval and commitment from both parties, (ii) the rights of the parties are identified, (iii) payment terms are identified, (iv) the contract has commercial substance, and (v) collectability of consideration is probable. We consider the start of a project to be when the above criteria have been met and we either have written authorization from the customer to proceed or an executed contract.</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;">We generally do not incur significant incremental costs related to obtaining or fulfilling a contract prior to the start of a project. On rare occasions, when significant pre-contract costs are incurred, they are capitalized and amortized over the life of the contract using a cost-to-cost input method to measure progress towards contract completion. We do not currently have any capitalized obtainment or fulfillment costs in our Consolidated Balance Sheet and have not incurred any impairment loss on such costs in the current year.</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;"><span style="white-space:pre-wrap;">Due to the nature of the work required to be performed on many of our performance obligations, the estimation of total revenue and cost at completion (the process described below in more detail) is complex, subject to many variables and requires significant judgment. The consideration to which we are entitled on our long-term contracts may include both fixed and variable amounts. Variable amounts can either increase or decrease the transaction price. A common example of variable amounts that can either increase or decrease contract value are pending change orders that represent contract modifications for which a change in scope has been authorized or acknowledged by our customer, but the final adjustment to contract price is yet to be negotiated. Other examples of positive variable revenue include amounts awarded upon achievement of certain performance metrics, program milestones or cost of completion date targets and can be based upon customer discretion. Variable amounts can result in a deduction from contract revenue if we fail to meet stated performance requirements, such as complying with the construction schedule.</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;">We include estimated amounts of variable consideration in the contract 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. Our estimates of variable consideration and determination of whether to include estimated amounts in the contract price are based largely on an assessment of our anticipated performance and all information (historical, current and forecasted) that is reasonably available to us. We reassess the amount of variable consideration each accounting period until the uncertainty associated with the variable consideration is resolved. Changes in the assessed amount of variable consideration are accounted for prospectively as a cumulative adjustment to revenue recognized in the current period.</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;"><span style="white-space:pre-wrap;">Contracts are often modified to account for changes in contract specifications and requirements. We consider contract modifications to exist when the modification either creates new, or changes the existing, enforceable rights and obligations. Most of our contract modifications are for goods or services that are not distinct from the existing performance obligation(s). The effect of a contract modification on the transaction price, and our measure of progress for the performance obligation to which it relates, is recognized as an adjustment to revenue (either as an increase or decrease) on a cumulative catch-up basis. </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;">We have a Company-wide policy requiring periodic review of the Estimate at Completion in which management reviews the progress and execution of our performance obligations and estimated remaining obligations. 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, identified risks and opportunities and the related changes in estimates of revenue and costs. The risks and opportunities include management's judgment about the ability and cost to achieve the schedule (e.g., the number and type of milestone events), technical requirements (e.g., a newly developed product versus a mature product) and other contract requirements. Management must make assumptions and estimates regarding labor productivity and availability, the complexity of the work to be performed, the availability of materials, the length of time to complete the performance obligation (e.g., to estimate increases in wages and prices for materials and related support cost allocations), execution by our subcontractors, the availability and timing of funding from our customer, and overhead cost rates, among other variables. </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;">Based on this analysis, any adjustments to revenue, cost of services, and the related impact to operating income are recognized as necessary in the quarter when they become known. These adjustments may result from positive program performance if we determine we will be successful in mitigating risks surrounding the technical, schedule and cost aspects of those performance obligations or realizing related opportunities and may result in an increase in operating income during the performance of individual performance obligations. Likewise, if we determine we will not be </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">successful in mitigating these risks or realizing related opportunities, these adjustments may result in a decrease in operating income. Changes in estimates of revenue, cost of services and the related impact to operating income are recognized quarterly on a cumulative catch-up basis, meaning we recognize in the current period the cumulative effect of the changes on current and prior periods based on our <span style="background:#ffffff;">progress towards complete satisfaction of a performance obligation</span>. A significant change in one or more of these estimates could affect the profitability of one or more of our performance obligations. For projects in which estimates of total costs to be incurred on a performance obligation exceed total estimates of revenue to be earned, a provision for the entire loss on the performance obligation is recognized in the period the loss is determined. </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;"><span style="white-space:pre-wrap;">In the first three months of 2022 and 2021, net revenue recognized from our performance obligations satisfied in previous periods was not material. </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;"><span style="font-style:italic;font-weight:bold;">Disaggregation of Revenue</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;"><span style="white-space:pre-wrap;">Our consolidated 2022 revenue was derived from contracts to provide service activities in the mechanical and electrical services segments we serve. Refer to Note 11 “Segment Information” for additional information on our reportable segments. We disaggregate our revenue from contracts with customers by activity, customer type and service provided, as we believe it best depicts how the nature, amount, timing and uncertainty of our revenue and cash flows are affected by economic factors. </span><span style="white-space:pre-wrap;">See details in the following tables (dollars in thousands):</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="margin-left: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:52.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><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.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:1.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:5.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:2.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><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></tr><tr><td style="vertical-align:bottom;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:42.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">Revenue by Service Provided</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">   </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">   </b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:20.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">   </b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</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;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Mechanical Services</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 682,511</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">   </p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 77.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 565,620</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">   </p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 84.5</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Electrical Services</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 202,705</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 22.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 104,141</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 15.5</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 885,216</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 669,761</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;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:9pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:42.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">Revenue by Type of Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:20.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</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:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;"> </b></p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Industrial</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 410,184</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 46.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 269,583</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 40.3</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Education</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 89,446</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 92,457</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 13.8</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Office Buildings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 75,115</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 78,996</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 11.8</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Healthcare</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 134,795</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 15.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 95,091</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 14.2</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Government</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 57,465</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 43,165</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.4</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Retail, Restaurants and Entertainment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 65,582</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 7.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 44,576</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.7</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Multi-Family and Residential</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 24,442</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 24,660</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3.7</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 28,187</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 21,233</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3.1</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 885,216</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 669,761</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;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:9pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:42.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">Revenue by Activity Type</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:20.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</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:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;"> </b></p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">New Construction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 429,418</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 48.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 302,061</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 45.1</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Existing Building Construction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 259,285</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 29.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 216,601</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 32.3</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Service Projects</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 76,252</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 60,060</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9.0</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Service Calls, Maintenance and Monitoring</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 120,261</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 13.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 91,039</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 13.6</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 885,216</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 669,761</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</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:9pt;margin:0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"> <span style="font-style:italic;font-weight:bold;">Contract Assets and Liabilities</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><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="white-space:pre-wrap;">Project contracts typically provide for a schedule of billings or invoices to the customer based on our job-to-date completion percentage of specific tasks inherent in the fulfillment of our performance obligation(s). The schedules for such billings usually do not precisely match the schedule on which costs are incurred. Contract assets include unbilled amounts typically resulting from sales under long term contracts when the cost-to-cost method of revenue recognition is used, revenue recognized exceeds the amount billed to the customer and right to payment is conditional or subject to completing a milestone, such as a phase of the project. Contract assets are generally classified as current.</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;"><span style="white-space:pre-wrap;">Contract liabilities consist of advance payments and billings in excess of revenue recognized. Our contract assets and liabilities are reported in a net position on a contract by contract basis at the end of each reporting period. We </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">classify advance payments and billings in excess of revenue recognized as current. It is very unusual for us to have advanced payments with a term of greater than one year; therefore, our contract assets and liabilities are usually all current. If we have advanced payments with a term greater than one year, the noncurrent portion of advanced payments would be included in “Other Long-term Liabilities” in our Consolidated Balance Sheets.</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 table presents the changes in contract assets and contract liabilities (in thousands):</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:49.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.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;white-space:nowrap;width:8.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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:49.84%;margin:0pt;padding:0pt;"><p 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:bottom;white-space:nowrap;width:23.95%;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, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.64%;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.65%;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;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:21.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;">Year Ended December 31,</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.84%;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:bottom;white-space:nowrap;width:23.95%;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;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:bottom;white-space:nowrap;width:23.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.84%;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;width:10.51%;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</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.64%;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:10.79%;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</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="2" style="vertical-align:bottom;width:10.51%;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</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.64%;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:10.4%;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</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.84%;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;width:10.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;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.64%;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;width:10.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:0pt;"><b style="font-weight:bold;">Liabilities</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="2" style="vertical-align:bottom;width:10.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;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.64%;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;width:10.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:0pt;"><b style="font-weight:bold;">Liabilities</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at beginning of period</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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.85%;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;"> 29,900</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.65%;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:9.13%;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;"> 307,380</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.64%;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.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.85%;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;"> 18,622</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.74%;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;"> 226,237</p></td></tr><tr><td style="vertical-align:bottom;width:49.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Change due to acquisitions / disposals</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (10)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 52</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.64%;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.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10,356</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,523</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Change related to credit allowance</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.85%;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.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:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.13%;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;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (5)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.74%;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;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:49.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other changes in the period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.85%;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;"> (11,608)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.65%;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.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 21,135</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.64%;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.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.85%;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;"> 927</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.74%;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;"> 44,620</p></td></tr><tr><td style="vertical-align:bottom;width:49.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at end of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;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.85%;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;"> 18,313</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.65%;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.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 328,567</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.64%;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.65%;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.85%;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;"> 29,900</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.65%;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.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 3pt 0pt 0pt;"> 307,380</p></td></tr></table><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;">In the first three months of 2022 and 2021, we recognized revenue of $220.6 million and $167.8 million related to our contract liabilities at January 1, 2022 and January 1, 2021, respectively.</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;">We did not have any impairment losses recognized on our receivables or contract assets in the first three months of 2022 and 2021.</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;"><span style="font-style:italic;font-weight:bold;">Remaining Performance Obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="white-space:pre-wrap;">Remaining construction performance obligations represent the remaining transaction price of firm orders for which work has not been performed and exclude unexercised contract options. As of March 31, 2022, the aggregate amount of the transaction price allocated to remaining performance obligations was $2.73 billion. The Company expects to recognize revenue on approximately 80-85% of the remaining performance obligations over the next </span><span style="white-space:pre-wrap;">12 months</span><span style="white-space:pre-wrap;">, with the remaining recognized thereafter. Our service maintenance agreements are generally </span><span style="white-space:pre-wrap;">one-year</span><span style="white-space:pre-wrap;"> renewable agreements. We have adopted the practical expedient that allows us to not include service maintenance contracts with a total term of </span><span style="white-space:pre-wrap;">one</span><span style="white-space:pre-wrap;"> year or less; therefore, we do not report unfulfilled performance obligations for service maintenance agreements. </span></p> <span style="white-space:pre-wrap;">See details in the following tables (dollars in thousands):</span><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="margin-left: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:52.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><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.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:1.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:5.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:2.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><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></tr><tr><td style="vertical-align:bottom;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:42.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">Revenue by Service Provided</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">   </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">   </b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:20.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">   </b></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</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;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Mechanical Services</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 682,511</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">   </p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 77.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 565,620</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">   </p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 84.5</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Electrical Services</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 202,705</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 22.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 104,141</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 15.5</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 885,216</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 669,761</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;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:9pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:42.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">Revenue by Type of Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:20.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</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:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;"> </b></p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Industrial</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 410,184</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 46.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 269,583</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 40.3</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Education</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 89,446</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 92,457</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 13.8</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Office Buildings</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 75,115</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 78,996</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 11.8</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Healthcare</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 134,795</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 15.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 95,091</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 14.2</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Government</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 57,465</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 43,165</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.4</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Retail, Restaurants and Entertainment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 65,582</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 7.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 44,576</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6.7</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Multi-Family and Residential</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 24,442</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 24,660</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3.7</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 28,187</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 21,233</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3.1</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 885,216</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 669,761</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;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:9pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:42.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><b style="font-weight:bold;">Revenue by Activity Type</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:20.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:15.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</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:9pt;text-align:center;margin:0pt;"><b style="font-weight:bold;"> </b></p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">New Construction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 429,418</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 48.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 302,061</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 45.1</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Existing Building Construction</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 259,285</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 29.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 216,601</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 32.3</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Service Projects</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 76,252</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 60,060</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9.0</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Service Calls, Maintenance and Monitoring</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 120,261</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 13.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 91,039</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 13.6</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:9pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 885,216</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.8%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.83%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 669,761</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100.0</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:9pt;margin:0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> 682511000 0.771 565620000 0.845 202705000 0.229 104141000 0.155 885216000 1.000 669761000 1.000 410184000 0.463 269583000 0.403 89446000 0.101 92457000 0.138 75115000 0.085 78996000 0.118 134795000 0.152 95091000 0.142 57465000 0.065 43165000 0.064 65582000 0.074 44576000 0.067 24442000 0.028 24660000 0.037 28187000 0.032 21233000 0.031 885216000 1.000 669761000 1.000 429418000 0.485 302061000 0.451 259285000 0.293 216601000 0.323 76252000 0.086 60060000 0.090 120261000 0.136 91039000 0.136 885216000 1.000 669761000 1.000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following table presents the changes in contract assets and contract liabilities (in thousands):</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:49.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.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;white-space:nowrap;width:8.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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:49.84%;margin:0pt;padding:0pt;"><p 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:bottom;white-space:nowrap;width:23.95%;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, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.64%;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.65%;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;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:21.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;">Year Ended December 31,</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.84%;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:bottom;white-space:nowrap;width:23.95%;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;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:bottom;white-space:nowrap;width:23.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.84%;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;width:10.51%;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</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.64%;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:10.79%;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</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="2" style="vertical-align:bottom;width:10.51%;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</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.64%;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:10.4%;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</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.84%;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;width:10.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;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.64%;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;width:10.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:0pt;"><b style="font-weight:bold;">Liabilities</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="2" style="vertical-align:bottom;width:10.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;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.64%;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;width:10.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:0pt;"><b style="font-weight:bold;">Liabilities</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at beginning of period</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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.85%;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;"> 29,900</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.65%;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:9.13%;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;"> 307,380</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.64%;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.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.85%;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;"> 18,622</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.74%;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;"> 226,237</p></td></tr><tr><td style="vertical-align:bottom;width:49.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Change due to acquisitions / disposals</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (10)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 52</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.64%;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.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10,356</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,523</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:49.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Change related to credit allowance</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.85%;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.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:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.13%;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;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (5)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.74%;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;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:49.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other changes in the period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.85%;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;"> (11,608)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.65%;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.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 21,135</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.64%;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.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.85%;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;"> 927</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.74%;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;"> 44,620</p></td></tr><tr><td style="vertical-align:bottom;width:49.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at end of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;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.85%;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;"> 18,313</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.65%;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.13%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 328,567</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.64%;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.65%;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.85%;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;"> 29,900</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:1.65%;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.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 3pt 0pt 0pt;"> 307,380</p></td></tr></table> 29900000 307380000 18622000 226237000 -10000 52000 10356000 36523000 31000 -5000 -11608000 21135000 927000 44620000 18313000 328567000 29900000 307380000 220600000 167800000 2730000000 0.80 0.85 P12M P1Y true <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">4. Fair Value Measurements</b></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 6pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"/><span style="font-style:italic;font-weight:bold;">Interest Rate Risk Management and Derivative Instruments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We have interest rate swap agreements in place to reduce our exposure to variable interest rates on our term loan and revolving credit facility. The notional amount covered by these interest rate swaps was $80.0 million as of March 31, 2022, and the termination date is September 30, 2022. </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;">We use derivative instruments to manage exposure to market risk, including interest rate risk. Unsettled amounts under our interest rate swaps are recorded in the Consolidated Balance Sheet at fair value in “Other Receivables” or “Other Current Liabilities.” Gains and losses on our interest rate swaps are recorded in the Consolidated Income Statement in “Interest Expense.” For the three months ended March 31, 2022 and March 31, 2021, we recognized a net loss of $0.1 million related to our interest rate swaps. We currently do not have any derivatives that are accounted for as hedges under ASC 815.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:22.5pt;margin:0pt 0pt 6pt 0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"/><span style="font-style:italic;font-weight:bold;">Fair Value Measurements</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;">We classify and disclose assets and liabilities carried at fair value in one of the following three categories:</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-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Level 1—quoted prices in active markets for identical assets and liabilities;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Level 2—observable market-based inputs or unobservable inputs that are corroborated by market data; and</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:36pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Level 3—significant unobservable inputs in which little or no market data exists, therefore requiring an entity to develop its own assumptions.</span></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following table summarizes the fair values, and levels within the fair value hierarchy in which the fair value measurements are included, for assets and liabilities measured on a recurring basis as of March 31, 2022 and December 31, 2021 (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="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:58.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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.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.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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></tr><tr><td style="vertical-align:bottom;width:58.69%;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.71%;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="11" style="vertical-align:bottom;white-space:nowrap;width:39.58%;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;">Fair Value Measurements at March 31, 2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.69%;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.71%;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:8.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;">Level 1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.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;">Level 2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.24%;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;">Level 3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.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;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.69%;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:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.02%;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:7.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 115,615</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 115,615</p></td></tr><tr><td style="vertical-align:bottom;width:58.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Life insurance—cash surrender value</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.02%;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:7.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 6,358</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 6,358</p></td></tr><tr><td style="vertical-align:bottom;width:58.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Contingent earn-out obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.02%;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:7.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 28,275</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 28,275</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:58.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.69%;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.71%;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="11" style="vertical-align:bottom;white-space:nowrap;width:39.58%;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;">Fair Value Measurements at December 31, 2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.69%;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.71%;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:8.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;">Level 1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.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;">Level 2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.24%;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;">Level 3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.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;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.69%;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:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.02%;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:7.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 58,776</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 58,776</p></td></tr><tr><td style="vertical-align:bottom;width:58.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Life insurance—cash surrender value</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.02%;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:7.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 6,643</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 6,643</p></td></tr><tr><td style="vertical-align:bottom;width:58.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Contingent earn-out obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.02%;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:7.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 34,114</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 34,114</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Cash and cash equivalents consist primarily of highly rated money market funds at a variety of well-known institutions with original maturities of three months or less. The original cost of these assets approximates fair value due to their short-term maturity. The Company’s outstanding term loan held by third-party financial institutions is carried at cost, adjusted for debt issuance costs. The Company’s term loan is not publicly traded and the carrying amount approximates fair value as the loan accrues interest at a variable rate. The carrying value of our borrowings associated with the revolving credit facility approximate its fair value due to the variable rate on such debt.</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;">We have life insurance policies covering 109 employees with a combined face value of $74.7 million. The policies are invested in several investment vehicles, and the fair value measurement of the cash surrender balance associated with these policies is determined using Level 2 inputs within the fair value hierarchy and will vary with investment performance. The cash surrender value of these policies was $6.4 million as of March 31, 2022 and $6.6 million as of December 31, 2021. These assets are included in “Other Noncurrent Assets” in our Consolidated Balance Sheets.</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;">We value contingent earn-out obligations using a probability weighted discounted cash flow method. This fair value measurement is based on significant unobservable inputs in the market and thus represents a Level 3 measurement within the fair value hierarchy. This analysis reflects the contractual terms of the purchase agreements (e.g., minimum and maximum payments, length of earn-out periods, manner of calculating any amounts due, etc.) and utilizes assumptions with regard to future cash flows and operating income, probabilities of achieving such future cash flows and operating income and a weighted average cost of capital. Significant changes in any of these assumptions could result in a significantly higher or lower potential liability. The contingent earn-out obligations are measured at fair value each reporting period, and changes in estimates of fair value are recognized in earnings. As of March 31, 2022, cash flows were discounted using a weighted average cost of capital ranging from 10.5% - 16.5%.</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;">The table below presents a reconciliation of the fair value of our contingent earn-out obligations that use significant unobservable inputs (Level 3) (in thousands):</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;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;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:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:56.73%;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:2.44%;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:19.7%;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><td style="vertical-align:bottom;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:bottom;white-space:nowrap;width:18.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;">Year Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;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></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:56.73%;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:2.44%;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:19.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 31, 2022</b></p></td><td style="vertical-align:bottom;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:bottom;white-space:nowrap;width:18.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;">December 31, 2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;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></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:56.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at beginning of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;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.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 34,114</p></td><td style="vertical-align:bottom;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="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 25,979</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;background:#cceeff;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;white-space:nowrap;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Issuances</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.94%;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.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;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:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 19,949</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;margin: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:56.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Settlements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.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><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,751)</p></td><td style="vertical-align:bottom;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:bottom;white-space:nowrap;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">(3,994)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Adjustments to fair value</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.94%;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.75%;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,088)</p></td><td style="vertical-align:bottom;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:bottom;white-space:nowrap;width:2.58%;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:15.75%;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;"> (7,820)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;margin: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:56.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at end of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.94%;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.75%;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.6pt 0pt 0pt;"> 28,275</p></td><td style="vertical-align:bottom;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:bottom;white-space:nowrap;width:2.58%;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.75%;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.6pt 0pt 0pt;"> 34,114</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p> 80000000.0 100000 100000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following table summarizes the fair values, and levels within the fair value hierarchy in which the fair value measurements are included, for assets and liabilities measured on a recurring basis as of March 31, 2022 and December 31, 2021 (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="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:58.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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.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.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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></tr><tr><td style="vertical-align:bottom;width:58.69%;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.71%;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="11" style="vertical-align:bottom;white-space:nowrap;width:39.58%;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;">Fair Value Measurements at March 31, 2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.69%;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.71%;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:8.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;">Level 1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.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;">Level 2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.24%;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;">Level 3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.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;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.69%;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:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.02%;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:7.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 115,615</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 115,615</p></td></tr><tr><td style="vertical-align:bottom;width:58.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Life insurance—cash surrender value</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.02%;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:7.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 6,358</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 6,358</p></td></tr><tr><td style="vertical-align:bottom;width:58.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Contingent earn-out obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.02%;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:7.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 28,275</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 28,275</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:58.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:58.69%;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.71%;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="11" style="vertical-align:bottom;white-space:nowrap;width:39.58%;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;">Fair Value Measurements at December 31, 2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.69%;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.71%;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:8.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;">Level 1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.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;">Level 2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.24%;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;">Level 3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.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;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:58.69%;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:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.02%;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:7.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 58,776</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 58,776</p></td></tr><tr><td style="vertical-align:bottom;width:58.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Life insurance—cash surrender value</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.02%;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:7.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 6,643</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 6,643</p></td></tr><tr><td style="vertical-align:bottom;width:58.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Contingent earn-out obligations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.02%;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:7.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 34,114</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 34,114</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> 115615000 115615000 6358000 6358000 28275000 28275000 58776000 58776000 6643000 6643000 34114000 34114000 109 74700000 6400000 6600000 0.105 0.165 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The table below presents a reconciliation of the fair value of our contingent earn-out obligations that use significant unobservable inputs (Level 3) (in thousands):</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;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;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:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:56.73%;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:2.44%;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:19.7%;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><td style="vertical-align:bottom;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:bottom;white-space:nowrap;width:18.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;">Year Ended</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;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></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:56.73%;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:2.44%;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:19.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 31, 2022</b></p></td><td style="vertical-align:bottom;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:bottom;white-space:nowrap;width:18.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;">December 31, 2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;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></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:56.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at beginning of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.94%;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.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 34,114</p></td><td style="vertical-align:bottom;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="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 25,979</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;background:#cceeff;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;white-space:nowrap;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Issuances</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.94%;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.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;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:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 19,949</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;margin: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:56.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Settlements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.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><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,751)</p></td><td style="vertical-align:bottom;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:bottom;white-space:nowrap;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">(3,994)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:56.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Adjustments to fair value</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.94%;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.75%;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,088)</p></td><td style="vertical-align:bottom;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:bottom;white-space:nowrap;width:2.58%;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:15.75%;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;"> (7,820)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;margin: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:56.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at end of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.94%;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.75%;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.6pt 0pt 0pt;"> 28,275</p></td><td style="vertical-align:bottom;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:bottom;white-space:nowrap;width:2.58%;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.75%;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.6pt 0pt 0pt;"> 34,114</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr></table> 34114000 25979000 19949000 1751000 3994000 -4088000 -7820000 28275000 34114000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">5. Acquisitions</b></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;">On December 31, 2021, we acquired MEP Holding Co., Inc., and its related subsidiaries (collectively, “MEP Holdings”) for a total preliminary purchase price of $57.3 million, which included $45.2 million funded on the closing </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">date, $7.6 million in notes payable to former owners, an earn-out that will be paid if certain financial targets are met after the acquisition date and a working capital adjustment. As a result of the acquisition, MEP Holdings is a wholly owned subsidiary of the Company and reports as a separate operating location in our electrical services segment. Additionally, on December 31, 2021, we completed an acquisition of a service and controls business in Kentucky with a total preliminary purchase price of $20.6 million and a temporary staffing company based in Indiana with a total preliminary purchase price of $4.7 million, which are both reported in our mechanical services segment.</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;">On December 1, 2021, we acquired Ivey Mechanical Company, LLC (“Ivey”) headquartered in Kosciusko, Mississippi for a total preliminary purchase price of $79.1 million, which included $64.1 million of cash paid on the closing date, $8.0 million in notes payable to former owners, a $0.4 million short term payable plus an earn-out that will be paid if certain financial targets are met after the acquisition date and a working capital adjustment. As a result of the acquisition, Ivey is a wholly owned subsidiary of the Company and reports as a separate operating location in our mechanical services segment.</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;">On August 1, 2021, we acquired all of the issued and outstanding equity interests of Amteck Holdco LLC and each of its wholly owned subsidiaries (collectively “Amteck”). The total preliminary purchase price was $138.6 million of which $112.8 million was allocated to goodwill and identifiable intangible assets. The total preliminary purchase price included $107.4 million in cash, $8.4 million in working capital adjustment, $10.0 million in notes payable to former owners and a $12.9 million contingent earn-out obligation. Amteck provides electrical contracting solutions and services, including design and build, pre-fabrication and installation for core electric and low-voltage systems, as well as services for planned maintenance, retrofit and emergency work. Amteck is headquartered in Kentucky and primarily serves the greater Southeastern United States, including Kentucky, Tennessee and the Carolinas. As a result of the acquisition, Amteck is a wholly owned subsidiary of the Company reported in our electrical services segment. </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;">In the first quarter of 2021, we completed an acquisition of a mechanical contractor in Utah with a total purchase price of $18.1 million, which is reported in our mechanical services segment. </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="white-space:pre-wrap;">The results of operations of acquisitions are included in our consolidated financial statements from their respective acquisition dates. Our Consolidated Balance Sheet includes preliminary allocations of the purchase price to the assets acquired and liabilities assumed for the applicable acquisitions pending the completion of the final valuation of intangible assets and accrued liabilities. The acquisitions completed in the current and prior year were not material, individually or in the aggregate. Additional contingent purchase price (“earn-out”) has been or will be paid if certain acquisitions achieve predetermined profitability targets. Such earn-outs, when they are not subject to the continued employment of the sellers, are estimated as of the purchase date and included as part of the consideration paid for the acquisition. If we have an earn-out under which continued employment is a condition to receipt of payment, then the earn-out is recorded as compensation expense over the period earned.</span></p> 57300000 45200000 7600000 20600000 4700000 79100000 64100000 8000000.0 400000 138600000 112800000 107400000 8400000 10000000.0 12900000 18100000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">6. Goodwill and Identifiable Intangible Assets, Net</b></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="font-style:italic;font-weight:bold;">Goodwill</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The changes in the carrying amount of goodwill are as follows (in thousands):</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;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:56.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;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;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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: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;white-space:nowrap;width:1.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:11.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;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:56.21%;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.64%;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:14.31%;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;">Mechanical Services</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.95%;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;">Electrical Services</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.55%;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;width:56.21%;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.64%;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:14.31%;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;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.95%;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;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.55%;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:56.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at December 31, 2020</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 307,448</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:1.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:11.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 156,944</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 464,392</p></td></tr><tr><td style="vertical-align:bottom;width:56.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Acquisitions and purchase price adjustments (See Note 5)</p></td><td style="vertical-align:bottom;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:1.5%;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.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 52,771</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:1.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:11.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 74,951</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 127,722</p></td></tr><tr><td style="vertical-align:bottom;width:56.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Impact of segment reorganization</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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:12.8%;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.6pt 0pt 0pt;"> 1,101</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:1.37%;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.57%;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,101)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;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.52%;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.6pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:56.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at December 31, 2021</p></td><td style="vertical-align:bottom;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:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 361,320</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:1.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:11.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 230,794</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 592,114</p></td></tr><tr><td style="vertical-align:bottom;width:56.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Acquisitions and purchase price adjustments (See Note 5)</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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:12.8%;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.6pt 0pt 0pt;"> 1,833</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:1.37%;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.57%;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.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;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.52%;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.6pt 0pt 0pt;"> 1,833</p></td></tr><tr><td style="vertical-align:bottom;width:56.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at March 31, 2022</p></td><td style="vertical-align:bottom;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:1.5%;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.8%;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.6pt 0pt 0pt;"> 363,153</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:1.37%;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.57%;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.6pt 0pt 0pt;"> 230,794</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;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.52%;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.6pt 0pt 0pt;"> 593,947</p></td></tr></table><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;">During the fourth quarter of 2021, the Company performed a qualitative assessment for all of our reporting units except one for which we performed a quantitative assessment, which considered various factors, including changes in the carrying value of the reporting unit, forecasted operating results, long-term growth rates and discount rates. Additionally, </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">we considered qualitative key events and circumstances (i.e. macroeconomic environment, industry and market specific conditions, cost factors and events specific to the reporting unit, etc.). Based on this assessment, we concluded that it was more likely than not that the fair value of each of the reporting units was substantially greater than its carrying value. Accordingly, no further testing was required. For our Texas electrical operation, we performed a step 1 quantitative assessment, and the calculated fair value exceeded the carrying value by 32%. As a result of the reporting unit’s smaller excess of fair value percentage, this reporting unit is more susceptible to impairment risk from additional adverse changes in its operating environment, including micro- and macroeconomic environment conditions that could negatively impact them. Such adverse changes could include worsening economic conditions in the locations or markets they primarily serve, whether due to COVID-19 or other events and conditions. As of March 31, 2022, the Texas electrical operation had a goodwill balance of $96.8 million.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Identifiable Intangible Assets, Net</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">At March 31, 2022, future amortization expense of identifiable intangible assets is as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="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:60%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:80.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:3.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:0.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:80.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Year ending December 31—</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;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:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.25%;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:0.68%;margin: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:80.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2022 (remainder of the year)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;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;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;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:13.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 33,715</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;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;"> </b></p></td></tr><tr><td style="vertical-align:bottom;width:80.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 34,532</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;margin: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:80.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.71%;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:13.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 32,343</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:80.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.71%;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.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 30,156</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;margin: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:80.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.71%;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:13.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 29,312</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:80.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.71%;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:13.25%;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.6pt 0pt 0pt;"> 131,932</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;margin: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:80.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.71%;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.25%;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.6pt 0pt 0pt;"> 291,990</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;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:36pt;margin:0pt;">The changes in the carrying amount of goodwill are as follows (in thousands):</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;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:56.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;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;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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: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;white-space:nowrap;width:1.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:11.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;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:56.21%;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.64%;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:14.31%;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;">Mechanical Services</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.95%;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;">Electrical Services</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.55%;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;width:56.21%;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.64%;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:14.31%;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;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.95%;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;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.55%;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:56.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at December 31, 2020</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 307,448</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:1.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:11.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 156,944</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 464,392</p></td></tr><tr><td style="vertical-align:bottom;width:56.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Acquisitions and purchase price adjustments (See Note 5)</p></td><td style="vertical-align:bottom;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:1.5%;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.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 52,771</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:1.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:11.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 74,951</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 127,722</p></td></tr><tr><td style="vertical-align:bottom;width:56.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Impact of segment reorganization</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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:12.8%;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.6pt 0pt 0pt;"> 1,101</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:1.37%;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.57%;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,101)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;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.52%;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.6pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:56.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at December 31, 2021</p></td><td style="vertical-align:bottom;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:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 361,320</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:1.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:11.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 230,794</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 592,114</p></td></tr><tr><td style="vertical-align:bottom;width:56.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Acquisitions and purchase price adjustments (See Note 5)</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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:12.8%;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.6pt 0pt 0pt;"> 1,833</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:1.37%;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.57%;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.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;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.52%;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.6pt 0pt 0pt;"> 1,833</p></td></tr><tr><td style="vertical-align:bottom;width:56.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at March 31, 2022</p></td><td style="vertical-align:bottom;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:1.5%;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.8%;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.6pt 0pt 0pt;"> 363,153</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:1.37%;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.57%;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.6pt 0pt 0pt;"> 230,794</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.02%;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.52%;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.6pt 0pt 0pt;"> 593,947</p></td></tr></table> 307448000 156944000 464392000 52771000 74951000 127722000 1101000 -1101000 361320000 230794000 592114000 1833000 1833000 363153000 230794000 593947000 0.32 96800000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">At March 31, 2022, future amortization expense of identifiable intangible assets is as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="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:60%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:80.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:3.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:0.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:80.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Year ending December 31—</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;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:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.25%;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:0.68%;margin: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:80.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2022 (remainder of the year)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;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;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;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:13.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 33,715</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;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;"> </b></p></td></tr><tr><td style="vertical-align:bottom;width:80.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 34,532</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;margin: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:80.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.71%;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:13.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 32,343</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:80.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.71%;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.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 30,156</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;margin: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:80.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.71%;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:13.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 29,312</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr><tr><td style="vertical-align:bottom;width:80.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.71%;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:13.25%;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.6pt 0pt 0pt;"> 131,932</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.68%;margin: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:80.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.71%;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.25%;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.6pt 0pt 0pt;"> 291,990</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.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></tr></table> 33715000 34532000 32343000 30156000 29312000 131932000 291990000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">7. Debt Obligations</b></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;">Debt obligations consist of the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="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:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:72.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><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><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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;width:0.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></tr><tr><td style="vertical-align:bottom;width:72.13%;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.05%;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:11.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;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;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: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;">December 31, </b></p></td><td style="vertical-align:bottom;width:0.51%;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></tr><tr><td style="vertical-align:bottom;width:72.13%;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.05%;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:11.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;">2022 </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;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: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;">2021</b></p></td><td style="vertical-align:bottom;width:0.51%;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></tr><tr><td style="vertical-align:bottom;width:72.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revolving credit facility</p></td><td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.28%;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:9.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 260,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.82%;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.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 220,000</p></td><td style="vertical-align:bottom;width:0.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></tr><tr><td style="vertical-align:bottom;width:72.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Term loan</p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 112,500</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 120,000</p></td><td style="vertical-align:bottom;width:0.51%;margin: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:72.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Notes to former owners</p></td><td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 40,157</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.82%;background:#cceeff;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:10.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 47,954</p></td><td style="vertical-align:bottom;width:0.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></tr><tr><td style="vertical-align:bottom;width:72.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Finance lease liabilities (See Note 8)</p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.28%;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%;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.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.82%;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.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 266</p></td><td style="vertical-align:bottom;width:0.51%;margin: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:72.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total principal amount</p></td><td style="vertical-align:bottom;width:2.05%;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:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 412,657</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.82%;background:#cceeff;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:10.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 388,220</p></td><td style="vertical-align:bottom;width:0.51%;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></tr><tr><td style="vertical-align:bottom;width:72.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Less—unamortized debt issuance costs</p></td><td style="vertical-align:bottom;width:2.05%;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:1.28%;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%;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;"> (171)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.82%;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.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (190)</p></td><td style="vertical-align:bottom;width:0.51%;margin: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:72.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total debt, net of unamortized debt issuance costs</p></td><td style="vertical-align:bottom;width:2.05%;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:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 412,486</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.82%;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.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 388,030</p></td><td style="vertical-align:bottom;width:0.51%;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></tr><tr><td style="vertical-align:bottom;width:72.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Less—current portion</p></td><td style="vertical-align:bottom;width:2.05%;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:1.28%;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%;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;"> (407)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.82%;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:10.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (2,788)</p></td><td style="vertical-align:bottom;width:0.51%;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></tr><tr><td style="vertical-align:bottom;width:72.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total long-term portion of debt, net</p></td><td style="vertical-align:bottom;width:2.05%;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:1.28%;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.94%;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.6pt 0pt 0pt;"> 412,079</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.82%;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.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 385,242</p></td><td style="vertical-align:bottom;width:0.51%;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></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Revolving Credit Facility and Term Loan</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;">We have a $600.0 million senior credit facility (the “Facility”) provided by a syndicate of banks. The Facility is composed of a revolving credit line in the amount of $450.0 million and a $150.0 million term loan, and the Facility provides for a $150.0 million accordion or increase option for the revolving portion of the Facility. As of March 31, 2022, the Facility capacity was $562.5 million, as the term loan was paid down by $37.5 million since the inception of the Facility. The amended Facility also includes a sublimit of up to $160.0 million issuable in the form of letters of credit. The Facility expires in January 2025 and is secured by a first lien on substantially all of our personal property except for assets related to projects subject to surety bonds and assets held by certain unrestricted subsidiaries and our wholly owned captive insurance company, and a second lien on our assets related to projects subject to surety bonds. As of March 31, 2022, we had $260.0 million of outstanding borrowings on the revolving credit facility, $55.6 million in letters of credit outstanding and $134.4 million of credit available.</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;">There are two interest rate options for borrowings under the Facility, the Base Rate Loan Option and the Eurodollar Rate Loan Option. These rates are floating rates determined by the broad financial markets, meaning they can and do move up and down from time to time. Additional margins are then added to these two rates.</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;">The following is a summary of the additional margins:</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;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:40.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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:3.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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:3.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="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:40.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 style="vertical-align:bottom;white-space:nowrap;width:2.05%;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="7" style="vertical-align:bottom;white-space:nowrap;width:55.7%;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;">Consolidated Total Indebtedness to</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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></tr><tr><td style="vertical-align:bottom;width:40.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 style="vertical-align:bottom;white-space:nowrap;width:2.05%;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="7" style="vertical-align:bottom;white-space:nowrap;width:55.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Credit Facility Adjusted EBITDA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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></tr><tr><td style="vertical-align:bottom;width:40.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 style="vertical-align:bottom;white-space:nowrap;width:2.05%;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 style="vertical-align:bottom;white-space:nowrap;width:12.52%;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;">Less than 1.00</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;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 style="vertical-align:bottom;white-space:nowrap;width:9.95%;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;">1.00 to 1.75</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;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 style="vertical-align:bottom;white-space:nowrap;width:9.95%;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;">1.75 to 2.50</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;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 style="vertical-align:bottom;white-space:nowrap;width:12.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;">2.50 or greater</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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></tr><tr><td style="vertical-align:bottom;width:40.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Additional Per Annum Interest Margin Added Under:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.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:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.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:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.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><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin: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:40.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Base Rate Loan Option</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 0.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;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.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 0.50</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;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.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 0.75</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;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.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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:40.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Eurodollar Rate Loan Option</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;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:9.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1.50</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;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:9.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1.75</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;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.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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: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 weighted average interest rate applicable to the borrowings under the revolving credit facility was approximately 1.9% as of March 31, 2022. The weighted average interest rate applicable to the term loan was approximately 2.0% as of March 31, 2022.</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;">Certain of our vendors require letters of credit to ensure reimbursement for amounts they are disbursing on our behalf, such as to beneficiaries under our self-funded insurance programs. We have also occasionally used letters of credit to guarantee performance under our contracts and to ensure payment to our subcontractors and vendors under those contracts. Our lenders issue such letters of credit through the Facility. We have never had a claim made against a letter of credit that resulted in payments by a lender or by us and believe such a claim is unlikely in the foreseeable future. The letter of credit fees range from 1.25% to 2.00% per annum, based on the ratio of Consolidated Total Indebtedness to “Credit Facility Adjusted EBITDA,” which shall mean Consolidated EBITDA as such term is defined in the credit agreement.</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;">Commitment fees are payable on the portion of the revolving loan capacity not in use for borrowings or letters of credit at any given time. These fees range from 0.20% to 0.35% per annum, based on the ratio of Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA.</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;">The Facility contains financial covenants defining various financial measures and the levels of these measures with which we must comply. Covenant compliance is assessed as of each quarter end. We were in compliance with all of our financial covenants as of March 31, 2022.</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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Notes to Former Owners</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 0pt 12pt 0pt;">As part of the consideration used to acquire nine companies, we have outstanding notes to the former owners. Together, these notes had an outstanding balance of $40.2 million as of March 31, 2022. At March 31, 2022, future principal payments of notes to former owners by maturity year are as follows (dollars in thousands):</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:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.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:3.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:2.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:19.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.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:16.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.59%;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:3.2%;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.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;">Balance at</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;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.66%;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;">Range of Stated</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.59%;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:3.2%;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.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;">March 31, 2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;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.66%;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;"> Interest Rates</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;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;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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.31%;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;"> 407</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;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;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.13%;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 - 3.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.31%;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,400</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.13%;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:3.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.01%;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.31%;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;"> 10,800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.13%;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 - 3.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.01%;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.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 3pt 0pt 0pt;"> 19,550</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.13%;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.3 - 2.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.01%;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.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 3pt 0pt 0pt;"> 40,157</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.13%;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.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;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:36pt;margin:0pt;">Debt obligations consist of the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="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:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:72.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><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><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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;width:0.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></tr><tr><td style="vertical-align:bottom;width:72.13%;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.05%;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:11.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;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;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: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;">December 31, </b></p></td><td style="vertical-align:bottom;width:0.51%;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></tr><tr><td style="vertical-align:bottom;width:72.13%;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.05%;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:11.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;">2022 </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;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: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;">2021</b></p></td><td style="vertical-align:bottom;width:0.51%;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></tr><tr><td style="vertical-align:bottom;width:72.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revolving credit facility</p></td><td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.28%;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:9.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 260,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.82%;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.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 220,000</p></td><td style="vertical-align:bottom;width:0.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></tr><tr><td style="vertical-align:bottom;width:72.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Term loan</p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 112,500</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 120,000</p></td><td style="vertical-align:bottom;width:0.51%;margin: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:72.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Notes to former owners</p></td><td style="vertical-align:bottom;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 40,157</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.82%;background:#cceeff;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:10.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 47,954</p></td><td style="vertical-align:bottom;width:0.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></tr><tr><td style="vertical-align:bottom;width:72.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Finance lease liabilities (See Note 8)</p></td><td style="vertical-align:bottom;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.28%;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%;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.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.82%;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.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 266</p></td><td style="vertical-align:bottom;width:0.51%;margin: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:72.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total principal amount</p></td><td style="vertical-align:bottom;width:2.05%;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:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 412,657</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.82%;background:#cceeff;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:10.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 388,220</p></td><td style="vertical-align:bottom;width:0.51%;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></tr><tr><td style="vertical-align:bottom;width:72.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Less—unamortized debt issuance costs</p></td><td style="vertical-align:bottom;width:2.05%;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:1.28%;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%;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;"> (171)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.82%;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.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (190)</p></td><td style="vertical-align:bottom;width:0.51%;margin: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:72.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total debt, net of unamortized debt issuance costs</p></td><td style="vertical-align:bottom;width:2.05%;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:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 412,486</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.82%;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.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 388,030</p></td><td style="vertical-align:bottom;width:0.51%;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></tr><tr><td style="vertical-align:bottom;width:72.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Less—current portion</p></td><td style="vertical-align:bottom;width:2.05%;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:1.28%;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%;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;"> (407)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.82%;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:10.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (2,788)</p></td><td style="vertical-align:bottom;width:0.51%;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></tr><tr><td style="vertical-align:bottom;width:72.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total long-term portion of debt, net</p></td><td style="vertical-align:bottom;width:2.05%;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:1.28%;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.94%;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.6pt 0pt 0pt;"> 412,079</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.82%;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.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 385,242</p></td><td style="vertical-align:bottom;width:0.51%;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></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> 260000000 220000000 112500000 120000000 40157000 47954000 266000 412657000 388220000 171000 190000 412486000 388030000 407000 2788000 412079000 385242000 600000000.0 450000000.0 150000000.0 150000000.0 562500000 37500000 160000000.0 260000000.0 55600000 134400000 2 2 <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;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:40.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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:3.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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:3.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="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:40.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 style="vertical-align:bottom;white-space:nowrap;width:2.05%;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="7" style="vertical-align:bottom;white-space:nowrap;width:55.7%;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;">Consolidated Total Indebtedness to</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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></tr><tr><td style="vertical-align:bottom;width:40.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 style="vertical-align:bottom;white-space:nowrap;width:2.05%;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="7" style="vertical-align:bottom;white-space:nowrap;width:55.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Credit Facility Adjusted EBITDA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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></tr><tr><td style="vertical-align:bottom;width:40.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 style="vertical-align:bottom;white-space:nowrap;width:2.05%;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 style="vertical-align:bottom;white-space:nowrap;width:12.52%;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;">Less than 1.00</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;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 style="vertical-align:bottom;white-space:nowrap;width:9.95%;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;">1.00 to 1.75</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;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 style="vertical-align:bottom;white-space:nowrap;width:9.95%;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;">1.75 to 2.50</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;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 style="vertical-align:bottom;white-space:nowrap;width:12.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;">2.50 or greater</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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></tr><tr><td style="vertical-align:bottom;width:40.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Additional Per Annum Interest Margin Added Under:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.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:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.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:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.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><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin: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:40.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Base Rate Loan Option</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 0.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;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.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 0.50</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;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.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 0.75</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;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.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;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:40.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Eurodollar Rate Loan Option</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;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:9.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1.50</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;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:9.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1.75</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;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.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr></table> 0.0025 0.0050 0.0075 0.0100 0.0125 0.0150 0.0175 0.0200 0.019 0.020 0.0125 0.0200 0.0020 0.0035 9 40200000 <table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.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:3.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:2.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:19.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.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:16.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.59%;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:3.2%;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.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;">Balance at</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;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.66%;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;">Range of Stated</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.59%;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:3.2%;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.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;">March 31, 2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;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.66%;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;"> Interest Rates</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;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;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.01%;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.31%;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;"> 407</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;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;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.13%;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 - 3.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:19.31%;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,400</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.13%;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:3.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.01%;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.31%;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;"> 10,800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.13%;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 - 3.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.01%;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.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 3pt 0pt 0pt;"> 19,550</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.13%;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.3 - 2.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.01%;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.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 3pt 0pt 0pt;"> 40,157</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.13%;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.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td></tr></table> 407000 0.025 0.035 9400000 0.025 10800000 0.025 0.030 19550000 0.023 0.025 40157000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">8. Leases</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We lease certain facilities, vehicles and equipment primarily under noncancelable operating leases. The most significant portion of these noncancelable operating leases are for the facilities occupied by our corporate office and our operating locations. We have finance leases on vehicles that are not material to our consolidated financial position. Leases with an initial term of 12 months or less are not recorded in the Balance Sheet. We do not separate lease </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">components from their associated non-lease components pursuant to lease accounting guidance. We have certain leases with variable payments based on an index as well as some short-term leases on equipment and facilities. Variable lease expense and short-term lease expense were not material to our financial statements and aggregated to $4.1 million and $1.9 million in the first three months of 2022 and 2021, respectively. Lease right-of-use assets and liabilities are recognized at commencement date based on the present value of lease payments over the lease term. As most of our leases do not provide an implicit rate, we generally use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments. The weighted average discount rate for our operating leases as of both March 31, 2022 and December 31, 2021 was 4.0%. We recognize operating lease expense, including escalating lease payments and lease incentives, on a straight-line basis over the lease term. Operating lease expense for the three months ended March 31, 2022 and 2021 was $10.4 million and $7.2 million, respectively. </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 lease terms generally range from <span style="-sec-ix-hidden:Hidden_RhQj1UGFtUWkB59RQc2tig;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span> to ten years. Some leases include one or more options to renew, which may be exercised to extend the lease term. We include the exercise of lease renewal options in the lease term when it is reasonably certain that we will exercise the option and such exercise is at our sole discretion. The weighted average remaining lease term for our operating leases was 8.4 years at March 31, 2022 and 8.7 years at December 31, 2021.</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;">A majority of the Company’s real property leases are with individuals or entities with whom we have no other business relationship. However, in certain instances the Company enters into real property leases with current or former employees. Rent paid to related parties for the three months ended March 31, 2022 and 2021 was approximately $1.7 million and $1.3 million, respectively. </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;"><span style="white-space:pre-wrap;">If we decide to cancel or terminate a lease before the end of its term, we would typically owe the lessor the remaining lease payments under the term of the lease. Our lease agreements do not contain any material residual value guarantees or material restrictive covenants. On rare occasions, we rent or sublease certain real estate assets that we no longer use to third parties.</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;">Finance lease right-of-use assets are included in “Property and equipment, net,” and current and long-term finance lease liabilities are included within “Current maturities of long-term debt” and “Long-term debt, net,” respectively, in the Consolidated Balance Sheet. The following table summarizes the operating lease assets and liabilities included in the Consolidated Balance Sheet as follows (in thousands):</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;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"><tr style="height:1pt;"><td style="vertical-align:middle;width:61.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:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.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><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="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:middle;width:61.22%;margin:0pt;padding:0pt;"><p 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:17.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;">March 31, 2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;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:17.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;">December 31, 2021</b></p></td></tr><tr><td style="vertical-align:middle;width:61.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Operating lease right-of-use assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;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.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 124,936</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.03%;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.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 124,756</p></td></tr><tr><td style="vertical-align:middle;width:61.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Operating lease liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.32%;margin: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:middle;width:61.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_2F65gMZyXEydeR6TXuWixw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;white-space:pre-wrap;"> Other current liabilities</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;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.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 19,571</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.03%;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.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 19,050</p></td></tr><tr><td style="vertical-align:middle;width:61.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;"> Long-term operating lease liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;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.33%;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.6pt 0pt 0pt;"> 107,033</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.03%;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.32%;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.6pt 0pt 0pt;"> 107,701</p></td></tr><tr><td style="vertical-align:middle;width:61.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;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.33%;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.6pt 0pt 0pt;"> 126,604</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.03%;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.32%;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.6pt 0pt 0pt;"> 126,751</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The maturities of operating lease liabilities are as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="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:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.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;width:2.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;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:10.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></tr><tr><td style="vertical-align:bottom;width:85.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Year ending December 31—</p></td><td style="vertical-align:bottom;width:2.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="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;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:10.4%;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></tr><tr><td style="vertical-align:bottom;width:85.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2022 (excluding the three months ended March 31, 2022)</p></td><td style="vertical-align:bottom;width:2.66%;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;width:1.65%;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.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 18,388</p></td></tr><tr><td style="vertical-align:bottom;width:85.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2023</p></td><td style="vertical-align:bottom;width:2.66%;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;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 22,243</p></td></tr><tr><td style="vertical-align:bottom;width:85.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2024</p></td><td style="vertical-align:bottom;width:2.66%;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;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 19,735</p></td></tr><tr><td style="vertical-align:bottom;width:85.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2025</p></td><td style="vertical-align:bottom;width:2.66%;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;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 18,638</p></td></tr><tr><td style="vertical-align:bottom;width:85.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2026</p></td><td style="vertical-align:bottom;width:2.66%;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;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 15,646</p></td></tr><tr><td style="vertical-align:bottom;width:85.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Thereafter</p></td><td style="vertical-align:bottom;width:2.66%;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;width:1.65%;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.4%;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.6pt 0pt 0pt;"> 55,274</p></td></tr><tr><td style="vertical-align:bottom;width:85.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Total Lease Payments</p></td><td style="vertical-align:bottom;width:2.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 149,924</p></td></tr><tr><td style="vertical-align:bottom;width:85.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Less—Present Value Discount</p></td><td style="vertical-align:bottom;width:2.66%;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="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;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.4%;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;"> (23,320)</p></td></tr><tr><td style="vertical-align:bottom;width:85.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Present Value of Operating Lease Liabilities</p></td><td style="vertical-align:bottom;width:2.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;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.4%;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.6pt 0pt 0pt;"> 126,604</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Supplemental information related to operating leases was as follows (in thousands):</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:middle;width:66.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:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.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.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:1.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.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></tr><tr><td style="vertical-align:bottom;width:66.87%;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:bottom;white-space:nowrap;width:33.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;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:66.87%;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:15.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;">2022</b></p></td><td style="vertical-align:bottom;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:bottom;white-space:nowrap;width:15.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;">2021</b></p></td></tr><tr><td style="vertical-align:middle;width:66.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Cash paid for amounts included in the measurement of operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,314</p></td><td style="vertical-align:bottom;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="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,353</p></td></tr><tr><td style="vertical-align:middle;width:66.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Operating lease right-of-use assets obtained in exchange for lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,914</p></td><td style="vertical-align:bottom;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:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,432</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;font-weight:bold;visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We lease certain facilities, vehicles and equipment primarily under noncancelable operating leases. The most significant portion of these noncancelable operating leases are for the facilities occupied by our corporate office and our operating locations. We have finance leases on vehicles that are not material to our consolidated financial position. Leases with an initial term of 12 months or less are not recorded in the Balance Sheet. We do not separate lease </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">components from their associated non-lease components pursuant to lease accounting guidance. We have certain leases with variable payments based on an index as well as some short-term leases on equipment and facilities. Variable lease expense and short-term lease expense were not material to our financial statements and aggregated to $4.1 million and $1.9 million in the first three months of 2022 and 2021, respectively. Lease right-of-use assets and liabilities are recognized at commencement date based on the present value of lease payments over the lease term. As most of our leases do not provide an implicit rate, we generally use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments. The weighted average discount rate for our operating leases as of both March 31, 2022 and December 31, 2021 was 4.0%. We recognize operating lease expense, including escalating lease payments and lease incentives, on a straight-line basis over the lease term. Operating lease expense for the three months ended March 31, 2022 and 2021 was $10.4 million and $7.2 million, respectively. </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 lease terms generally range from <span style="-sec-ix-hidden:Hidden_RhQj1UGFtUWkB59RQc2tig;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span> to ten years. Some leases include one or more options to renew, which may be exercised to extend the lease term. We include the exercise of lease renewal options in the lease term when it is reasonably certain that we will exercise the option and such exercise is at our sole discretion. The weighted average remaining lease term for our operating leases was 8.4 years at March 31, 2022 and 8.7 years at December 31, 2021.</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;">A majority of the Company’s real property leases are with individuals or entities with whom we have no other business relationship. However, in certain instances the Company enters into real property leases with current or former employees. Rent paid to related parties for the three months ended March 31, 2022 and 2021 was approximately $1.7 million and $1.3 million, respectively. </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;"><span style="white-space:pre-wrap;">If we decide to cancel or terminate a lease before the end of its term, we would typically owe the lessor the remaining lease payments under the term of the lease. Our lease agreements do not contain any material residual value guarantees or material restrictive covenants. On rare occasions, we rent or sublease certain real estate assets that we no longer use to third parties.</span></p> 4100000 1900000 0.040 0.040 10400000 7200000 P10Y 1 true P8Y4M24D P8Y8M12D 1700000 1300000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Finance lease right-of-use assets are included in “Property and equipment, net,” and current and long-term finance lease liabilities are included within “Current maturities of long-term debt” and “Long-term debt, net,” respectively, in the Consolidated Balance Sheet. The following table summarizes the operating lease assets and liabilities included in the Consolidated Balance Sheet as follows (in thousands):</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;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:79.99%;"><tr style="height:1pt;"><td style="vertical-align:middle;width:61.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:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.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><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="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:middle;width:61.22%;margin:0pt;padding:0pt;"><p 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:17.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;">March 31, 2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;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:17.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;">December 31, 2021</b></p></td></tr><tr><td style="vertical-align:middle;width:61.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Operating lease right-of-use assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;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.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 124,936</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.03%;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.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 124,756</p></td></tr><tr><td style="vertical-align:middle;width:61.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Operating lease liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.32%;margin: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:middle;width:61.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_2F65gMZyXEydeR6TXuWixw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;white-space:pre-wrap;"> Other current liabilities</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;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.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 19,571</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.03%;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.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 19,050</p></td></tr><tr><td style="vertical-align:middle;width:61.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;"> Long-term operating lease liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;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.33%;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.6pt 0pt 0pt;"> 107,033</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.03%;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.32%;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.6pt 0pt 0pt;"> 107,701</p></td></tr><tr><td style="vertical-align:middle;width:61.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;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.33%;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.6pt 0pt 0pt;"> 126,604</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.03%;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.32%;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.6pt 0pt 0pt;"> 126,751</p></td></tr></table> 124936000 124756000 19571000 19050000 107033000 107701000 126604000 126751000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The maturities of operating lease liabilities are as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="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:79.99%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.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;width:2.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;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:10.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></tr><tr><td style="vertical-align:bottom;width:85.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Year ending December 31—</p></td><td style="vertical-align:bottom;width:2.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="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;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:10.4%;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></tr><tr><td style="vertical-align:bottom;width:85.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2022 (excluding the three months ended March 31, 2022)</p></td><td style="vertical-align:bottom;width:2.66%;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;width:1.65%;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.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 18,388</p></td></tr><tr><td style="vertical-align:bottom;width:85.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2023</p></td><td style="vertical-align:bottom;width:2.66%;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;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 22,243</p></td></tr><tr><td style="vertical-align:bottom;width:85.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2024</p></td><td style="vertical-align:bottom;width:2.66%;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;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 19,735</p></td></tr><tr><td style="vertical-align:bottom;width:85.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2025</p></td><td style="vertical-align:bottom;width:2.66%;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;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 18,638</p></td></tr><tr><td style="vertical-align:bottom;width:85.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">2026</p></td><td style="vertical-align:bottom;width:2.66%;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;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 15,646</p></td></tr><tr><td style="vertical-align:bottom;width:85.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Thereafter</p></td><td style="vertical-align:bottom;width:2.66%;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;width:1.65%;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.4%;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.6pt 0pt 0pt;"> 55,274</p></td></tr><tr><td style="vertical-align:bottom;width:85.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Total Lease Payments</p></td><td style="vertical-align:bottom;width:2.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 149,924</p></td></tr><tr><td style="vertical-align:bottom;width:85.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Less—Present Value Discount</p></td><td style="vertical-align:bottom;width:2.66%;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="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;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.4%;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;"> (23,320)</p></td></tr><tr><td style="vertical-align:bottom;width:85.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;">Present Value of Operating Lease Liabilities</p></td><td style="vertical-align:bottom;width:2.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 24pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.65%;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.4%;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.6pt 0pt 0pt;"> 126,604</p></td></tr></table> 18388000 22243000 19735000 18638000 15646000 55274000 149924000 23320000 126604000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Supplemental information related to operating leases was as follows (in thousands):</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:middle;width:66.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:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.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.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:1.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.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></tr><tr><td style="vertical-align:bottom;width:66.87%;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:bottom;white-space:nowrap;width:33.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;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:66.87%;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:15.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;">2022</b></p></td><td style="vertical-align:bottom;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:bottom;white-space:nowrap;width:15.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;">2021</b></p></td></tr><tr><td style="vertical-align:middle;width:66.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Cash paid for amounts included in the measurement of operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,314</p></td><td style="vertical-align:bottom;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="font-size:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,353</p></td></tr><tr><td style="vertical-align:middle;width:66.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">Operating lease right-of-use assets obtained in exchange for lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,914</p></td><td style="vertical-align:bottom;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:9pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,432</p></td></tr></table> 6314000 5353000 4914000 6432000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">9. Commitments and Contingencies</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;margin-left:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 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;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;">We are subject to certain legal and regulatory claims, including lawsuits arising in the normal course of business. We maintain various insurance coverages to minimize financial risk associated with these claims. We have estimated and provided accruals for probable losses and related legal fees associated with certain litigation in the accompanying consolidated financial statements. While we cannot predict the outcome of these proceedings, in management’s opinion and based on reports of counsel, any liability arising from these matters individually and in the aggregate will not have a material effect on our operating results, cash flows or financial condition, after giving effect to provisions already recorded.</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;">We are in a dispute with a customer regarding the outcome of a completed project and also regarding the obligation to perform subcontract work under two executed letters of intent for subsequent projects that we believe are not enforceable. The customer is claiming approximately $12 million in damages related to performance of the original project as well as excess costs to perform the work that was subject to the letters of intent. We are claiming approximately $9 million composed of unpaid amounts under the completed contract as well as costs and inefficiencies that we suffered. We have a lien on the project, and this matter is currently scheduled for arbitration in the second quarter of 2022 with a likely decision in the following months. As of March 31, 2022, we recorded an accrual for this matter based on our analysis of likely outcomes related to this dispute; however, it is possible that the ultimate outcome and associated costs will deviate from our estimates and that, in the event of an unexpectedly adverse outcome, we may experience additional costs and expenses in future periods.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Surety</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;">Many customers, particularly in connection with new construction, require us to post performance and payment bonds issued by a financial institution known as a surety. If we fail to perform under the terms of a contract or to pay subcontractors and vendors who provided goods or services under a contract, the customer may demand that the surety make payments or provide services under the bond. We must reimburse the surety for any expenses or outlays it incurs. To date, we are not aware of any losses to our sureties in connection with bonds the sureties have posted on our behalf and do not expect such losses to be incurred in the foreseeable future.</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;">Current market conditions for surety markets and bonding capacity are adequate, with acceptable terms and conditions. Historically, approximately 15% to 25% of our business has required bonds. While we currently have strong surety relationships to support our bonding needs, future market conditions or changes in the sureties’ assessment of our operating and financial risk could cause the sureties to decline to issue bonds for our work. If that were to occur, the alternatives include doing more business that does not require bonds, posting other forms of collateral for project performance, such as letters of credit or cash, and seeking bonding capacity from other sureties. We would likely also encounter concerns from customers, suppliers and other market participants as to our creditworthiness. While we believe our general operating and financial characteristics would enable us to ultimately respond effectively to an interruption in the availability of bonding capacity, such an interruption would likely cause our revenue and profits to decline in the near term.</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;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Self-Insurance</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;">We are substantially self-insured for workers’ compensation, employer’s liability, auto liability, general liability and employee group health claims, in view of the relatively high per-incident deductibles we absorb under our insurance arrangements for these risks. Losses are estimated and accrued based upon known facts, historical trends and industry averages. Estimated losses in excess of our deductible, which have not already been paid, are included in our accrual </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">with a corresponding receivable from our insurance carrier. Loss estimates associated with the larger and longer-developing risks, such as workers’ compensation, auto liability and general liability, are reviewed by a third-party actuary quarterly.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> 2 12000000 9000000 0.15 0.25 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">10. Stockholders’ Equity</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;margin-left:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Earnings Per Share</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;">Basic earnings per share (“EPS”) is computed by dividing net income by the weighted average number of shares of common stock outstanding during the year. Diluted EPS is computed considering the dilutive effect of stock options, restricted stock, restricted stock units and performance stock units. The vesting of unvested, contingently issuable performance stock units is based on the achievement of certain earnings per share targets and total shareholder return. These shares are considered contingently issuable shares for purposes of calculating diluted earnings per share. These shares are not included in the diluted earnings per share denominator until the performance criteria are met, if it is assumed that the end of the reporting period was the end of the contingency period.</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;">Unvested restricted stock, restricted stock units and performance stock units are included in diluted earnings per share, weighted outstanding until the shares and units vest. Upon vesting, the vested restricted stock, restricted stock units and performance stock units are included in basic earnings per share weighted outstanding from the vesting date.</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;">There were zero and less than 0.1 million anti-dilutive stock options excluded from the calculation of diluted EPS for the three months ended March 31, 2022 and 2021, respectively. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="white-space:pre-wrap;"> </span><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 table reconciles the number of shares outstanding with the number of shares used in computing basic and diluted earnings per share for each of the periods presented (in thousands):</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;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:90%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:78.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;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;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;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:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:78.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';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.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 colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.17%;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><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></tr><tr><td style="vertical-align:bottom;width:78.46%;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:2.1%;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="3" style="vertical-align:bottom;white-space:nowrap;width:18.17%;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 31, </b></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;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:78.46%;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:2.1%;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 style="vertical-align:bottom;white-space:nowrap;width:8.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;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;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 style="vertical-align:bottom;white-space:nowrap;width:7.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></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;"><b style="font-weight:bold;"> </b></p></td></tr><tr><td style="vertical-align:bottom;width:78.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Common shares outstanding, end of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 35,953</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;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:7.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 36,255</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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:78.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Effect of using weighted average common shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.35%;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.6pt 0pt 0pt;"> 123</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;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:7.7%;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.6pt 0pt 0pt;"> 31</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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:78.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Shares used in computing earnings per share—basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 36,076</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;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:7.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 36,286</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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:78.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Effect of shares issuable under stock option plans based on the treasury stock method</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 43</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;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:7.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 131</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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:78.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Effect of restricted and contingently issuable shares</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.35%;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.6pt 0pt 0pt;"> 69</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;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:7.7%;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.6pt 0pt 0pt;"> 82</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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:78.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Shares used in computing earnings per share—diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.35%;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.6pt 0pt 0pt;"> 36,188</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;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:7.7%;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.6pt 0pt 0pt;"> 36,499</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="visibility:hidden;">​</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;margin-left:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;">Share Repurchase Program</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;">On March 29, 2007, our Board of Directors (the “Board”) approved a stock repurchase program to acquire up to 1.0 million shares of our outstanding common stock. Subsequently, the Board has from time to time increased the number of shares that may be acquired under the program and approved extensions of the program. On December 8, 2020, the Board approved an extension to the program by increasing the shares authorized for repurchase by 0.7 million shares. Since the inception of the repurchase program, the Board has approved 10.3 million shares to be repurchased. As of March 31, 2022, we have repurchased a cumulative total of 9.8 million shares at an average price of $22.77 per share under the repurchase program.</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;">The share repurchases will be made from time to time at our discretion in the open market or privately negotiated transactions as permitted by securities laws and other legal requirements, and subject to market conditions and other factors. The Board may modify, suspend, extend or terminate the program at any time. During the three months ended March 31, 2022, we repurchased 0.2 million shares for approximately $14.1 million at an average price of $87.23 per share. </p> 0 100000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following table reconciles the number of shares outstanding with the number of shares used in computing basic and diluted earnings per share for each of the periods presented (in thousands):</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;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:90%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:78.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;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;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;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:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:78.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';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.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 colspan="3" style="vertical-align:bottom;white-space:nowrap;width:18.17%;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><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></tr><tr><td style="vertical-align:bottom;width:78.46%;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:2.1%;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="3" style="vertical-align:bottom;white-space:nowrap;width:18.17%;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 31, </b></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;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:78.46%;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:2.1%;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 style="vertical-align:bottom;white-space:nowrap;width:8.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;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;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 style="vertical-align:bottom;white-space:nowrap;width:7.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></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;"><b style="font-weight:bold;"> </b></p></td></tr><tr><td style="vertical-align:bottom;width:78.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Common shares outstanding, end of period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 35,953</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;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:7.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 36,255</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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:78.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Effect of using weighted average common shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.35%;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.6pt 0pt 0pt;"> 123</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;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:7.7%;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.6pt 0pt 0pt;"> 31</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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:78.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Shares used in computing earnings per share—basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 36,076</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;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:7.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 36,286</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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:78.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Effect of shares issuable under stock option plans based on the treasury stock method</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 43</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;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:7.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 131</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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:78.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Effect of restricted and contingently issuable shares</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.35%;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.6pt 0pt 0pt;"> 69</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;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:7.7%;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.6pt 0pt 0pt;"> 82</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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:78.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Shares used in computing earnings per share—diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.35%;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.6pt 0pt 0pt;"> 36,188</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;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:7.7%;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.6pt 0pt 0pt;"> 36,499</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="visibility:hidden;">​</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-indent:-18pt;margin:0pt 0pt 0pt 36pt;"><span style="font-style:italic;font-weight:bold;margin-left:0pt;visibility:hidden;">​</span></p> 35953000 36255000 123000 31000 36076000 36286000 43000 131000 69000 82000 36188000 36499000 1000000.0 700000 10300000 9800000 22.77 200000 14100000 87.23 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">11. Segment Information</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Our activities are within the mechanical services industry and the electrical services industry, which represent our two reportable segments. We aggregate our operating segments into two reportable segments, as the operating </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="white-space:pre-wrap;">segments meet all of the aggregation criteria. </span><span style="white-space:pre-wrap;">The following table presents information about our reportable segments (in thousands):</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><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:89%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:34.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:2.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:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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:2.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:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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></tr><tr><td style="vertical-align:bottom;width:34.25%;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:2.91%;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="11" style="vertical-align:bottom;white-space:nowrap;width:62.83%;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, 2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.25%;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.91%;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:13.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;">Mechanical Services</b></p></td><td style="vertical-align:bottom;width:2.92%;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:11.77%;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;">Electrical Services</b></p></td><td style="vertical-align:bottom;width:2.92%;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:14.81%;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;">Corporate</b></p></td><td style="vertical-align:bottom;width:2.92%;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: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:center;margin:0pt;"><b style="font-weight:bold;">Consolidated</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 682,511</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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:9.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 202,705</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 885,216</p></td></tr><tr><td style="vertical-align:bottom;width:34.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross Profit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 126,728</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 26,416</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 153,144</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:34.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.25%;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:2.91%;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="11" style="vertical-align:bottom;white-space:nowrap;width:62.83%;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, 2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.25%;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.91%;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:13.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;">Mechanical Services</b></p></td><td style="vertical-align:bottom;width:2.92%;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:11.77%;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;">Electrical Services</b></p></td><td style="vertical-align:bottom;width:2.92%;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:14.81%;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;">Corporate</b></p></td><td style="vertical-align:bottom;width:2.92%;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: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:center;margin:0pt;"><b style="font-weight:bold;">Consolidated</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 565,620</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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:9.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 104,141</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 669,761</p></td></tr><tr><td style="vertical-align:bottom;width:34.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross Profit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 108,128</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 15,341</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 123,469</p></td></tr><tr><td style="vertical-align:bottom;width:34.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.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:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.3%;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.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:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.72%;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.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:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.76%;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.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:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.04%;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></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p> 2 2 <span style="white-space:pre-wrap;">The following table presents information about our reportable segments (in thousands):</span><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;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:89%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:34.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:2.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:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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:2.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:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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></tr><tr><td style="vertical-align:bottom;width:34.25%;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:2.91%;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="11" style="vertical-align:bottom;white-space:nowrap;width:62.83%;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, 2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.25%;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.91%;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:13.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;">Mechanical Services</b></p></td><td style="vertical-align:bottom;width:2.92%;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:11.77%;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;">Electrical Services</b></p></td><td style="vertical-align:bottom;width:2.92%;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:14.81%;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;">Corporate</b></p></td><td style="vertical-align:bottom;width:2.92%;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: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:center;margin:0pt;"><b style="font-weight:bold;">Consolidated</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 682,511</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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:9.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 202,705</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 885,216</p></td></tr><tr><td style="vertical-align:bottom;width:34.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross Profit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 126,728</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 26,416</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 153,144</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:34.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.25%;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:2.91%;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="11" style="vertical-align:bottom;white-space:nowrap;width:62.83%;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, 2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.25%;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.91%;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:13.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;">Mechanical Services</b></p></td><td style="vertical-align:bottom;width:2.92%;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:11.77%;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;">Electrical Services</b></p></td><td style="vertical-align:bottom;width:2.92%;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:14.81%;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;">Corporate</b></p></td><td style="vertical-align:bottom;width:2.92%;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: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:center;margin:0pt;"><b style="font-weight:bold;">Consolidated</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 565,620</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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:9.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 104,141</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 669,761</p></td></tr><tr><td style="vertical-align:bottom;width:34.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross Profit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 108,128</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 15,341</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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:2.05%;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.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 123,469</p></td></tr><tr><td style="vertical-align:bottom;width:34.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.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:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.3%;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.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:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.72%;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.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:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.76%;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.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:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New 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.04%;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></table> 682511000 202705000 885216000 126728000 26416000 153144000 565620000 104141000 669761000 108128000 15341000 123469000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">12. Subsequent Event</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">On April 1, 2022, we acquired all of the issued and outstanding equity interests of Atlantic Electric, LLC and its related subsidiary (together, “Atlantic”). Atlantic is headquartered in Charleston, South Carolina, and performs electrical contracting for customers in various South Carolina markets, as well as installation of airport runway lighting in the Southeast. We expect Atlantic to initially contribute annualized revenues of approximately $50 million. The transaction was primarily funded from the Company’s revolving credit facility.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> 50000000 EXCEL 60 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( ,F"FU0'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 " #)@IM4;M$4&.X K @ $0 &1O8U!R;W!S+V-O&ULS9+/ M2@,Q$(=?17+?G6PJ%<)V+Q5/"H(%Q5M(IFUP\X=D9+=O;W9MMX@^@,?,_/+- M-S"MCE*'A,\I1$QD,=^,KO=9ZKAA1Z(H ;(^HE.Y+@E?FON0G*+R3 >(2G^H M X+@? T.21E%"B9@%1'MZ?)G7K:S/ MI+S&\BM;2:>(&W:9_+K:WN\>6">X$!6_K<3=3G IA.3K]\GUA]]5V 5C]_8? M&U\$NQ9^W47W!5!+ P04 " #)@IM4F5R<(Q & "<)P $P 'AL+W1H M96UE+W1H96UE,2YX;6SM6EMSVC@4?N^OT'AG]FT+QC:!MK03621A'^_1S80RY8-[9)-NIL\!"SI^\Y%1^?H.'GS[BYBZ(:(E/)X M8-DOV]:[MR_>X%#BVR]*+ M41B1%G\@M MNN01.+5)#3(3/PB=AIAJ4!P"I DQEJ&&^+3&K!'@$WVWO@C(WXV(]ZMOFCU7 MH5A)VH3X$$8:XIQSYG/1;/L'I4;1]E6\W*.76!4!EQC?-*HU+,76>)7 \:V< M/!T3$LV4"P9!AI@S M&L%&KQMUAVC2/'K^!?F<-0HACA*FNVB<5@$_9Y>PTG!Z(++9OVX?H;5,VPLCO='U!=*Y \FIS_I,C0' MHYI9";V$5FJ?JH,@H%\;D>/N5Z> HWEL:\4*Z">P'_T=HWPJOX@L Y M?RY]SZ7ON?0]H=*W-R-]9\'3BUO>1FY;Q/NN,=K7-"XH8U=RSTS0LS0[=R2^JVE+ZU)CA* M]+',<$X>RPP[9SR2';9WH!TU^_9==N0CI3!3ET.X&D*^ VVZG=PZ.)Z8D;D* MTU*0;\/YZ<5X&N(YV02Y?9A7;>?8T='[Y\%1L*/O/)8=QXCRHB'NH8:8S\-# MAWE[7YAGE<90-!1M;*PD+$:W8+C7\2P4X&1@+: '@Z]1 O)256 Q6\8#*Y"B M?$R,1>APYY=<7^/1DN/;IF6U;J\I=QEM(E(YPFF8$V>KRMYEL<%5'<]56_*P MOFH]M!5.S_Y9KF4Q9Z;RWRT,"2Q;B%D2XDU=[=7GFYRN>B)V^I=W MP6#R_7#)1P_E.^=?]%U#KG[VW>/Z;I,[2$R<><41 71% B.5' 86%S+D4.Z2 MD 83 >LX=SFWJXPD6L_UC6'ODRWSEPVSK> U[F M$RQ#I'[!?8J*@!&K8KZZKT_Y)9P[M'OQ@2";_-;;I/;=X Q\U*M:I60K$3]+ M!WP?D@9CC%OT-%^/%&*MIK&MQMHQ#'F 6/,,H68XWX=%FAHSU8NL.8T*;T'5 M0.4_V]0-:/8--!R1!5XQF;8VH^1."CS<_N\-L,+$CN'MB[\!4$L#!!0 ( M ,F"FU0__4]$4@4 !46 8 >&PO=V]R:W-H965T&UL MI5A=&':%QL!>SA:K<[N:KB5ZCE96S&4R#\Y9M&/&(^]I ,/A[X1,>108)>'S;@;:* M;QK#P^L]^G4V>9C,@B5\(J,_PD"OSUN#%@GXDJ61?I3;+WPWH:[!\V649+]D MF[_;Z;2(GR9:QCMC8!"'(O]GKSM''!BX]A$#NC.@'PR<8U]P=P:9YZR<63:M M2Z;9:*CDEBCS-J"9B\PWF37,)A1F&3VMX&D(=GIT*?T45D43)@)R)72HW\A4 MY.%AW-PFR9HIG@PM#5\S-I:_0[[(D>D19)?<2J'7": &/'AO;P'+@BK=4[V@ M*. M4Z?$=4X(M2FMX#/!S<<;,*>TROP=';?PG)OAN4?P)O*%*_+W>)%H!<'X M#P+9*2 [&62G;C'F;QM>Y7'WU_>.<>$_>_.K6(U^]\04(>K8I1C: M3:A.A2\5+&$F@2?$TQ!K1"HRD:G0Z@W^@TK^->B75QC) \5VFI"T['++7 M[Y(+V/UB12X5)'Z,9ZG@COO?>9Y5'9L&V-9)@4'E_6/+"=F M!-$XEUM1R1"'^R)-52$P:F6F<'!]_TBMV"DS)5]"X5>O-(XY_Q.C5J8,!U?Z MC]1F,M$L(G^%F^/;%T?L]^TNNC_*E.'@.I^MX!BJ[N-4<("^XV)$RCSAX")_ M(WWPR6PM!98H:D &KMT^Z^'!7N8*!Q?Y>:@A:A/BY^)Q_U4@;EO[S"?G!/K4=LF&*O+ (+4IHF2THKN>0\0,C2-Y;O)!1%<4:@.LI M%NNTS @4E^^]E\C5J[]F8L6/9M@:H+LG#\M1M,P M%$&F*1*F=HH+X@R7X%" MI)7=1 WBT\<>Y#VS4O-I(\V?"JAL\Q[2E))L3[62&8Y8PZS4>=I(YTW5!J4& M".E*JLK K\&Y80HB8.S[T"M#"<.#'!+C6 H^;23X7LRBB%RD"3Q.JE<3QZFK M=&FI\[21SE_%7*U,@/T*"'H-PAIOF*AV'PY82ZV4>8JK]-Y9:P[.P@C]OZZ MEG)/&_4%[Y71R_I[@U 8 >&PO M=V]R:W-H965T&ULK9EO;^(Z%L:_BH5&NKL2'?PGB9-16XE" MID5+H0MT[]Z7*9@234BXB6EG]M/O<4()Q([IZNZ+F2;AV'F>$]N_X^3Z/MURN6&[&-BJ_93J3PRSK+MY&$T_RU5^QR$:W*1MND M1S'V>MLH3CNWU^6UI_SV.MO+)$[%4XZ*_78;Y;_N1)*]WW1(Y^/"+'[=2'6A M=WN]BU[%7,CGW5,.9[UC+ZMX*](BSE*4B_5-IT^^#5B@&I01_XK%>W%RC)25 MERS[H4Y&JYL.5HI$(I92=1'!GS@(=?QXZ[1SOJ1J>'G_T_KTT#V9> MHD(,LN3W>"4W-QV_@U9B'>T3.'\3!D*OZ6V9)4?Z/W@^QN(.6^T)FVT-C M4+"-T^IO]/.0B),&Q&EI0 \-Z&<;L$,#5AJME)6VAI&,;J_S[!WE*AIZ4P=E M;LK6X"9.U6.#3L+\(ANNN/^Y-!B.8/8;B8HROT/!^B MOWWY._J"XA0M-MF^B-)5<=V3<&?5OK<\W.6NN@MMN6Q.SIOWP._1-#V:IF5_K,WT\VP63A:H/Y^#SV^6'MFQ1U;VZ+3U&!4; M!+E!2W4@_MS';U$B4FG,5=655W:EIMG;+2&N1]SKWMMI3O0PU^?<.T:="76. M0AVKT+LX2<0*9L\RVX,\F(E+ 5I?$M%%B2@*%"4PLZ-T*1"L$6B9BU4L49(5 MA2A0MD9?_*X7.*55./2QWX4NBITH9V/RRV2W$N2>^/"QXS/:L*N'<O:-7S^IU*CSRP8]W2#S.&\8U*-<[@0M!OG1(+<:'*5O,*>R/!;&><6U>U*X MI=]09H@BOLO,RORC,M^J["D7NRA>(?$3^*KRJO*9J>=A$NIK$AAAG#6$ZE&4 M<>R8A09'H8%]H_%RJ(0/#0LT;=?63@\AE MAT7!N3R$ LT9\2$##?]Z% T"C,W^":Z!AZT96&0R2@"M>0YC"45@P+Q*'[HY M4TE8X-&@H=,4B"EGM&6TDQ,V$_NHFDV?PMGB#]2?#%'XS^?1TR-@JXLFX<*H MF.A"*.>DN?@8XWS7;1E:I,8JH5:]X[ _#]%L=/^PN)I^OWJ&DQ*Q1K'4(,() MF-<4:XSC;@L72$UL8D?V_70Z_'TT'AO%,7WY"EC@-%!B!2TY;8<3L, MOX=06PW1HO_O@UBC3IU_%+L:1$QA-,!NB\J:D^0"*!:Z9XISG7:1-52H'2H@,M\# M]9?95M4J4;6;!G2_B%2L8_-(HR9D&!868UP0\):%A9[LV.QHN3M4(^A4:N.$R@H/$]+JR&.!$Y;34=K[% [ M=LYKNDMJ=:KX+H?!W%1KB&->:YE$:_Q0.W[&T\G]U2*-=>SE$=*@ZA MF&LZ]3CFN]2A+3IK_% [?JIR[F1E-ZK4T4(PQZR)(',RK"G>:+ETM1YT)KHE$[T:JJHW[XE[3JC')ALFA/7P_CP/:6\IC5+&.? MV29=F$K,L/5Q&,98>Y=E"L3,<5IPQFJ<,3O.!M/'Q]%"[8OFY39I,(7">7(? M3@8M>;7WIUZ;?RMVT5+<=':PCQ7YF^C<(M,[R_]#1^>>:Q@R^_O+^6(Z^,?# M=#P,9_/?RHWAX@_K6\R3UYAV/CWE8BU@%05"R6SYHXN^?,4$RIF\B]PN/%?U M#Q6;*%>O./9RD^7Q?\2JB](L%2@N"L6V\M7'7A82#@#$QF=@5?&_/(._WM%Y MIFI ,CL@!]EV"X63EB;8^G<#+^@&A)H2Y9 NH:P+'"GS=')Z"*Z2>/D="M-9 MZF@[_0M!Y]9KVK(+M,U%!)7+KP_SD2P+,35$",==*%)*;S!@&.TR0@[6/N%) M)^X5E&>^XS1]F0)=[+85:*QF,[.SN;]:Q:HBAK5/O="#&@TMHUT,:Z%1L &] MC 1:/6F*HQQ[;8^B1C2S(WHF9 27[%4OT]'+"?:])J(-<1[U.6\I>%B-:&9' M=,62^K;Z&.6OL'= B5A#2_R50PKRZG-E=2*S7?G%[R63 M,MN6AQL1@7 5 +^OLTQ^G*B/B,>/QK?_!5!+ P04 " #)@IM4BH&DD),# M "]# & 'AL+W=OMJ5]K;1IKU[[< D6#4X9YNFNY_^QH122"AIM[J\"!AF MQK^_/;:'\4ZJ!YT &/*4BDQ/G,28[6?7U5$"*=.7<@L9OEE+E3*#3;5Q]58! MBPNG5+B^Y_7=E/',F8Z+9PLU'8R(PK6$^>*?I[1GG4H+/[FL-.U>V*EK*1\ ML(VO\<3Q+!$(B(P-P?#R"#,0PD9"CG_+H$[5IW6LWS]'_[,0CV)63,-,BG]X M;)*),W1(#&N6"_-#[KY *2BT\2(I=/%/=J6MYY HUT:FI3,2I#S;7]E3.1 U M!Q3:[N"7#OY;'8+2(2B$[LD*67-FV'2LY(XH:XW1[$TQ-H4WJN&9G<:E4?B6 MHY^9SFZ_+V^_?9U?W=W,R?75MZOOLQNR_')S<[V'VL#V2+T= ;5D8-0;U*4*]3T'VV^I\D[?L-:[2#D!XH:K&A8;N@L!(4 M=@JZQ1Q7-1'Z8RK"(\+>:'B@XM@F]()V%?U*1;]3Q4QJG IO5O)]%X,:EG?I'>;9":,&_;"B'[Z/OF#$ M2_18TUSIO!QX=@1RB=EDT(*GWNC2#U_U!^-J'\(_1;3)OG+84R[3^-6\M=3N8S6V,PI]8.@'QY" MO\&RR?QRWM+N _<."W2=JY]-ZE;@K &^7TMIGANV@JV^ M6*;_ 5!+ P04 " #)@IM4N*M._\H$ E$0 & 'AL+W=O$W+$!'[ M>L=SG"1E),;Q=QUTT(Q9.EY>?T9_J))GR;Q%!9Z3Y*]X0_?W VL -G@;'1.Z M(J>?N$YH5,9;DZ2H/L&IME4'8'TL*$EK9T:0QMGY._JH)^+"@<41.Z#: 74= M]!X'K7;0JD3/9%5:BXA&DW%.3B OK5FT\J*:F\J;91-GY3(&-&>_QLR/3N:^ M%_A/[F(:.@L0A.SKV?'" /@/P%\ZJVGH,@,P!"_! ES]N ;%/LIQ >(,A'MR M+*)L4]R 'U_NQPIE8&5X95U#S,X0J =" \\DH_L".-D&;[[Z*RRA)BOTF=4, M20,^1_DMT. -0"I" I[Y]]VA!$=K)EFKXFG_9Y(EX^C-.'HUCMXSSLIY=;P7 M1[0 9T>C)98T0-,;*^^6\\&:&89L&;,R^<(T:KI&4:^X'89ELX*Q> MW;D3B #/$487(YL:4DW4 >3-1KJ!;"0&-!I 0PKXF).B (><;&,J@C.X4>%( M@[K>@1.8(4TW;#&7IRO<<;\.AX;+,\@:FW -/%L^NY05ANGE<' M.+^6CA>(9];DJ:!IFMVEY\TL"T%=S&XU[)9\8J>N!WP/!-,GI]P!TR!P0B&E MQ0T_U)#68109C50QHMT@VE)$_X#SB,;9CHG8FJ18!&=SXVHCPX8=.J&5.A+C M0;55:%6J'G[XTUD!UYO[SPZXJE?Z^DZB%_!"_:$T>3>CF.DYE>1>1_B25B=Q MJ^1X0_6LA1B-,3O!P21W<43F$'=-GL06U6'FES6]E&V.Q=#NL=@ M&\4Y>(^2(P9D"]:LHK%-A3.6091G0]9" ?*6Q+NH;%_$15+C.'75LKK9\%80 M6D9/,FWI@/+:X;,4FOVJ#)JZP62UXM%G!QIMT6OL>!WL'@C M"59;+!"2KD U[0$[I+#^FC4<;#F6+R'KF=J< M]:?5";?S? ;OYN<3>QOF_ <".X/MXJP "=ZRD&R3,*;\?"8_WU!RJ(ZU;X2R M0W)UNE ?M]2PC]O"D':/X9F?P#4$L#!!0 ( ,F"FU25O]H!3P8 M !T> 8 >&PO=V]R:W-H965T&ULO5EK QSXKZ9+1F;/-F,JGC-ATVOQV59U.RRW+TH)>5:#>YGE4/;VE6?EP,H*C M;S]0I\7N.WIL)V+/ &*# 6H-D&S@&0QP:X E ^0;#-S6P)5'" P& M7FO@'1L#:0U(,_>[R6IF>AZQZ'1:E0^@$FCN35PTR]58\PE."Y%9*U;Q?U-N MQTYGEQ>KRP_G\[.;Q1RL;OC7Q\7%S0I<+OG=Y>S]N\L/\\7UZG>P^.O3^;@Y8M7X 5("W"S+K=U5"3U=,(X&^%S$K5D]&^[G=_BQ)4I':40:NHC09GQ=@%FU2%F4:7PN[KVO*^!:F M"5A$59$6=[K)6!X(IU1&GO"5[)83=M71\W3SJLWG">$,?'T?-R.C_LS M^,Q=[M8:\*H E!MQ!M6 /M(J3FN:Z-8[4'8#))!(&S!0 MDP+)NWFI@J#K&+(X["(+GR6R_33711DJW AT/5=/#CJ]O#E'T^-#LRJ-&2=3 MBX4%OT7YYD^PH553H0E4;50C1UD%W_>E16A!PPG&\BIH4 @Y@2'2/2&'SQ[I MH45IAQQ0#3W7M"J]2D&[3*UVB5+1F/*Z,A''3);2K:#.HD=> K&U.'&XEH)- M],0+609XJ7#/H^)@.3@M<8UP!7O9U*X$4G=-8,RY7F>@76B>-;J#2Z3*TQA" M%YFBZ-4)VN6I.?O&HFI/ #^F>2M31V)/:VLM59.0ZR-YN@^@AD1[V8*>E>@\ MO4\3JJ]!%ZWM4"TAP3*U0[ AMU[DH%WEFE3@:[K95O&:3Z5V!8DF5P-/9JB* MW0 U)-B+'?2_B^#!=/,UZ8:1YQB(] ()[0JY5[E^C*JN H+:QD*51+5TU8!X M[1IX02B?VJHL8L3%1\J1A0;G(0_B0%XI%>@_G.E LT#5(&#KGWFHK<7]!BH5X:D5T:[4T64D4O M(#Z19;N%$2-L2*[71D2>K]%"O:(ANZ(]5\7?#C/HNQ!&\IY7]9 GBC*%*@H; MRVC4:R8ZOJM\KI(?:=20'\L&\4*]>"&[>/WTDK\=?WA,XS"4ET(5PR%L^&RI M5T)L5\)?6O1CC7Q"#[N&)A+WXHGMXOD]13_6-(?$D97@$&I(M)\YX1/]WH.AO70RSU75"7^:H:^\&N"')7HKP@?;N.PM_ MK'GL*)Y#0<,IAGN1PG:1,E3^2/LL5M4BM6#3@#A5-W"E FNN 6(,0U^JZ!<: MG ^=0.DB-;C #US3LQW<2R6VMY%'E-GZZ5*;1D/!=@QR2+X79&P7Y!\D/\.: M5M.#ON,J[PLT2!FXXS[9>U$F7IQR#G=I48.,WG)+Y[7/752[=Y&[&U9NFG=G MGTO&RKRY7-.(UVD"P/^_+4OV[4:\CNO>")_^!U!+ P04 " #)@IM4.*G\ M)D$" R!0 & 'AL+W=OJ:*6P0C?MHYL,5K3:AWV)?>=[ MGKOGG'.\E^I)YP"&/)>%T/T@-Z:ZHE2G.91,MV0% D_64I7,H*DV5%<*6.9 M94'#=OL++1D701([WT(EL=R:@@M8***W993RR1K3K!^T M;4%00&HL \-E!R,H"DN$9?RJ.8,FI04>[P_LUTX[:GED&D:R^,$SD_>#RX!D ML&;;PMS+_0W4>BXL7RH+[;YD[V-[O8"D6VUD68.Q@I(+O[+GN@]' .0Y#0AK M0/@:T'T#$-6 R GUE3E98V98$BNY)\I&(YO=N-XX-*KAPM[BTB@\Y8@SR6A^ MMYS?3L>#U61,EBM<9I.[U9+,K]&:C[[>S&_'D_OE1S+Y]C!=_21G"Z9 F!P, M3UEQ3CZ3#X02G:-7Q]1@19:7IG7VH<\>OI$](C.)9)I,1 ;92SQ%)8V<\"!G M&+Y+.&.J1:+.)Q*VP_!$/:-_AW?>*2=JNALYONC_=/>=C-TF8]=E[+Z1<BB?(ETJ/?KP2U M<5.I22JWPOBK:[S-X _<__[*/\0'P<_O7QK_FN#%;+C0I( U4K9;/1PGY2?4 M&T96[B=_E 9'QFUS?-1 V0 \7TMI#H9-T#R3R1]02P,$% @ R8*;5%B# M-79." :"$ !@ !X;"]W;W)K?;;X-!%J_Y)LJ^RBU/X9N55)LH MAUOU,LBVBD=+,VB3#(CG#0>;2*2]JPOS[%%=7BD+*7_IF]GRLN=I1#SA<:ZGB.#CE4]XDNB9 ,=_^TE[Y3OU MP/KU8?9;LWA8S"+*^$0F_XAEOK[LA3VTY*MHE^1/\NTOOE^0K^>+99*9_^AM M+^OU4+S+WJ#Y,WS< M3>^?Y^CA%DW&\[_0[?>'?^:HCW[,;]#9'^?H#R12]+R6NRQ*E]G%( <,>J9! MO'_?=?$^TO$^BNYDFJ\S-$V7?'D\?@#8RP60PP*NB7/"NTA]111_0<0CQ()G M\OO#L0,.+?5)S7RT2Y^5TFZ?'N[0P^/T:?P\N_\3C2?/LY^SY]ET_LWQ'E:^ MAYGWL([WW(.'BS26&V[;@V+LT(S5COQZ%0Z#(:CGM:Z9MA09LA$NI8Z ^24P MWZF \?)?L%IP]#Q#N01/CV4:BX2CM$2LG^N[.,K6:*ODJP!30(L/!,%)1;E( M7PKO%KG@6=^AK&&):>A4UG@C52[^%YG (5<(WI?F8B6B!> 2:1ZE+T)?1EG& M M&S8 MH4"S^_8\+ $&#H!3M:@/JU&I'3([,M5?Y>Y=!FV0+" L@92BQ - CO2 M48ETY$1Z'2TAPB_R@QK1V8*G?"7R)O2HD>R>V M?,65 I?(H_?"/PQI.M'NISR"2TG8 &R1ZC/L=0"N<0C^E'\9):]$&H'G@S/' M,K-;PG[:([>BM(G9+70,F520B1/RGY#A($";1>#W +G;7/<3'>F,DA9*FY3? MI=F*33#]#>?*M'?E:XY6D5#H-4IV!C-$5ATL(98A'JFT#UD:DHM$O)B-L"^& M6@S "UMV8A'#.!QV+*QFK7DNXU]]G78M ?U&>Z'!:H7*6ACH:-2,:!8I M%N".D(8K$L-N%CN;I3%DQ1D_!V,NKF /7%R$*S+";C9ZXC$7KYI[LB^:!ZV+ M;U-)WR>!UV051\&XGE(8YG"')1),%!%*3,$#G!(1S^W*:6/@F]ED-;Q.BHRZ$K M"L)N#IKH6&CP\BP74(: )VCG!3\V7L[?8YYEVKL7(DG,4RV\2_4MR$9Q+'Q$"GG?RP%NFR M<5*Q%L%.'S^X.#H[N/CY"1\G%;T0-[V,#]NTC3Y,EJDW$?9.[6 /$T@\16*R M6ZM.VE2"P]&HJ10;X5 O[,B12$4YQ$TYUP>[.[+&V&&WUD6T&634SD&GZMW9_<_I_!/U+JDHB;@IZ7&GXG6DHSV8 M(V@*])-_%!;YWTYL=<5IU8^%@T9XU R%-C$68M*AGXJJR"FJDC'GRPRME-R8 M;/.S^-L\A#V_Y4B6>FG448B0BJS(";(R1JF9=B45V"'@S(3)+4WB8N*"%C'? MJ&8[9X^_S3%-JK6(0!T5X(YTDU9$1-U$]!A]%(T(#5] 2K-O3-AP4@O)8$*[ M,%0L0]VU4>G<.YWT0DPM<)QV;-JN>_HC.FPZMDT,^Q[MB*&THC!*/N79M[/[ M\?WD]SV;UEIF;L8Y]A'%7V7R:NI&,"D!A604Z]C]8552FT!\#_Z:2FJ+X2.Q M8^05SU WSY0&9GK:G\%MH1)L VZ1"QS(*\ZA;LZI(R\H4D;6,HRVB:,?^&V@ MI\2.<5;\0MW%4AUGD>'KYH(5J*5D"H)1!\/1BG?H"=ZI(2AZ&APE)F\\D550 M6_7C=W0N:,4H] 2CE'A6:"ETOI N3:LUT\7U6B9+KNQX+!4-&P;-:&P5P\,N MW!694#>9S->1XN EVSV/6R':F(!YM4W<8[3(A6%'IY55?,'FO,Z])C11W,7?V4#I. M)EB;1P@+6J9I8QM"NV(HJ]B&G:APIL]0&4R>IN/Y%)W=3(NKMXT*,_2%N5LD6 M.9_@5C(_J)U9;[AZ,4?Y&3)MD^+TMWQ:_EQ@; [)&\^O\;=)<>A?35/\!N$N M4K I&;#U"J;TO@:@3U4^RN!#N4RF0@@-%B0(BC\'O$%C!(AI?!LPDW%) M23RUC^C_1.VL9:L"WCCS19=4+9/+!$K]QT'/*\$KG GQ'[H^-G^= M0-$&ACJ<))P.3V3D \)>>3=+Q19OE6D5@OO.O 2S6AB1*DQ MF\EI*YNR(<^SFO-HM6X#>T( 94OXU^^5U=^5U&N1$<-+4%8,4.L>*C\#-8=; M9ZD*\,Z66/Z8GS&MD5M^Y+;.GP6\57X"\UD*^33/G\&;CUKG$6_^_[3^@'TQ M8E]$[(O?4XDIMU0*BQJ!B_4":N%N^+C\."M]/+M;%[ M".@/NL"00E?IHF(P;0O=*&,>@2W3"G"%2H)3.* E;7K& JJT%[12BT?@7HB. M?'KU_O/U331G5R^9H6GK;01X8L%>W4B*X$1&?.)99(".K[)\W6[W5] D:FT@ MWQ:]W)I7(N>/J3O-]> 24-\.)O %8=MJ4Z;,/Q +X11N8L2_E-M-(YPED4VC MBM,ZG=*+(4?>HZS;=W='51"&':+*NW9?<6-D$^&>V6$)&U*$80*?V$7H.6Z M^&F#TP'O.-WASY[V*<;YN,034J/LXSC+;0\YP)T_0P)P?E(4:PJQW,[H4HF. MT&Z#+K7R&OO=40T7FT\)SW*!(Q_9/7R@R?$0_^K:92>MK$:_CPU;UFHM]5UM M](YOPG7?"I_"^P>%V\>>MQ8,[CAU.OG[50*^;]+]@%P3&^/6$;?9:/()+M%+ M ,_O')^682 +C"_EZC]02P,$% @ R8*;5!74ZXJ4$0 ^2\ !@ !X M;"]W;W)KR_2M36M>67451E.2'$C^J M),6IZUQG[17CS=V/X Q((AH"## CBOOK]W0W'C-Z.,Y6[?UBBS,#H-&/TZ<; M>+-S_CJLM>ZJVTUKP]N#===MOS\Z"O5:;U28NJVV>+-T?J,Z_/2KH[#U6C4\ M:-,>G#P[S3[C[QW M[&6A@KYT[:^FZ=9O#\X.JD8O5=]V5V[W/SKNYP7-5[LV\+_53KY]\>J@JOO0 MN4T<# DVQLK_ZC;J83#@;/;(@),XX(3EEH58RA]4I]Z]\6Y7>?H:L]$?O%4> M#>&,):/,.X^W!N.Z=W,Q1N66U=RLK%F:6MFN.J]KU]O.V%7UV;6F-CI4RC;5 M^] 9J$*'-T<=5J9F3!/2ZY0^L(R$AUJ7; *VZ:KX/^"Y@I;KMX7.T)*UP;FV/::[TEK["VA3? MU?'L\'\K%:JE:?%I%F>NZ]Z;+FOCMEXKN]*TR,8$QJ:GM/63V>OY^TO^Z_CU MLPH"\/"]5K[2Y/'5#[K6FX7VR6>/JZ?T11R<94A33(<:!7K5;K-5=D_VZ:WJ M&T-[KH<:6F8-#;2^TUY7P.NM\OBD#S1^I:WVJFWW-*W>TEA5K+_U4)C9MM@Q M[2)9LLQNK"0#1E7HA'9A;.A\SZ8,5>>R2O_.7ZCM%AZE%BULW[=BI2N]ZEN9 M9'[X?_2$U?W^&D=&3_:ML".>8^E<)\[@]>^]H7TO M]G]NTZ3L5G>/K$M;^D9OSF:=5K]J?-T:?2.2JN8WP+M,:.$:(5!0TN*J6BKC MR6@END0]#P?66MW0U-H63V>EP_ 8IJ C6*N-L0)O]K1AJ[K>ZRD[%Q9"$F.K M(-M[)58<&A]/C6L"STDJ3P(;J-/8!K:EY)J,F.9+0;#LL=^E"133%!#%M;\$ M'G0?8T@L\=J\_P=-(7HG?S3=7M3^S8:.WA%8QEXDT5D25F$ 6=F*.N!"&V5! M5&AA6K>!?V!92[/*K@E/:+4-+<;JQ 0Z.DQKU,*TC"03?'NC;:_YA;X%PPIQ MQ09::EWH/$:*F8Y +:F^9N]LS'()P%EZMX&(#EO,^Q/+ M;USHJC#( F7_4 B[M>O](U& N>MNM)6:IH./.4S(9I-8*MC ._&@8M !J-GR M$+C1>\S-".>Q [P J=*>HK93MW&_$PF)&]7V>FA-#I<:9@Q&K)3PZ/<>N^%- M9?:G8'[&J"O\6S[CI1D5\6+KQ -=S*H=Q9_ MUU%5W_SAWQ!;_P05/V\<.VX:^,%6H#OUFO+&;"+(GQV/O^"H5-^ M>SA[/DE)Y8HTJ4F[5S ;EJ= J9[^XK:FKLZ>GSV;QFP3XVT@"_VZ,0U%A]Y M52RCKG,Q)1(?!$0]YF(O#/ <+!% M7EG!09_U[DNL95WL MP#(T!P]]VV\A#ME1H@!+%0!#2%*&X?0IVQQDTD?TV:V]ZU?K>W0#S.\3'#I9 MIM&+#C%1$X#LJZ=$?'K/>X3-:V\6$OUP2%V]>I8R"\Q5O>^]:US;@MBPSCXZ M2/EI6^)&6=&3)C"@+[JU F*&C)B4D!7!BQ-"YJP^I,T%G,][I*>?:N%%H,=($\0YA*PAF_!G3 MU5TWD<6_;E)ZS7E7C> S3HR7!!Y_R,ZFPP#_5'>.[$74\.$0IS>'L[,''=2N1^.7M)@V(6^9>$Q 9V1TXL M/C](@_G9(!^2ZRJ@1-1/7?0S'6J2G+)$(BEHP%*0\O7*6,[O:@E/*"%U_$)" MBM>_RY%(5UQIP.F%[;Q7GMA((_A)BVXI#CJX!;LJL:KBKIJ2E.H2K=@B J$V MU8Z\%G.H'BD=I8GXYQ!I_Z3O7<4,?C5(W.G=KWI@B93JW0T9UFQ$941FB3EB MT:#]C:G) ZCPH%URPL$V-E!FK8AD/37/Q&2NC;RF=WW OCD,$60QB4![=70X MGL[Y:\I)*SA8(%0@U3\UF P+<20R!Z,F#..#B<7 < ZB)\)A 6>D[T:0.7_3 M[;=4>!+RBH3"#7EMF!3+$^V=T%R:DB/TC>QGW^^R)1,0$Z<2QZY9V#D+( M7Y&B6$[>Z%;M.=V2)F6/HC2!>S+?I-JV/0$O"HV ]$O8#TF6IIOPJ 9%!0S" M!3V>-ST%K!L8@W4905 PRXZ@K1=(I9U>2I%9?./'2.%E[8 8"TQQ%_"!0F-- M*%YR!]OU+;EOE(V-A[5V'/RQR"KE3=J[^#'0?15#EHQ4.GGQXXV&_[.6$CI\ M;84,3K_US8HUSK$;QM)*593%>5";DGR$'4G\EH1-JE3L9X>=.V0Z;.RV[QX0 MEMS@GL !&PY+5?^Q4MCT,= 3HX9;F@[2!4KO\.0NE/Q&=4 I2#)-2XY/+N)J M!$6*78Z0&#$%4F2E:?7%-EHZJU\9!I*3%C@OF'<>:2 MGT%>%,-++BABUZ)%+/E)10MYP_5/Z!=)U[20E2I M4DBWKI0[5)67;\8!#<:XSIV$_$FM)+8WS'^/A51>< ML+AP6=@[UC7DK/K6<-U4A=B7DTBB(I][-)SG:;@BALC>[+9;%\3%X7G3/",OCYHD7Z,F'K<819;8=@D@B$1'8BIGET&6FU9SLS'$=X=RT&*_ MN07QTZ_FR-?5VNWPT M:_X&BLNISWX0#BQ*%($ZQQT;M&=*APVOK=I8%N0-% M]A[\W),T\>N[4"A=C*2#G&43\(U]P_6%37,LCL9P;RJYM)BS4 /J2J1YI$1) M*APV$K;4DMZ3D+E, 5/K0QB4*:>E[)4)OHW$ILB(!#5PE6YN.,^23YXCKG9L M)V;0<%6 [$='+&1(DR@\('JGO!K 8%ZFUS-3*3.(O:STB$:U9ZA2= MA<-%#,^("9R#L1#*_XK0-P0Q(D(QN'J;?J2=^KS3!"SER1UR+8M.BY;*EZ4! M&QM?K'6L7D6F3>+>?Y[DS7@RR>B0.P[@%VO3ZDSI,_1P#SI^?<\UI/4+>"F- MZ* 0D,@L>,_Y-.DREC -?GMN3=Y;Z=[L7(D7H(EE,(($_E,TQ>I^5$(R#&S; M&NKB,!F>%/\@\>'0R(WF6E-E$&MM:2*-X7<:#YP&,\4F*!N>A1H8M71;28>( M.;72[*4JANW0G^X1Y\$BT\&!5-P3:'X(X@3(79]BPTA"X]ZTJ9,^:&&)YGW) M(<(_V06I0HV]X]!#2RJ,IKPSRZ EFH;N)2JYM 3W,%ZT=A8J^&&Z(+,QC1- M;2HWQ@)V^,R'8GA P=3Z"R&'0>[F(D.0D1A9Q*ZT8>[QIM,UXLG@1F%+0<][ ME)=EDE30#^H1PMW8@4D$. >6^'U.8K;'3E%:4I>+B-00%6F<'#1RV?2 @U"E MEF>>W&E$P@6U774Y_,?1Q "I/5PJM2(8*N[,IE8LB$PP4+481;)$9G,<"&;M MA)3$FI%(8^T=4HMU&[ 6$JH)B9E]FNG[T&WI#*1[DR-0>P@*"7JH= M1U=NHMZ;=="T4HT =F+B)?[!KNIXP!<&R3I6CA3E;7 I,:I1CAV#,+.FQ,P> MC*.&V%,S:,FM$:*4S$RX%L[>1CR*IU.9K)#[Q>[/UCGN8PQ7>*JGJRDY,"$I M\I9K.2/6*)T#[02L9\ :#J%-5PO)."C@:W:);DFN:2/QV)Z)2$*O= Y MVH3;Z*EY]N 64Q*1=6HNIN"<";R9UN)3A(+J/(E2L2(!1\KV&I&V("\ >H.YX;G\R.7U*+ M]/@5"X4_SNCD=2,GQE1&M)7,-[HN'J2AS!.R-QQ.=(L5:S+)3$L)(_>#EIB).8"C(FZ!RS-R5D1)P4\ M'T,GVW;[A%$(98Y]\I)X<&7Y^HJ0A'FD6.GHZL/5/*M"WZI-[GO3+NZK#9#) MZ)3Z#SE0[".Q4H[UR1^B>4^.">\U=?6E=SYL.!"V,^9!^JLYPMC?Z-BMU#=& MFK_B4J)3<8[A.O>=B:3AA229_@3$[>1.3M=I9HJ RGA%94LU*V9G_$AF(W)( MX/:3LCV=;OARZG]5=.66+DJ6FF6RQF.#3?[R1W>!< M,$:GW*9Y!!&R:S MM\#"3:HPZ7)1*D8'%V=*/9AF?&"QU%E"X= 7EL;46RZ7/9!&TW2)B_'5,!)1 M3C;E*(0WCI(#V2??GG$$AIH9P[*76SLYN#(E_<#,;7S=X-.H;6 &7Q#1,T*# M0 770EOI#VI@W% D:$% MG!)'WD3OD2L'"7, F&$-6GU(IRWCYGW0PPU/I*M-Z3G$BX*=NUL,4>3?N/:& M;]Q$ITH'Y)Q:^5 '*579T6VN^^(G9^!#]KNY5QIGUA2B6U8IFZ96?GADSV!0 M1B[3<=O""K+18L/L?:/3];(!7XP$^=;ZWG] M&Z-W>!LAK-W?(6ELLL8T<2?E='D_^"C#X2A(1]=,1IN:/G3Y]VAP'1O^M>)+ MYT'*0KF9G9_F>^WG&UL[5MID]LXDOTKC%K/ M;CF"I=)=*E\1MMLSW1OM:8?MZ8G]R"(A"39%J FR5.I?OR\S 1#44?;$],3L MAXUHMTHDCD3BYF+8I=:4^U(EM-YNL MWK]1I=F]O!A=^ <&OVJUL]'?":WDSIBO].6GXN7%D 12I;&X2 JUS-JR^6AV/RJWGAF- MEYO2\O^3G;2=H''>VL9L7&=(L-&5?&8/3@]1A\7P3(>QZS!FN64BEO*'K,E> MO:C-+JFI-4:C/WBIW!O"Z8HVY5-3XZU&O^;51W6OJE8ER]ILDK>F:FKHR4*( M9IV\Y>E5;5]<-YB*.ESG;M@W,NSXS+"3Y#W&6MOD756HHM__&B(&.<=>SC?C M1P=\G]6#9#)*D_%P/'YDO$E8]X3'F_QQZ^[-,PWS3'F>Z1^MWT>')5-]9K=9 MKEY>P!:MJN_5Q:O)(/FNZ9+__(_%>#AY'EIK"_O*S:K2OZLBV:U5E>34%V@T MRZ19JV2+\;3%RY4QA4T,S!ISZEQ9ZHQ9*KM4=8T&C4E,6SOH8K(TT; ]_+IABU;TZ Y?JD8W)2; <.HA M7V?5"LN$(,W:6'4LUR#YE)7*7I')0JKL :)F-0V:ERTP*2JJ10.#H)*_\UKO M(5"R432+SK,2\A<)$TG-7W.G6%VMHOE^P;*C/E:M0%X-AM-5KK=96>XA.T]N MDQ]_??TV3;9EN[G#(/A+;VDPFL=I'HK+L'&@*_HTR^558G4CZFKJECDM33:F MTHVI?=^EKEG^1CA/9(H$]S(%.30&@V2B>QI!ED/C8>?CGGO;J U6"07=M;HL M4M\70H#[&_Q+H"'^6P"=)4[2TUSRZC((]JTV[6L-), 3^AD5@1SXU M64.*?%TR[@A&]4F$FGN%?8=O$!6!A4M-CP0$W3*PP$,X=B:2 Y2$JZRN,*3 MQ A45[52Q56[Q=>E?L!S["&68NJH6=ZTC 3;D!;SEL!/JJB_HD&[30#S@Z&V MJLZA?+BZ'MRR/&?+("QG 5ILA<^22_TTT4VRQCJS+0'3@3$WFXUN>"\9QW<& M!K[-ZD8K .=2HQLIMB:?9(,1RWLV P F(@.F)6F1WP$&2U\!.K3/(@V]W"B\WJF$9B$) ?!B0W^W0 MLL'KK 5EU/IW$8+5QPMS$*%I,&.N:*,)RZ ,E;<$4+_VWOZM5(4%D747)JE, M(VB L0*L2]B.F%NM2+D!,;6"S3FVO"/;88NKDV5;+G59LCUWJ@;\#,MU6C$P M>D_[A!F!#=\2!%*+3>K#?1*K0:/F4K%2Z/J1DY-X2 M6;[[#)8'\[6.\GDYM@>[+VW!/F>0?'[4V;-O]C[>R&Z5IEI=$1\%<%C,&]RH ML)XP-,WOI7&Q!KC^UX,G3/J.$]@H0>>$ET*YOTDQ',UDDC0P\<,C,=,9HH*, M5$&:/IQ-0IMO31!0#B9O9=7(KPHR'!?3F+J@&,T%2AS=,8I=OXTI6+6, '8: MHL+,]\?^V1Q)&Q,T\Z$G/$=H^=?*[*#E%6WYON<>4_AV<J8N^S-8A=X*([I07'[K;2*S$C,F /RDYV MK=%.K!K>0]5DY#US +% &)@"\TFV08Z$.1M3*8X&&?SL> +XR?81#]8KY8(2 M%PB(:^=Y@RLH-&S#4=%)+&%WD/YQB(L]+B0L$Y\2M!66NB2<+V%4PH/0G6V8 MB.(%.2.B-=M4>"9S%K@GE' H[^-F'P@FE*P7;=F/++QN'4.H(H@>P_? )U=] M3I>M=A2F'AJ.'IO8=0M2LY[1TY)KFW$8E[>;E@+,^V[3XV0#-,V,"]?5UIUS M;RNWVP@<,FM-SMCJ5G].?'*M8/A[QB$%OV[MCZV90 "V \\ ])Y((0G#&$L_ MK\?3VB*C%C25!#.X+!=76@O"]6@FNX.N-.4&AR!@KPO%Z$K*+DS::VTIU$,GL%E8I\0=6/[5X=8FC%RB!D6LH< 3E:OR5N[$#8 MY[03D#QPZ++:SK"ZK)HCKB6%E$+*XLCC>#[O%A4P0J)%#!XY3K;Y?B1\AO8Q MC7H '#I[B=][!T0NAY!?J5V:1-*(*:,[IYZ*,)8K867)%TBF*,X8).\=C;*O M."T2*8.6?%P@$'ZH); J>-J\Z>)N+\F9*.?2/I7002V7%'IPX'M2!K*RD_Y; M,A+#Z;D$G^22?/PI-01U9OHN1M&-B]JII-%+1PEAU1E<7;J]D#:G0H*GS XQ M0K&?/+DWSP85WLVF4&\-H[%=G,]LM,J6VTI)F'PP2D4'/*QT&ZU;P M?FY8[XTZ'?V7#5$V)<4N@O-I=\@!F)LXH)(\TJT%$!VL!I)+5.WF3DG]IMEO MV4Y"/)60F(U]BI8J7TN-*R8N/TY&?$/9,-J7B$,+7P)**"9HB8TWD@JYYT]E MD4)97= 44^+[#@\;&!D&^,HNHMULC^%&MKG"CM+6P_&)0^#0[-[KP_E$5E#J M7#BG.*Y.$3*T@\1,VL:]64495R!*EY"5JEK!\=$P5*+BP)F1I1[C&;\+)JPC ML 5#9I>M'*:8TX2WPLS.C0C0;,N <9E?61K'T=BZSGY=Y(^,SNOQ8[8TOJ3$%8*/+/5A/ MK+CC5!N1:AK">N]CTB-CHYQ=$E5 D"(%B !]FHV$9WWVKA313E;OO>__K04M MJ2X=)26NF2 =1,R'D\=\;9+)N!#3D5?. X&U!#PDRS+ MMN1$'&.L1'BA WBOVK@]8%_G33'M[+E+^CD*50S45;>RE[\R[1H( I%E0_/2/1(/E9?U4[;8EISRB+6/\Q MA36\1Z*V;R\P=>W/[*E+\,XOMQ? GJ+W8]#^$YAU^'29Q?G8(:6(A_WN+NI_ M.L)UC\)(7;S%+]SJ.#ON<@^I3,H MJN.)>/%]&;#@19%OPQ2F'+S:F@/A#6.1L0H;3$_UN*.@Q\E5_9 MCEC"-(%PHPJ?MMEJ11['+\Z\C*J8'.-HH@?@I5!;3:.OS2ZJPZ8NL4R],3=)T?2RP).L M=@V -\QBGSX+R/F_\OF932X^T4=$5B-EH -Y#W=HX9/;D@]N2P3I?A2RS_#E M?0?;3QZGA],^2>:+<3H#.F]N!J/D3]&+V7R6SL?#9#$=S/#B78?ZLZ-%8J0W MPUGW?3RXC<;VGZ/A-!U-.X%',Y[I,]?7CR5=+&;I>#2/N@\'PY[(\_EM>C,? MG6WQ[_[\WDW^[!(#?YW@E(+'IQZ.P"H%.A%_GM#@=#1,1XMI>#*=#R8]!8ZA MP-EBTC48J!:/EJ-$BO;V-)!GQ'#\B-&G6.7'*N=%'DVEZ<]L-#S2. M3ZUAE@YO(XA-N=5?*"R7L[%SX\]NTNF\&WY^4OKI)!WU&DW1Z"-S'"$$^79; M9Y6K'[VK&N'21^>%&<\6'5IN>,BC>:?I[&8>S7N#1N\1ENFK/V?(3R5)@0"2 ME)] 5T#A%$B(&(G5?Z+1?#X,7R<\G9QIG!UW >C>1%U.;0ZBD_%D$C4:_3^? M@$]>^\27[R>2O:L?'N>$,Y 2EC&'YHT4'I+Y5/DDF\ 7#2(?3&6_*.U^2 M]&;_^$1!K-EM.EY$GN6VQV =#N;I?-A-.AESL\AY?N&T[2S3S-/QK%/*8C _ M,4Z2CJG#B\+Z[3'26A\;#=!R#;G)R]MM1.IS< M'K;ZUV'=U^23U];Z8[V?M90P=!0+.-W&,?9^2V$#.,2'VG(/)V33\'1WRD:5[>6A/YQMTPI\/1)W@R2JE[KLSA\E MM99R@!.IGWJ@NSR]LRXGZN$>?=4O22A# ZI+F+ MRN]6U%/B3[RC"(CV@"!;!5M+RQ8M MQRLR5]%-QHEI)CC%#"L^5Z-3HXR6JOC.SW-:4:WH,#;MGY,]HD)OE736VTG( M!:_O$.6D'*Z0;ZI0W2&UND++\7"F+>GBCS=CWDS"V7CX7$*>G\,=G(A0N<7H M^;=O545UWL_'&7#B;K?87HDI/BR-=)>?0OWEOSES?C3(.6S\/]@>U^@'E2L^ M:HG;G<^6@\6'/[[]QKE"__64.WRDB=_%C*HH*UU5[@# U0J1C=VFM\-AY*,G MPYMTLHB?C!;(TCR9I[/QQ$\:W;S,X="TG)#L>+&AQ^CDAH_&QP"XG!V+ MYMN* >7]BPU.@=W:1@@&%\>#(%L8369'CV_'-T?/D!]1+23:,D>L8;.P$Y/1 M)-XL9"RS^4V\-[*?Q_OXCQ1?=SW:]4R,=D] *(@!-\38[GSUR6A^@_S+/XIO MQ,;LV:/,)OGOK&KIH,;]$H1'ZC\;41#0W?_H'9\7NN#P)UPA/;C:J?K7S'U9 M,U?Z7BIVYIC7]7?KIQ/E8S@/_Q"%=+]$Y>CCEKW[7N>JV-V%03E8\)V/[D3P M89XF?R;7#;N+A'SNN7;U;KX_V-U+E2L /N!3#W3WVT87HQ.S[8[V,4/'A:0( M=[H82L'=U9Z3US;\T:6 HEO+N;53)?W)>' SD<# R#F=OROA?DWBSA']24B M:"7WZQ_XW 8>>3&\6LS^Y&7[]N3A9C2TTB!-\AA(NUM0W2 1QCAHR)9PL!)X M^:KV)L[-Z$<$+NSIQ8GP^5?D\S%@I79R.3&T'73W10ILB\P%S9**J5!*^BBT M\K_)81:T+@YR5Z!YGT])=%"SS]RU8Q\@^5B$S 568WNQT2Y&ULS5EK;]LX%OTKA*<[: #';\=)DP9H,X\MT,X636<&^Y&6 M:)M;251)*H[WU\^YEY0LI7;2V>EB]XLMTY>7]W'NB[K:&OO);93RXC[/"O>R MM_&^?#$3:"E?EN;2[URHSVY>]<:]>^*#7&T\+P^NK4J[5K?*_EN\M?@T; M+JG.5>&T*815JY>]5^,7KV=$SP2_:;5UK6=!FBR-^40_WJ0O>R,22&4J\<1! MXNM.W:@L(T80XW/DV6N.I(WMYYK[3ZP[=%E*IVY,]KM._>9E[[PG4K625>8_ MF.W?5=1G3OP2DSG^%-M .YGU1%(Y;_*X&1+DN@C?\C[:H;7A?'1DPR1NF+#< MX2"6\@?IY?65-5MAB1KO :'*$T52\,X7?./%CD:JTNW\(H1K))K5DKR>/,GPG M[4!,QWTQ&4TFC_";-II.F=_TKVC:X3QK.,^8\^ROV_!Q1K.!.,)+?/_=^60T MO11O"J^L(.32"D^FLD+=EX9DH>4[:;5<9@\X.8$0(U*L MY2(SLF!AK+HSV9TNUB(!.^W%2B8ZTWXW$!\W2A2&0E-F0N:F@OR)N0/+5"QW MPF^4.R2M$UOIQ+/ST6"$>,@R#FV"TS6U)J,+O^!?59\4(F"5G"?X_7QI3"V2W)364M8>@LODZNT M<>&S8QS>Z?_1W*_*1*30VR/7XS>O; -RG^\1_5QJA$ F3CX= /( MBCQD'$49YX'[6C0;C!E!692PB/'M$O0'! M) FFRG8B-83E$&&RV+7 \1LX!.RADP2+[' MX5.I@ 3(I'-ZM6-M4^T2:(-SX!H?W;1WHDBDM9KT?H@04RBR -EU93*4:8)N ML' "A=<&V]R+YMSOO[LX6UQ7GRI!FI=6)XCP2ZFV,#,@W# ?&YTI;LBP1)QO [ EE*!YM2:-)F2PD-35))&,XRF\KA;W?21N#_YOM81 )G#_2I=\08 MJ?%<(TQ\-!Y1<"/=AE5/Z(&@ ;-W8OR9&(_G_;/QO+42X?GH2KWKK5YQ^:HL ME8A(QZ(*K'^-VUI_.S[^" NG=P]&4RY6TQ2F& &&6F5YS\75_4H?) M>7^RF!]?^#_R_I?0_78 F)_W%XNS/VF[N.E;N?]L-OT*BF_K_NFL/Q[/CB\< MMUV"PY!XJ191/JIH&Q, M[9_V55""4BE2O5YKZELQ%E8V9#VNH*VN!/D1798+C6ZS(3$0+!3;5J4N2VON M(2SUT:WTFU;<7((62VYCK#_E]CJ>&IOH&Y.7Z#G8@HM+'(SBY&$8KA)--[Y1 M6>RKM4U/2VFAY@HB%8F&6!T5=:=7((E13-)_81B-K4NJENC64*.X[R0"=UB4 M_?'@20U260$/"?S@K:2FK>[1Z;P=E\4P"!RSB QU+LP726(K[C5B=]:XD$LC M>3I(U3 //&!]:NJ6U!50*:62Y S,0.JQ>^F(HY-+6S8NV <=UI6#*J&K4"#( M70B5EYG9*14A*/%OOL0 F9)D:J_;L\5L ML*@[V6" AF$HX6A*?>C)';*19??3&C?A=PJ-0%;W#\?[@;IC?)!-EG$8.6!2 MUQ($<$A5&,Q 43E2LDZ1L;UZJFTU"B5Y1LKR%*#X$#6:P*Q M$8R'R[/![-'9DL\&U=D#JB_* !_=BO-6!_7%:/:+*>(\(5XQ>3WSZ#!C'9_Y M7 =10;/DB5P<3"Z1(\TR=&ZP(5]AJ3!)Q$F%S;9"SPG?HQ5+22/MCF$"_X3. MG/#^=/M,OHU).("M<_/I=PQ31\IOEA305CM MS0SH:9/B/Z"OH,%^!2MF2861,C3^NV;R1[[H"^63P0FS1_[-N)=O]?\!V5:M MI>5Y=%5YNG-H_!+:;X-# WO-4W6_Y=A8G&0"&W%"XTST=7QX4>Z1(2E?K%53 MQA)9:C0R W';\C8L6:SC$%CL.M6NT0KXRNAZR%49#_ZRC1?4!RK79#L44;/% M0XGI$HB&W^I)(U:_IX!.,=<,)-W15\$DA#?45=(X^"WDO98*R"BQ#D&1=BFR MG=L$HL3Y5$\&".!#%U(M6T,EU0ZS.AR?,C2J2;$FTI4U.AF MQZP_.C_?[WB^Z./AY)"^BA)$H^DC@]H#$\3O0S?MP]:;BUS9-;^?X>Q0^/ 2 MHUEM7@&]"F\^]N3A_1$\N:;;R4RML'4T6,Q[PH9W,N&'-R6_!UD:[TW.CQN% M+M02 ?Y?&>28^(,.:%Z,7?\!4$L#!!0 ( ,F"FU0[B%A>$0< $(3 9 M >&PO=V]R:W-H965T.E&3EJTL&#!A0I++$.[Z[>_>. MTNG6NCM?$@7QN=+&GXW*$.KO)Q.?EU1)G]F:#)ZLK*MDP$^WGOC:D2RB4:4G M\^GT[:22RHS.3^.]#^[\U#9!*T,?G/!-54FWNR1MMV>CV:B[\9M:EX%O3,Y/ M:[FF6PH?ZP\.OR:]ET)59+RR1CA:G8TN9M]?'O+ZN. /15L_N!8HWY(-A]>=]Y]B[(AE*3U=6?VG*D)Y M-CH9B8)6LM'A-[M]3VT\1^POM]K'OV*;ULX6(Y$W/MBJ-0:"2IGTO_S&LPC[K111/F##/+\U-FM<+P:WO@BAAJM 4X9+LIM<'BJ8!?.+_)/ MC?**,^1/)P$>^?XD;ZTOD_7\&>N%N+$FE%[\: HJ[MM/@*2',^_@7,Z_Z/!& MNDPL9F,QG\[G7_"WZ,-;1'^+5X=WS]UA[^XPNCO\E]GZLO51)H8.Q-=?GZD*9M;BRV5A*%V]+I'\7 Q@4 M9M=97]FJEF87MW946\=(VCPQU41BP;%)"\9Q@_8Z\F MO]NA#J%\*7?FTT'14\X#58B=U_L@5ZN8_C8SK+4%[W5MD#DC7[7587;\D*7, M@Z6%BY3NY)O361&LS3/I?*I'GVS1ZPWMQ,W>55O@L?CEEROQ3=M]O*CONA(S M]%,C <4E,#];GZO&WUGP27G/_^I:O:8[C[_+9L]WY]O#_5->GDM?I@9ZND=/ MLNFK>E0<3+/#WL*7R#(*[*K>IM:-_]^WVMHB< MB>.O0,K42D5^(5!IUHHOI?=@S O1[%MD-CT>4!C%XAZ)K7#O[O/\&K./U_1- MR]@#Q/Q=;\6:"__PM^\5N]1J'4F4=46LG=T@ 7XX$:)<\UD7\+S533IJ\"8= MT<9MO+'3R:MU$N-EHW0QYC2]6Y:S>:VE87+Q2T,@[G+(C2.,F94*B8]($,+/=S'5 M?JV8TBMD,]\6ZAP$[>$-MQ=ZSQML*"<8LTPAS@G!$?C6(^W08\NI>2 MSM]8_$Z&YQTE58DM+S$)02'_SS*R1_QB(7DXF+XXYSN1N$[2O5(..M$FAAV_ M<-(/A*AC#@H$ !^#+!^,W,?S9G;RQ+SQ_V["F?$:=:K63R38P A:>:]S?844NU! MH7&.Q:EM.6#=0:? -E0&VZY.(HVKA M2:H,!^=P^%5U!(!)EB9=:+.Q=QQ['\.AA,32OK,U]"-37MV0X,K6T1C M*K*GWLXG@^\:<2#PUQMVVYB0/G'T=_L/1!?IN\A^>?JZ=(.28HP)32N83K/C MHY%PZ8M-^A%L';^2X!4AV"I>\J@AQPOP?&4QQML?O$'_V>S\;U!+ P04 M" #)@IM4F)F1+Q & 0$ &0 'AL+W=OQ:D*,JR/)-I\R*2P-YP]F 7T-G:V'NW)/+BLGS:1<^M+,DL*!5Y+^[WQ[U"*MVY. MCG^S%F2E]KC1]LL*512'M MYHIRLS[O##K;@<]JL?0\T+LX6\D%W9'_??7)XJO76,E40=HIHX6E^7GG /16O7>A>\DIDQ]_QQFYUW^AP0Y91ZMB#Q>*!KRG,VA#"^UC8[C4M6 M;+]OK?\D9L+S6Y"[]B7.0I0WTLN+,VO6PK(TK/%+ M6&K01G!**\SRO;U>XBV"3G>AGP5OVCP@[1= MD0PB$??C^ 5[20-!$NPEWP6"/9?#QN4PN!Q^1]1?]C#NBF]U(G[ZX33N)^]V MBMN!+TL2Z1(JY(32PO.GM':C]$+(PI3:"S,7B\:?)2&=F)L<6]Z)UT'%E YQ MN).WC=7O_?Q '+-*92[NR#ZH%-%OY]YS5;#/SSU]WM$"5<@WSP85XZ%^)7.I M4RS8BQM*J9B1W9*SWXB^$DE_$@V'IZV1P6@<38?#ULAP/(R2:2PNTZ^E!)-XEC<%BO42,ZDJU=J"=4>$/XC0P4]4(P&_4-SK\/PR;-P#N)W+P%V:"P9 M#Z*D!>3V&2?]:#(='HR/IG$T& S_.X2[-9XFR=&U/"_=6B%J5;ILBE6;#^,D M&HR2ULC3);W"8A(P9-*,W)26=QQOO[DIK5^*KZ6T'O@A9PQ?%.:N#1*I-V)% MEILV94*R8*Z\Y Z(K>G(N9!@S N)'0M]&$2^5\9Z]E%J!63H,:45&*$I2*Z7 M"HM9TU/+*"P'IJ-:.D4"5$86L@_2*E0!,0?+C$7-43K-RXS='2LN#S(OB:/C MT?WH(@Z)4ND\3..,8F68LN30CV$\-WKQ!M@48H'B#*P@0!47,N724+3"4%=< M9EE@"I#81+R^5M!MX.YI(^@A<(;-I,JF9>$\YYJK7)>ZZ,RI-01]4ZA4D'Y0 MUN@*#Z4S4,YN@BX.0/>HN&Y%*8IRRAZK&!!Y:IS?@A2$:Y^-L#?/XD$^[9YT MP3['B#"2RNUG)*R,,8> 7X*>RHLU*G4!)$6N[BG?\+@6VOA*('!-*KO+!$ED M]=F,N&#+E3.&Q"M&$]B39((&JRRRGUI@GZ;&,@<8>FW$G'G-"N2"839I"9L9 MR>@*',0"4;_0(\9I5\1K A@=/>4G^+$2@^,T98 KSN5IF4MF4VO!O .H@NN MEK.-2.(?L02@7//N>6!"M9B\ S8%0,'BV*IS+-QRA:!31(23<%2E;M^(4'6> M7.EX5X;N#28H;'9EJW*MW+V86U.@O&T9C=<'LFZO?W,>=COF"4FW6Q+\M>9- M3=8CI&[1MJ(+ME6>"4V+@#/RKZJ> DR*KK@K09VG\50JE5_B([PC'<+:^FOY MJ,M#;E)9#8 .U4YB_]B=*.[X5G#LT-6)BQ %.F5E .OZMS]N;]X,IJQHPD1[ M/S>.0DZ1G?WJ7577X]032\F$:XY!L[H-P-"KZ;A["DCS''+=;SJ,73YM(BA\ MI2_YB%4P/>K>3(^XIKG@3+6MJYUU&:R+4!3^M\/97R0!H@Z4:;7S8PTR=,'7 MEOBZF%6-BT'=P,H)=\4DF@Q&+'78XKYZ<$!Y;D[0J]U2RO(+L)= M-&P [:L+6S/:7'3KRZ*X,1"P7^YS2':K\[&76P^\/]L_KP9A7N?#/C M<8,,KTM=^H,=-'\"7/P+4$L#!!0 ( ,F"FU3L-38!/ D M '@9 9 >&PO=V]R:W-H965T['KNM M%;P(1*4:9TER,2ZYU(/KJ[#VT5Y?F%\?75EJ_%)^%_WGZT>!JW7 I9"NVDTWP7;8LN1. MO#+J5UGXS*5\G=F]R]1VS,C?KE1+ORR7=R;S@?75];LF*7=X$8WP=1 #>6DIJ!\\A9O M)>C\]6NQ].S#4LDU)R^YJ[$'5WHWSFL.MY%#]@B'"7MOM-\X]D87HMBG'T.; M5J6L4>DV^R[#]]R.V"0=LBS)LN_PF[0F3@*_R9\R<8_EM&4Y#2RG?\%KW^

1%?&%Z+W+\2(>U%?,;P59&(9>D7K-SJ;%B*L=UX9X^;SG\ MZ"M"DF]"3#H=5,VM**1G*YY+)?U#N_>,91?) M,$F2_DJVO_)9V)(IP_61I#3-AK/>SG;]@,-_C!>.><.HC$%KL]/"NB.R:3), M9_/N<3Z\G$W;Q[=2XXZ6IM#_6#^9>]!2<+!9#.*M]_DDX5XNK-'A8+_\K"E0I $HZ M5P7U<^/\L>GGZ3P]UOT\O4R>'FA)W(9,BX#'/RJ&+)@N+H[6R9)D:=CN?9<+Y8'.JLC%X_\P2CA@MT[PSIH$?Z)?/+WLID,1MF MT^Q(; ?M5Q':;QMH(QDC9'_J0_97P3;\7C#.SBZ29)2@FBM%FCBAI;%'"7). MJ4[$6?*B81T>TQ=/@11S+U%NV1+BF'O0AKEEQ_<2/V&=2M1I)J2+DU M#A38PM%.#_*2ZA,+U40TX,/&L^FLKRD9!O73O47?).66V(3Y$0;PZ37N1ZPL9L1M':UV-HO(SW%A92>L( )6:%+)>:Z]Y$J1PHIDF,JR+>09 M':H41D(;A)#U,;;."62[%0HH+,@0[/H-DY4'!IM(.Q$%#7GG++]<.P M1BS,ARX5(6C45<2-L, F_OR.T C6\#:SH7YL MX\1!,>WI7 '&=@_@,;]N*6'OB#"4N@\Q%YHR\*:RID"C! ">&8/L%(1RR4G!-A-A$B1[E%X:5!IA M5L5')/+*FI)Y?%)0:.F*D!9PD@RP!K\U$!0=LP%2>%%$9/B@*CDKZ+;GR=XP M)F-&AX^;IA[P(_Y_WY!V>'V%0!HEBP#PV ;?:>IYHM#HKF39$@EE/O@?C;MZ,]&FD M3R-]%NG[:-F%KT18ATG XJ/W(/WX=JO0R*G@1]R=3L)':T?H7&!BS3>)+U:! M$IF.+I]0ASNJ7*,_I]!^E]R7!8,?D]4BK"[Q=5.Y1X,TENKPUPH-ZT2E@UA! M=9VLEN6RLDZ4- V&KA,&%1)7J6M3JC5LU45.G;72F#?VO(26=\.<-3$39YS%X ,NRN:JTZJOD;K13/% MUP%:9CA"(9Z=3/0E;SEUG5 T6UNW_"%8B96@6K5L=I*W:&_CN085F.TZ;B/V M 52*I@]LH2%"1 ^<4')C3;7>'$POC:U: !:AOW&6*RY+E+$"+E@CAL (KQGN M\>/ CG"5\L&/C2DN#AM1)RH)2_);,&4IT)GO:PT;.9),4_(+X:H;?E"(14#C MJO+P4\3PD0XK@<#"[X!SJ/F4G4]B34J 4(0"N@H14;L=C;3R) Z /1P!C3X 'H<:8Q=:8OG3= M46-?/XP ZFL2(I",)K,?$X'?()%C3L"]KQU.3KE';3!5 M?Q."1HGIVN%& ;'*U?Z$Q>V&G?2;.MX8#4OH%,91A:QZ54N*"S+4 IH:,(LZ M\D(LG8*#]"L*!X$:Z1*R<4@/Z*8N^7XS;4Y&W\53DP_ZIR U] M!=GVV"F<0B%YPZ%4K'D@Y7FLW)H^(./Q(#W)BU MP+(=UOZ,>T/ET?NC-%?!_/!Y"EQUGY,G;;WQ1Q-[K!V]TY:V1(%>GSXI0K5" MDZLL8>A!8!2@'..N'O\<.X\3@F-_TXG<;6TU[PXK[D)Z0>5//J3)\6%=.(=K MEMLIZRX,V.'=&9LF65K6;.Q.QM)DN#C800R3 MN&_6[;L/#]YLP]GZTGAORG"[$>B0EC;@ M_/K,' ;%0 &0 'AL M+W=O1 (P>I!YV8AN( MG18MD")&DDVQ'T?D2)PMR6%GAI:]OW[/O4-2E&2[:;'[Q9:&<]_GGGO%RYVQ MO[E<*2\>RJ)R5Z/<^_KM9.+27)72C4VM*CS9&%M*CZ]V.W&U53)CH;*8Q-/I MYIX.)M>7M=RJ M+\K_L[ZS^#;IM62Z5)73IA)6;:Y&[V=O;^9TGR]\TVKG!I\%1;(VYC?Z\G-V M-9J20ZI0J2<-$O_NU:TJ"E($-WYO=8YZDR0X_-QI_Y%C1RQKZ=2M*7[5F<^O M1NQ^4FT\"]*7FL+Q7[$+=V?)2*2-\Z9LA>%!J:OP7SZT>1@( MG$^?$8A;@9C]#H;8RP_2R^M+:W;"TFUHHP\<*DO#.5U14;YXBZ<:VX%8?NL^E9^.5\0"Y5U;+0GC36JN<*72&XZQ50D]KXS19Z+.]TSZ')T)7 M."=Q94N*?!8C,0Q91 9KKK=D%2(!BB'"(=_(@CW\0EW%CF>&+SI52XZW+:,I M:U.A2DYLK"E)5ELAG3/PC+Q$FM^<7*T;ZQJJ"N(*#V6:FJ;B?&T;! C;^W1U M6"D&T=T#$5RY6CZ6K)2(*:-<H ;8@>NH__.E$JX'"!XP\G89WZ/,RK= MOM1C\:TS$5Q4#Y@"+E3X6%/_<*>>*=V^6L[C47"95,GMUJHMYPI7S^;C&3BN M*)BN\?AL-K[H#]KB;+0%NGUNE>KKN6'28!%\ (=8Y6K%?%\\ML 0EOCYC=F\ M:2@.YU3K0X$X.X03(@@-:)W_P">@$86#NRG[+ A[^U23-QB$CI[#PJ^K9'%]G0F M=A"8CZ=_YQ[IJW6LMT-E1"DJFHP>*)>BM0=W^CHQ$/@(MW$"Y("3*5> K)4, M'2)X2JI^IJR?GG:@9](#S"H:FT_%VX=X-IN.YX?ML!K'W<$QQKL9\_7 *3= MC)45:M(2%7G2B;Q'O_[;6.T?VP$A;L%6LGJD"[/5.P=31+26,HQ+@R'!; 2^ MT8!L(PNF5LH>-Q,_W.6PMVNYK (=0#_VJ,8AF8XT%V$^Y+H>BY_,3B&S5+*> M]W0%SD!-W- S,J*LPT/0QI/>L?&TL99@"Z\(_3"LT%+F41'#?>;Q*C53#_N! M@H#?V?>_6#-9PX\'3?R'C(.^5L=\EOQ1 7_>4+HRE1()P+,PIRF$T)+42K(M M\5K!3\6.*AJ]&Z&!9;K';+$S38'H'FML 80 9+<%+494B _<(4.;'S5$V#8X M!>W\[.$.I'>L!0)'?H)$RU\8TUPWJE(_!Q J Z0ED&V#,8H**@;,\):WFC," M-?<*0X.XY1.V?P(;U@])OP4"6L#2<;3=W<="@^6N$A4RD=\9?:.'W7 9-J! M1V&:'FQ&)W.I-T?0WIN\;54ABXUM][3-0&FFUGYHNA7[>'#AT,,A,*-N[MX. MUZ^C#8E(9V.*(@P?SZ,E_,H#,8?&/6;G9P;P,*DH.J;\IZ!RALUS'ETDRUY/.%DMEB?R@U1\?Q2?F%([2 VS M"4,7T6(U&UJ^B*:+J=B7_[@P0_E.;#9=1=,D.;%,YZOI3'PUM'Z\I(E"7D;+ MZ?P@"4LD878PN@Y1_))&:HG_ 03^I22-+%X/!O7ET1<_+\:X>*4>NLWBNV;% MZV'PYU%R?D['IVF-XRB>)_1L?IKRBVB5+.C9XO39>;1,6.?R]-DB6LZ7E&/P MXP:5/[FQ6$3Q:M[6,JS,=]TT.-$VOX@NX-U'3)(V57?MBOB-&?Y#M_H=2[Z* MDRB)IZ_%X7T4>]\+P?C')X!X"J,O35T7W0(\7'*[B4X_08XW3A[5_S_Z^,I M&+X?&0#A $&#+S-Q*UT>%A+:/F1)^3MEQ!(A-&'E_Z,6.1/+*)D-6VX1)8OD MNUC+K&F8!K. >1Z61V.?- -Z.S"SC.9)']Q3KV F@Q=66,NV_%K."89,>'?5 MG_9O_MZ'%U[[Z^&U(3*[Q8X(OS80G8Y7BU$(J/OB3&ULK5CO<]LV$OU7,+H?GQ3)EI-KVMB> M27R]:6::F4S3:S]#Y%+$&208 )2L_O7W=@%0E-SXR]T76Y2 Q>[;MV\7O#TX M_QA:HJB>.MN'NT4;X_##>AVJECH=5FZ@'K\TSG%N<;TH7_QB=FWD+];WMX/> MT1>*_QX^>SRM)RNUZ:@/QO7*4W.W>'_]PX?7O%X6_&;H$&:?%4>R=>Z1'S[6 M=XLK=H@L59$M:/S;TP-9RX;@QM=L+M0-35ZM/$7=_B)C/L% &]2/?4WU^?XU M7)O\VQ3_/FQ>-/A)^Y6ZN5ZJS=5F\X*]FRG>&[%W\[_'>V;_]63_M=A__?_" M\V5SWZ_4BQ;5W__R=G-U\TX]6&VZM.!G?0BCB:???B>E/:'NMO]!+:CH5$4^ MHF"5I9VVLLG3;K0Z.G]4E9A:*M-7=JQQE++%HO8F\!?8&EM2/=>%594;?2#E M&K4=\3.%L.(S61+DE#VVN3%@5QB][BO"CCUYU'Q@9\!JTYD_2#6FQZ\&%G', MH](A.#Q%JE$3L>43<4KR3@YH]9X4A6@Z6<1A#-[M35';8.";O&W6[VU MI*P+@4(.V,JN!$%#_/7%@1-*)IJ=%A')@<.ZZP;='QF,RO7!65/+QE,,(>(+ M21N<;0U./\![W?7](;# M6M4F#*,XB_SI+*"PS#%XX?(%Y%B#3%KBW.$T*1 .']1QE[NVMM" 72//+9&K M"G%$C_8B#4B-4#ZOXL$I>J)J3!Q+(.,\E 02*:S$SD!?1W[,)Z,<6AV9)UNR MAO8I,,:<>NRHB$F\4K_"F2DR$U))L)=Z@*$G*0=D\:_7&]26M9FWM>ZDX@KQ M3S%(22;Z(4%FAP39$Q@!_B#S^$]/%6H;@(48YA#P/@D]>8^5,ZGA'Y_%ORI) M^Y;KWT^>L.%C#2C,>5PRL7,[^1P(C6X92"<23P+VF$$ MXSQSJJB*1M50SYQF\QF+I=B(+2!/92/@C]XC(CC- U,]6A8!9%?[K8G^3#4" M,>/5UU%[WHR N*D5KEKSR*'75 GCRZ;&650.0]1)9UVI]P(D&F/53IUQR6&4 MTH";1?_$E;G'DUIPK4)8[#$8L9>/SZ5Q1A/9GROKG6K= \CB5F=3325M3.D1.:MKS=TF0V*.BYB%#K>.R (%#42EX&I@_ 5/ M$,PB,9]81TO)0=$&9-!4:)@>YQLF:=_G,5.RV6,:Y;80_5@E@?.H=(,3QE0Y M<.*L^J1WZ2.+O-J")' JA!%@;1'?3#+10J.)HYSTV+M#S_S6(#"[NU(?&PZ^ MT<;.Z_-4)V! %XKLY4)A@C@^?"YESB>,@'G-GP^M._76G0-&O"^0WQMH0C[A M9'29JK)H%&>CQF4BIS050T*XTX]4(A>;^91+V[R%@4F3!0P#4=-M9?"8F9/* MZX^GW.*9KR+Z&(2O/0 MQ 35FXIGA>6%!9)]G/(?68F5":N9*?(P) JE;WNY3&><+R6,4:!3^[+#/G MPPQC<#&?8LBR $:/H.(_R_%$*.=.D$3IZZ992K;D#>5GI*J"02D=; M0-]KOK&&/(@3F)/: %9/H(J!VF$5DZJHC)RV% [R%@>3G@_O\G1H6=M];@^E MT\_T:)EXB83-6G?%0ZOH!0]TJ1F"F(]\PC->)4673ES3.YY72C'V=-2E9S@I,2&\SBS/"I8I.O@!F]*U]("M/*:,7+ M<(L2&+Z59Q"&Y0Q= 4!6(7M/O11'DO+2[2S3- SGED>8R=R1_'1KF2XB MX,X(YV;/)1&SNPH#F2R0VGDW#JHEE$4[NY^J/;_VR9-K$@D!O36[END,7ROT M$M0SVA9W8J0MB.9O@_/;W%H8OM/55'O/(I'Z49J>^)[$%0\6_9POD/[RXBGS M%I7;V#A,_;D!?^!L.VFFBA"ZNLRC-5B..[?.]^&5^G$RF[L"PLR#=Q:E4RP0 M[-: (R*9TL/R)6E+&%YY5E[FJY$(B+04F?OR<%AN2>7=87Q:,=C0<^Q %/_"O,>6;Z\[A*@)YUYD4GG;!&#SPB3 M(D49@!)E;D+Q^_H52\217_]A[CZ6Z=L>IQ+XL[<^Z]D;-6C03MX;!KE7Q_1R M;?IV>C7Y/KV1.RU/[S4QJ.-&Q4K:8.O5ZKLW"P0O[PK30W2#O)_;N@C!DX]@ M.IC)"_![XUPL#WS ],+V_K]02P,$% @ R8*;5#QRF?6I!@ (A( !D M !X;"]W;W)K&ULM5A9<]LV$/XKIIC.J#LJ' MG-B>B9-TVH=./7'2/D/D2D1#$@P 2E9^?;]='J)DR9U>+Q*/W<6';T_P>F/= M9Y\2!?689X6_&:0AE*_&8Q^GE&L_LB45>+.T+M1B MG&M3#&ZOY=F]N[VV5468W-X/IH'WPP:S2P _&M]>E7M$# MA4_EOL9>%]O369K^;)*0W@_E M);34518^V,U/U.SGG.W%-O/RJS:U;!0-5%SY8/-&&0AR4]3_^K'AH:QHE:@A( 7@9O[]_D*OIZ^^5\2JV>5D%2M1BJQ*S-@G45('"8 J\ M(GX<4E(;B72(Z34Y)*XJJGP!VW99F_=\!84<2>=Y PK%P ==B+VD/E%5 M88)7@,)L2$DK8NJ_&ZF/6&L-/5X7:U0%WU R9$#\D(J0;8'45WJ1T2D[O!6N M%HD""PQ?QZFA-:&>"?287$#)/.:=H-V*&I3!!IW5S^LPP)9"Y0J!Z:DEG-5: MOFKJCB!M9(%6E94KK6\\I;.XRK3L-VE\\135D04+*Y&154AY7.R<=-0 2F5A M4-E*C+DT^-1[^3^)'L/=9.37DGA<&>1D#I"5-5MBKA-*329 M..VZC(#!Q51H*TG&A6R[!Q[6,HPQ4I(DIQPALF*#/<@B3RMACYN-">EQJUCV5KUAG1,QG%6R/4E3;(Z\"&!/>0@I5>2EK:RL.2__Y5MY5_^_]1R.SW M_).B.Y(/WPCI3+AZVS2+)YP-VQQN,KM5G9T/K\YG:G8QC,[/=ZVP:PR5%\(/ M&U5\:IW.Q#2"U6EW^W#*/T^](>TY>ET[KL-Y,9Q<7@C.^<41G V2KD17!9?X M?K2K,M/%02L)F+Y]Y;:-("IEVN/F;*:FO2WL%NL5 PZL9YM$JWUQI>;1OZ"C MC=X>(=/YG/_.KJZ>1$0]OGP@M*BB:?HBI-V,E'-F".ONT%'EZ6S:R:AX<_MUBN;]0)*4XPY"VBJDN^F MHTE7FG9##J_=CZ+^T(/AK5IX^E()P76=KG%BI:9RX73#QN4?-9?=*CWN2(F0 MQI?KK5I0"RUIPD52OP'.CNTV2(^A/CWYKD+48B,F\AW%)(O,I?Y-^A!W'!4[ M*P*UMQ;&P09T.Z*U#:M"0#KSE2NT=7U^H3(971XP":8,=R&VP!=E6\:;YG[@ MG$,J.ZP8F&>'3@+D1=\(VOX;86._]G,KAK'UGB@")*YR:2MK:B8Q:%Z-YH>K MP#4@JJTR)9*,6/)%%(TN+WL%>^>OI]O:[S.U_$[*HWMD&>\EUPD="1] X&A, MC(='A,!F(N/C.Y3<9\SQ//DYLT9+1LH7M++!:,[.X%!C=%QW5RU9G)O0G 0\ MQ1C9@P&&3&_JX<'"LD/G7H$21Q*-/-AB!N>WOEK\P34'V)J%46L2TYCOU)=: M4K6>N&M_L$ M'X$P ]9'^.YI]P'D37WNWXG77T^PLY4!O1DMH8HD.Q\H5W^1J&^"+>4KP,*& M8'.Y3 FQY%@ [Y?6AO:&%^@^"]W^"5!+ P04 " #)@IM4S:Q@]2 # Z M"0 &0 'AL+W=ODL$95(CZ3C]M_W2-F* C@NT&$O7R3R>/?< M M1JDGA!U6SB,(^CW@-7:=!R(:?QTPH]&E-YR.C^B_A]@IEK6P>*V[3[)V[3*: M1U#C1NPZ=Z?W[_ 03^'Q*MW9\(7]H,O3"*J==;H_&!.#7JKA+[X<\C QF#]G MP \&// >' 66OPDG5@NC]V"\-J'Y00@U6!,YJ7Q1[IVA54EV;G6/#:78P7LU M%)@RM4@< ?OEI#J 7 T@_!F0#&ZTT76@-T'EZ,AGH3+2H9%B!A]I9:,[ND2\\8!^H.Y=/R9.K.GN"1Q/\(!? M0@+USE*2[*^7\/-/^/U7SS6.%1 M=JT-A>WK=*V5U9VL:5S#'3Z@VN$(]P+*.8\+QB82\A=?I,5$XD>,OYI(YO,B MYJR$MT9;"[=&;Z2;+#->QA=\/@4MXYSTSV&R(HM9GO]OB\#^N2(491&7/)TF M(\TI&>QLPLKR97Q1LF>+D,YC]J0(K(BS[V RGL5Y^?+?3OZI>SB9]+,>31.Z MMH5*[Y0;6MLH'1\&KX=^^*@^O"JHCHU4%CK2G;18@P'[8MT+^?!Y MR".]'!S=^P:1X;$UUJ^2AKE[G66^;+!5/G4=6KFI';6*94N[S'>$JHI.K8^!(LL_%:OUDMP %*P%+2RBU.@MY+0-1;ECDELM?KR^Z[<>'WJT##=[^5UF M+*CA+BLGA.L1H?@!P@+>.\N-AQM;8?6M?R9L3I2*(Z7KXD7 ]XI26,QG4.1% M\0+>XB1Q$?$6_U&B3U\ /3N!GD70L_^1MY<1YD4*WZ/ +S]=%/GB$CY8N.I( M&YC2,(,!Y04_])JP F4,N!JX0=#>]^'$5B MYUD6VNY 0#4?0%M&0L\^F%^Q M499U"3>A)4B7,WCW;A-=M5@0&L4"Y863KK1T*/S*;H<2A6:16)%?'C'B=G[Y M6_J$JCTT,A4>>D4AJ(!:V#2*C,1W=@9WPJ^!C2(GF5"S&+=#"G/% TZ4E(%2 M7A.%9A49( M@7H[J .8T*XAAJ"&1$9$5)Y3^(* CYT0>A+'3NPT:P$\C SUMF2ZM:XP02>&3Q!)]UJMQ+ U"52HM"K28UGUH M(JC)M9'5QK6=LH>0[OFKRU"DO3/[0+N4%&N&6I7:2*G3X]/YM[>=/9L/DLE= MG()>=/26QU%Q.CT-VJMQOCR9CU-:FG,GF06#M;CFZ:OS!&BGS=:Q ME"TNP[- "@9R7SO'QTT(&PO=V]R:W-H965T_5CH+@!E-:K@KFZ"F%^_^3+K:A*$).]\D0AT MUY7'RY=9B5=;UWWV*ZW[ZG;=6O_Z:-7WF^]/3GR]TFOEIVZC+3U9N&ZM>OK8 M+4_\IM.JX4'K]N1L-GM^LE;&'KUYQ=_]W+UYY8:^-5;_W%5^6*]5MWNK6[=] M?71Z%+^X,LM5CR].WKS:J*6^UOVOFY\[^G229FG,6EMOG*TZO7A]='GZ_=O3 M,PS@-_YE]-87?U9*Z_?N?8WT_2KUT<71U6C%VIH^RNW_9L.!WJ&^6K7>OZW MVLJ[S^GE>O"]6X?!M(.UL?*_N@V"* 9Y0^J5V]>=6Y; M=7B;9L,??%0>39LS%EJY[CMZ:FA<_^9:M%&Y175MEM8L3*UL7UW6M1ML;^RR M^MFUIC;:5\HVU7O?&Q(%?7HUOO*K]S0-M5<5W!Q>J.JG?U]L.)"6].OJGZEJY4AP^Q(*&WUSEE/ MLFAHBJ;ZT5AE:T-?7^.V7BF[U%AD;3P# MR&,<_6SV\OK]._[K].63BC; PW=:=96&*58_Z%JOY[J+QG1:/<8;87#:0YQB M6DJ4$*9VZXVR.QC(8-70&)RY+B6T2!(JI+[5G:X(5#>JHU<&C_%+;76GVG:' M:?4&8U4VOTU' C.;EDZ,4T1-YMF-%<1FY".9X!3&^KX;6)6^ZET2Z3_Y#;79 MD$FK>4NZ'UK1TI5>#JU,K7%0>M1O M12?B.1;.]6(,G?YC,#CW?/=MAX:P6]T_L"Z.])76G-0ZK7[3]'9K](WL5#6_ M$P3+A)9,PWN@ A97U4*9#DK+WB7BV>]8*W6#J;7-ELY")\73,$4R(FVUP5?( MFCLE[N 7@4&/NV&4;^)AZ39+_7#$3G M\ 73[T3E7VUDP3(]RV>0G>BT$U:?)S:S$560^:Z5)2:#A;%N0[9)RUK,*A(' MEF&U-19C5=($.AAK:]3@! MD2[= 3%Z=1O..Q%WO%'MH$MMLJO6I$9O1$L1"_\8Z#1\J&0^>0*,$FT)DIMD M2%87V(&3+YUKMH9IX\Z?E!/[@B7[Y#0#IGZ>]: MA+W/L_Y_,R9/^^*+_R"L^5_*'RX;Q\X4!WZP%?&R>H4X.IL(TEY>OZTH(@_T MVN7UKS1TRD^/9T\G,0;L:&K\B4Z+EX;S5XU_K1&ZP14>#0WS@82X,Z]B!:0.JI4=6 MXD*7Y-YE_T^RV!+KTNS0>'?8T':@1_%,6BJ#*L$$(B[3"3EFP2P>D&>_ZMRP M7-VC7V?3ZA,Y6=1,H^<]^6D-4-M5CT$$AX[/2#JO.S,71"*#U-6+)S'2DKJJ M]T/G&M>V1/189A\=[?+3)ONRLB(G#8#"&_U*$8K[A.(@* J0YX2@.JN/<3AO M;H_7R&8JEK\(;U)M5X8LGY&A%JMPD,IFF+>&LC6>YJ?!ZNI\QB<]9^X1#DI2 M#+1)K$/8&P$,_1G"]UTSD<4/JQ2/F8>H$:2'B>DA .V+;'5:.OBGNG?0%ZCR M?A?'D^/917+OMZ"WQ$M SN?&!@.([CU[]N3[$FJ Q.^BS5SFT):^^YACG @B M/O&BUW><0NO.%ZA!6J7CV(:"9X[QRDJ@Z.@TP69WY4ZNPPAL/)MN)?M^/GN. M02&R_5M<8DUZISB=;;X(S>F[(D;#=!6A1)!/G>4S+24)H\R>" $5K(UHB%X: MRYQ#+<@2LDN=/A.7XO7OO^G"("(+P+[,6S2'' *&GLWO=W9@:AHA\$,+FN$?27)-. M:P7^^=@\$$QB79N0&YJ, M%F) 8'J*^A7#E DY6CD'F)ND%H2J4'LC 2*]T^\VJ <@ ,@.A3;SVF19M#RR MD0GFTHC1I'8*PH;1>[Y+#@&.*H K_E6W.#EQ97X+@N)]\D$W:L=1'Y*4,XK0 M).K BB;5IAV _Y3_>6(!"$&TDX7I)SRJH5R/%,*%'OJ^&8 ;KE &RS)@L4"G M'2'L(,B.D[Z3W#_#XX\ALY*U/;FZ9_8_)QO(#-_X;"5W0HR^A1>%O;'R:*TM M8U#(?7/6&<\N[D1!9AF0 TK*1=#P\EJ3&[*4(D@=6B%AY.]#LV2),X3X\6XE M64W;V2M-B8%"T@1&,F^ *!7;V7'OCCE3,'8S]'LV"S.XMV%/!_8+57]9**SZ M@#=?(-ZBI#CD-8UT='[;S"Q (*3 M0+@0!/)\"RW>*VY'D@X&WZ$$0E\R.P9!1[39CS/O^#O:[V)H%YQKA6)22[[4 M32HLU!E.#?TPCZ)VG8*V@1U0OW&F$[G"5B32YR,[S0^O%7A#H4T+I2:]!W2*QBKOC6< M4E8^E$O%DU#_X-(9TPT,5R"J;,UNLW%>U)T2;#QBW]GO%H;GC?.,K#Q($K:& MVBI7?F4OH1KFB:>"%05&P29#46Y:79NU >TN]X'%?G=ST.2#,?)EM7);^K(3 MM/Z"H)+H4SF+'0N!0A GZV.M=@SI),//UFTM;^0.%-E[\'-OIY'FWX5"*?!$ M&:0H&X%O;!MNR*2>?7$TADN&T:1%G9D:H& 3YY%,*8JPK+%L<%6QPR93MD2$ M5*5&EA_ +59K"(V14N221?''8T[X@Y\SW"H N"@'5!6%0D0K MTL2"G(F2?KT,^0BV>__[N-\$=Y,$7JDN0_1G95J=$I^$C'QS$=Z^9QIR84#H MEZ\OO"*\H,!'SSG<1UF&1*^ASQT7E>^M=&]VKE=D' S% G(2LI\L*1;W@SN$ M8DBWK4&MB[GZ)-L'MD\&3:';?-9(7$)%0DIMX^@P#=>4Q4RA?,V*YTT52LUU MF:4H9L>A._%*SGR(J&Y)>T'9M%;#I>PY MU,8L4JTK-\8"-OA$UX)[D(!1(/4^N4&JPU, @Y(8642O.#!7Y^.=+&@\43>_ M@=/S&>5AGB26/8IT";@;ZE21GR?'$KM/,=8.=%+*?%$+!,\K41'CY'J:L[H] M!H)$,LT\N5.N)1/4=MDG]Q][$P.D[LBD8L&&H>+.;&K)&Y$)"E&+4B1*)++) MCF!63CA32&G!:>O.46BQ;DVD"IMJ?"2.OTZOI^DB(]9&\9GDIFOEY:+='I,& M!+U4._:N5&J^-VM1VE.- '9,%++_$_FKP[6P+[A$2&SAY:UW,3"J48P=@S"3 MND@<]_I1 W+7%(7+%;DH@IGQGR6E: ,>A3O-Q*5@?J%&MG&.RRSE"H_U=#F% M 0-)*6ZYEB-B39F]QTF(E!6D-B5[2\>15]G/W; 1H5O".F>7*&-H-G;$3:E. MA(WD50,V#O[)H>O5[Q)W^NX@K?E 496@_Q=UNY\4??WH,F@B4I.=Y)0F%.O$[[DB*7-O4>,P4O6J3G')*>(08/9/KU* M+JCZ5,0J[A#)7-/5XN@JAS9HF+^&>\\H2A))<8.)O-RQ]8 C)#NDL#^9<[75RI# !-$O"C[Z87 M%26W+5L6?7H6/_$.'YV>3K_+SS,>M3NIRCTZ/YV>I2&,3S)W6 Z212*_6(#9 M4= :;%$IQ#;GQ-105.'=G%WD[42@X<:%J-M^%[&17)E]'U82KA4M-UL).;D. MU"Y>+'ZXNDZBT+=JG6XE<(K[8B.H9E2,99GD*/8!7\E-*+"'H-ZS4\09C3L7 MN=DHZS"(*8RUM/NK:W+C[D:'(JZ^,5(3%Y,2F8IQE.O<-R;LAA>2(/X3(7TO M'61]KYFA$E2&AJH-4GF:G?$CJ@VD%.#VD[(#;I[E_O)2RL^@K1+_@]*B>4(/ M/6-P+ N9CJ+8'S1%+W5'OK3)74-W--T)'4/YQAZP$*F#8]^WS/1(0(].I\]+ M\[.ZSW>@86>QEBA'S"KX]*+PSW$L\.T@I &*[_?U7AI'B/Z%VJ(W$Q)RS$2JDER+V M1(0VOE$O]UO5LC5?\X]#TOHW1F_I:8#U=G>'N+*U-*8))\G]$+OBI10B1L U M:HP:'>H@.IUE39\=U-5'A)K]2CX\D$[4<@]/),G!B-G%;S3Y=ZRI E(VH1,M M4E,FQLC':XBS96T&A3/FA/%ICWPYN3$294,E"LUQ M\*?%(M4DZ4$Q8;@.\]-DSH*N.JY%VTI''Y6]$NT[W% 4DXQI)7HIVK ,5RP8 M@.CDI^1"\FL1)!](2'.!+3A#L*:1Q8HA2H7/2Y]P4B/%6&=UJF<+YA;8A>+) MO505NN%',Z6'_/.#?:I[L+%>+9=H/@[>^NAI0\X;I01S]][P#TMYU\XIL#.EG^Y!K&%HCF*)'R!F4CF M'7 (:,,:G!-)"GV^L6F3U7/_ES1@_D^GL[],QYU1=^:-5CGN)J!4L'PGZ4FJ M,XH9$-J4R7)09L5M$!$BQ:8#.(=0S0-J_;1_ PE)1S8K!8H]YTU'?'0ZFSX= MN\.+3 /NVGCY>X:\*5]83,<_90I A9W$(9?DK[^CF2[E]:$%*5W6$Y-HN<>" ML&A7!@E&([0YD,FBIQ[0"NFQ,_'#[0H7?0'+*)D7*IQJ@E*I(V1?F3?, ],%(@HB]WAD502Z<:0%Z&X6W:G(IM]- N"L.K\J$.QWA M#+$B_R=U=B\Q?G$7S\Z_I, /"^'X-4 F27':1PAMK/Q51JK>(Z>=B'3VG+= M'P08[S%:;/FW&;FACJ0;C)9"5.PI0Q/$'H<84G=1C)_)W*4:&T)7;IL(^(5L M$7J#EE(]EAR?%3V+)@);\PU\O%SCR MZ]CT;?IQ\:7\I#:_+K],)L-9&O3OZ04-G4U?/#N2H!0_]&[#/[ E*.S=FO]< M$8?7'5Z@Y_BM6_R !=)/KM_\'U!+ P04 " #)@IM4Z21N!74% T$@ M&0 'AL+W=OFD^?<[4I;$5+(;8!BZ#_MBF:=[X]US MQQ-/'J7ZJ%><&_1Y7=7Z=+(R9O-Z-M/%BJ^9GLH-K^'-0JHU,[!4RYG>*,Y* M)[2N9B0,D]F:B7IR=N)H-^KL1&Y-)6I^HY#>KM=,/5WP2CZ>3O"D)=R*Y5581N/%IIW/2F;2"_O]6^UNW=]C+G&E^ M*:L_1&E6IY-L@DJ^8-O*W,K'=WRW'^=@(2OM?M%CPQNE$U1LM9'KG3!XL!9U M\V2?=W'P!+)PCP#9"1#G=V/(>?F&&79VHN0C4I8;M-D_;JM.&IP3M4W*G5'P M5H"<.;OE#[S>Q$5E!JHEXBX[*&CDJ@,+5CD%O-ZE(?OT8_?)>1D/[TGWG>KQ3L MQL<+@FP7*Y?N-D_S)W3'U8,H.+I1\D%8+@N%3@LL<+>XYL6*U:)@52NE!V9? MH20C08PQ2M,I1M][+^(D#A(2HBR:QO#BRO82=5B;YT:0AG&_)M/Q"+'];-\X*J& ]OLU1^G093T MZI-1[R,:X&=,$3#=NAYG$:(-VRI60X^&-@8(,ES!J\-VH8SCK$=+ZE0.[$9! MG":>W128KN%T%S^^96M1/3F#X #TG-J,H:M#801(\#J2"_\(4Y*$W9(Z3'Z%P1+& N@GVV*T M_*&E$*A\G/5 >EZ5KQ"%LR#T8AC%+BE7GX4V]IQNR_ZPH0 M#@%%6K,:2+:"(%?"2&7WN[8&.OO'0>+"^OV3^DS.U8WK#"[Z>0S/U^?8/BNWDW__Y^IOS)G3M\A-$P#FOD4G,%X2CP"(5"U-$67 M+M.HA-YG)'SZ?MH*+6Q7T6AF/S\V4K.J]^L(A\?#PWK8$6%VHG$R(-,DB EM MC2I>,0,9 ,.%XJ4 C%E,NLUV$G@TX9@, 7 4#UUK>9OCTH.U1?DN@/W>,/3! M;*@$#DI,XP$Y)^F !J.!_0SP4L:A7OQD028HIGZRX+".D]3/39//+H]C[63F M?1#HK(2*ZC.Y!8$[A505 M-;A4FT!O%=#<"54\B$:C25!1)KS5PM&NU6HA:\.9@&M%=%U55'U= Y>[I1=Z M'>$#VY3&$H+58DLW< /F]^VUPE70H^2L J&9%$1!L?0NPO-U8OD=PT<&.[TW M)]:25,I/=O$N7WHCJQ!PR(Q%H#C2_\%R4RZ]F4=R*&C-S0>Y>PNM/4[!3'+MOF37\HX\DM7:R*H51@TJ)IJ1 M?FGOX2D"42L0.;V;@YR6KZFAJX62.Z(L-Z+9B3/52:-R3%BGW!B%NPSES.H- M98I\I+P&<@54UPKPQHTF)[R0/(XQYY[)#'1Y!O MFL@FLB"%/>3.'J()%3GA< =QQD)*!HBHKOQ+RYP3&_68.5FM%!,;&[U,/^;08:MNK2J28_I: M$&/CHLUA]C>>]E!3[;^XN50!,F:\QG#R_[7=*&3]29=]<*O93[)^/X"1POZ_YX[(?A^"AAX)E(^FVD2/8 >HF"I]D@JS5#S#CAQ?JVU(!/.AG^JT_ MT88#4C<>JNI4&NS0W;3$7R)0E@'W"RE- MM[ ']#]9JW\ 4$L#!!0 ( ,F"FU3&$,OZLP, (H* 9 >&PO=V]R M:W-H965T[WCW^"9;J3[K$L"0Y[IJ M]-0KC=GU#O1& <^=4ET%- R'0 LZ*[FH MH=%"-D1!,?7FT=TBL?).X \!6]W[)C:3E92?[>4^GWJA#0@JR(RUP/'X"N^@ MJJPA#./+WJ;7N;2*_>^#]5]<[IC+BFMX)ZL_16[*J3?R2 X%;ROS26Y_@WT^ M+L!,5MK]DNU.-HT]DK7:R'JOC!'4HMF=_'E?AY["*+R@0/<*U,6]<^2B?,\- MGTV4W!)EI=&:_7"I.FT,3C3V499&(5>@GIG]*F6^%55%>).3^QP:(PK!5Q60 M^\;P9BWLYUQK,-HG'[%);IXL5P\F@4'WUDB0[5TM=J[H!5>,/,C&E)I\:'+( M_ZL?8-A=[/00^X)>-?C U2UAD4]H2.D5>ZRK!7/VV ^JQ167<>,JA7H Y=%7:B;P@+4S^.1SU*E S] M<1SW*/$P]MF8DGGVI15:6-S1KILVK<)4-) -AHRN\K]QM&TL6-PE /DH#9!D MT)E*J)^FT4DB:>R/DU-R1%,_I93I^I L1K+.$_W&'@B:(?A:?F M;AQY<+:<$7U[K6"GQM@P\EFOD(>3LM!/Q_$)/1E3/XKB[R_A,<<18Q=S.2_= MRQ!!)BL[E.GWPY#Y4<)ZE-@4HD@XHDF\&BJ(UK1W06BIS>%EX MQK]I[=BBCUSBB%S<(=OZZ"/[W14"$_I'@\A=P1:#)+93UVO'2 [M7 MO%%@%Y8<)3%8;&?,-JW='QK1GT6LSXO.?)";)1A MG]>[C'T6'6TB3N-J51@,K.M(+/NXYW8'6KVN&R-_W W8N5X+>OM!#6KMMB!- M,HO[NU6AHW:+UGRW7QS%=UL:=L):X$164*!J>)MB[ZC=YK.[&+EQV\9*&MQ= MW&>)RR(H*X#\0N*<[B_60;=^SOX%4$L#!!0 ( ,F"FU14VY0,8P0 (L, M 9 >&PO=V]R:W-H965T.1D3VH\DK7A3- GA71=ED2]32B7J\L@"3:"*5LLC15$XU%% M%O29FJ_5DX)9U* 4K*1",RF0HO/+X"JYF/2MOE/X@]&5;KTCZ\E,RF]V=U^+T!YK8TLU\; H&3"C^3[.@XM@V'\ MC@%>&V#'VR_D6-X00\8C)5=(66U LR_.56<-Y)BPF_)L%'QE8&?&-W1FT.., MLP6Q4=*H\T)FG.JS460 WBI%^1IJXJ'P.U I>I#"+#6Z%04M=NTCH-5PPQMN M$WP2\(&H+DJ3$.$8XQ-X:>-KZO!Z[^ ]0T87-:=(SE$NRTH**HRVL\)&06ZC M<,SYT]@W>PBP "2N-A;=+"F:2P[YS\0"=9@ B:PU$84^NT"__#3$1W-"6MT?T:X'X=Q M'+%?R0E6)N"3B8*4DP6'6TFSD>PB_2T,U,A+9U@.LY4I0I0_,>G&89(/M M=!">9[UF>L<$$3E%G$+I(L[(S+K" +CS3*E; PW/C@8QP8=!Q?W^UD-I"$>5 M8B)G%;R14M;"'/(#=_LM@NEP&$*PFOD7JO5ZN5H AC+L'UKXE&1:UXY^+K4Y M=+V3#))#[IWD/#[;8VG10B2HR\?_NHSUH#?L'\BM)W%ZU).\5@J*"U5V'7F8 M YU>/-AR[.!P,!SN<^92+#X;FT8;E'6E>D>VJ6?YQ8/SEB0=9B'NX?UE3_20 M7M-#>J=[B#^\+!520'$ +: *H@4[WC9.P_U?Q;\_7D,WDIP5Q,">^_#>"QM+ M6@C8-5ME!R:^^.\VQ7]5_ 7'$9C?3NY?;JYV=AT:&A1ZTH7J=0^ 2[J#S#]@ M@KM9[!]2H05<'F!; ;")WY.="E&7P H^4>B;#RZD5@F6_ IURHGM!5,@ M@;[8!O58[>1HW,49^@0#T+7#P,Z<6Y_0;:UD :V/O$VV-G?R(! MLR8!LY,9TW3%.]\5'UU7/ '<;X#[/WPZSFM3*]KJ;15Y*S>'I3C:EX_E_ND% M/VXWN6M>9-L3ID0LG"//QF7\X9GHCKN-N$DZNZ?:?X.V$@]LSJ+/*.VZ+8QQ M>K#X>=AK'5EXH[@]@)(X'.YI6,#8ZV5;O?,PR]IZ*>AY/%^OK7ZW>^+]0).+ M6A=$V+*%NP;;.PH<6/ZNV$B;F_:5OV!NU?TUW=>EA@-U#J:V.@*D_-773XRL MW'5S)@U<7MWK$OX6J+(*\'TN(7_6$[M \_\Q_A=02P,$% @ R8*;5.NL MJ#]*! Q@P !D !X;"]W;W)K&ULM5=M;]LV M$/XKA%<,":!$[[*=. ::9,4&I*C1I!WVD9;.%E%*5$EJ3O;K>Z1D17Z):@S; M%TODW3UW1SYW.L\V0GY3.8 FSP4OUZ)*#.I^Y&D&-R$U;@-L&('@#("0?1:ES17XK,\AV[5T,IHLH MV$9T&PP"?J3RDH2^0P(O" ;PPB[#T.*%@QD. $4=4&2!HC> 'K$@LIH#$2N" M12&I9N6:< -/J%*@%:%E1CBC2\:99OM.F^2'?7Q@)2U3:%&EH=2%6%W4/1<2 M""M37N-IXPOY]9=)$'C7"VE"TB\V!/A>LPHK1SND!.U8%?_:BM):2A0TD8IR M?:%!%F2UX[:7P:Z[#=/YJ\N[%@I+HY:--I[,*V@&2]UWW9H]["CL1BA!56#K ME+\X)CN= [D3I1*<951C"+>4VT@?#>,OR1/*5X)C:S%WH0V)V_["_L%XC/EI M5[5SIL->$:'UB75CM46M$$Z=7]DL;_;OH<4BB7(K<0GG_:R M.D:5=\0/(F<:)AU.LS..DP/[WE& ML%<'^Y$<:P;#X(;[8S8#]XVLW0]@V=31+84 M,7:=2\ ,FL\#F,_#'K_/^WQ7A"SHBVFKZA MFCI3C.X!E&J/ M:H'-S)3%5\IK(/=,I:+&Y;[E61 Z8>"=DUU]O.S7$FV2*N;.R&?Z:.8S;CJA%0\&CM/Z)GQ.P]XBNR :I_3_VW2=+U?XD MTZ/J#L=["Y_<4963BK(, Y.$%N:&#S\E!:902YOQSXKX'4F&PO M=V]R:W-H965TV4\N]W=D*@+:!-U;[$;W?//??B<\8KI1]- 6#)B^#2 M3(+"VO(B#$U:@*#F3)4@\2176E"+2[T,3:F!9EY)\##N=@>AH$P&T['?N]/3 ML:HL9Q+N-#&5$%2O9\#5:A)$P6;CGBT+ZS;"Z;BD2YB#_5G>:5R%+4K&!$C# ME"0:\DEP%5W,>D[>"_QBL#([<^(\62CUZ!8_LDG0=82 0VH= L7A&:Z!

$ M-)X:S* UZ11WYQOT;]YW]&5!#5PK_IMEMI@$PX!DD-.*VWNU^@Z-/WV'ERIN M_)>L&MEN0-+*6"4:960@F*Q'^M+$X6\4XD8A]KQK0Y[E5VKI=*S5BF@GC6AN MXEWUVDB.29>4N=5XRE#/3N=6I8^%XAEH\X7ZX=(K>47;_C-XJ. MU2?D23JD+@;QT?PDM;? MQ.,E_^#O$=A>"]OSL+T#L/>0*IDRSJBO-94368D%:#()4QE*("9(IW2"H+90E4$D M!N;7D*B'1>VQM"2U2SU <&H8N$Z5[!0^'K+ MH&&TT1Z,R##^0#@VU;L3D&@X=$-O-'I;$?N:2KC3IP7HI7^-#)JNI*U;=KO; M/GA7=9_?BM>O)5;BDF$L.>2HVCT[[P=$UR]0O;"J]%U_H2R^(7Y:X*,-V@G@ M>:Z4W2R<@?8W8/H'4$L#!!0 ( ,F"FU3N!-WTP ( # ( 9 >&PO M=V]R:W-H965T,O= %!#7DUC%P7)[A%NK: M$6$8W[:<7N_2 8?RCOU#FSOFLN &;E7]512V&GN91PHH^;JV#VKS";;Y)(XO M5[5I?\FFLXTO/9*OC57-%HP1-$)V*W_9UF$ R,(C +8%L#;NSE$;Y3MN^62D MU89H9XUL3FA3;=$8G)"N*7.K\50@SD[FL,026W(GNP:[2IT]\D4-YNTHL.C! MV07YEFW:L;$C;!&Y5])6AKR7!13[^ CZ\-CN_"F["3A/=?G)*(^82%C)_BB M/MVHY8M^/]T3K''/&K>L\3'6[HLFJB1B4$>^P%N 7^Y*:>LJ2DSGW1PJ[&D/ MCQ604M5XA81<"4ELI=:&R\*\O2)O7F4LC*[_V?I8 M:8"];X9@Q_.J;WEO>0]YQ:7(>4WFH)]%#@AP5UOOZVZ5QK2Y!92D4;4H4"[( M SR#7$-/]YJD&?,32@<:].=?A,E XR3*K@>:+$M\1E/R42MCR$RK4MC!,66I M?\&R(6GJQVA_BI,FD4_C^+]M OUS34C2Q$]9."Q&&&,QZ,F"I>FE?Y'2HTT( M,Y_N-8$F?O0+3LHB/TXO_U;1#STZP> 5;T OVUEE2*[6TG8/>J_MQ^%--P5^ MFG>S%/NW%-*0&DJ$AN<7B4=T-Y^ZC56K=B8LE,4)TXH5CG30S@#/2Z7L;N,< M]'\2)C\ 4$L#!!0 ( ,F"FU0!"%#>" 0 &(0 9 >&PO=V]R:W-H M965T\\"8C M.S>7DY'8ZHP7;"Z1VN8YE3]N62;V8P][AXD'OEIK,^%/1ANZ8@NF/V_F$D9^ M'27E.2L4%P62;#GV;O#[&8D,P#[Q%V=[=72-S%*>A/AF!O?IV L,(Y:Q1)L0 M%'YV;,JRS$0"'M^KH%Z=TP"/KP_1?[.+A\4\4<6F(ON;IWH]]H8>2MF2;C/] M(/8?6;6@OHF7B$S9OVA?/1MX*-DJ+?(*# QR7I2_]+D2X@@ <=H!I *0EP+" M"A#^#.AU 'H5H&>5*9=B=9A132T$*CFR01VT+S8H7F(N,)9PK1(D5W2G,0&T97Z+Y(1,[0 M(WV&X=L9TY1GZAW<^+R8H;=OWJ$WB!?H<2VV"J!JY&O@:[+Z2<7MMN1&.KAA M]$D4>JW079&RM 4_=>-#!]X'G6JQR$&L6^(,^&>BKU&(?T4D($$;'S?\$Y4U MG+3 9R^'8\=JPGKK0QLO[(C7[!^Z>Z906]2^B5]^A^?0O6:Y^NK(TJNS]&R6 M7D>6!Y9N$Y:BC10[;MT"S H*P^;6IG;:A"QC1C:FL:[=A R' 6B^:Z'2KZGT MG53FKZ)0QNH?4;CJQ4$_K#F4>]8_83H:2:;T@2>P MUFM+U]CMMOV%FD8GI''4)=N@9C-PLKDO=L #O%ZC)>42[6BV96W)!Z?)25?R M89U\Z$QNJO,?1B44/8[0O^CA%YIO/LQLU4XE2[FVOH0'\0S-3*F9&G:4;5SG MC2_X1<@9B[L* M=FS58??GD#1.1MQ.UJ)Y?/4_)T+26!3I75++QI"(^RAVJ Y3T8FMCM;C##D] MA)&HNW ;GR*O/F"UIH].]A"?)/>/FJ^2_XO#&9VP)(8/K 0@BRX:V'&BQL2W>D]#0,-K+-:,ID^8! MN+\40A\&)D'];X7)?U!+ P04 " #)@IM4)YCZ(D4& #V)0 &0 'AL M+W=O?7>(D; EDC3.9_OL:PN D@%VA+"^30.Z'KSES[K'Q])#)[_E& M" 6>MTF:WXPV2NW>3R9YM!%;GH^SG4CU+ZM,;KG2EW(]R7=2\&7IM$TFR//8 M9,OC=#2;EO<>Y&R:[542I^)!@GR_W7+YXU8DV>%F!$AONX>I+Z:U%&6\5:D>9RE0(K5S>@#?#]GI4-I\7&3J JB1;PH2_+R+SA4MMX(1/M<9=O*68]@&Z?' M3_Y<3<2)@X[3[H J!W3I0#H<<.6 RT*/(RO+NN.*SZ8R.P!96.MHQ9=R;DIO M74V<%H_Q44G]:ZS]U.R+>!+I7H"5S+9@GJ5*ZHG-]2#4!LS+]$+FX!VXBW.^ M7DNQYN7L9ROPXOGZ3B@>)_D;;?7U\0Z\?O4&O )Q"O[:9/NBB;'-RG2[$\]Y_H"NLRT4N9M\@:<,'E&&#X%B /H9;Q MS'_='5J&@^M9QV4\W!&O?]UO:X>SB>%&[=AQ.>)Q8 >/H7]HY_\_5ZLX$N!V'R?+.%WGMJ"&NR&]/H8,24([2]HP MQ!K@\"F$]!)#+69!&+(.#!G&A?[P&+*G#,:T T)V/PA=$#*] -J;P2?!$[6) MN+0^7D/A,+PZ>) A2V0G2PMX*L]35$!,_/ 2/2UV(?7"#L&##/,B.#AZ'"DA M':-V^+@<2=/QO&S3$I"])?R>/0F9ZK6>LH4S/(ZN+Y:1H4O46RZCIA"F/F$- M]#3-"(8G9NANK8HZ6AHR;(R&5]2. ME'X3'E6-=C\V]JVPPJ9)8'N36.P3%;_[R+=Q\J/$D\97O-3EV%=FV% ]OK[( MQH91<6^1C9OJ&1%"+M'4:L:8UXXF?+*1,;S(=J1$39U3U6CWPRXTF9Z!'1); M;82T13(7E<[4N(N8>3T M:RSISHLV/0';>\(?XE!LL>9*[B/'ZAX;.L?7%]?$\";I+:Y)4S03%!(87.XF M-NVPA[RN[41B*)<,KZX=*4GGXLSE2!TH(J87$'LON'^._ID?[K_!G532B,:HN!2%( M3*,@]D;Q*.13L6GT(+-_1:1L>T;$<#RYOL FADQ);X%-FLK99XA>2J(6,^9Y M79*(&$8FPPML1\I@S#H@9/<+':\YJ&D4U-XH7A TYTF2OP4+O5)3(N6IOE7( M[466QBJ3FJULV0SUT^NK;6H8EO96V[0IHR'RT$DSJ]XOM>QI0P^'':_0##/3 MX>6V(R7$7>#JX7A>MFD9U-XR%B+:\#2.> (JH-DHBIZ\DKR^_*:&56EO^4V; MNIH%B,(&CIIVE%&&.DB*&G*FPPMP1TK?[WHYXG ,2%-UG9=MN@:U=XW[XOB( M_&4@&J/+K1O"ED(6!_GV59>KE MHDA0'_6:_0102P,$% @ R8*;5)[ &^M7! 71 !D !X;"]W;W)K M&ULM5C;;N,V$/T5PMB'76 W$BE;M@/'0&QO+T"# M!DFV?2CZ0$MCFUA*]))4G/Y]24J6K(M5]?82B]3,X9GA7#19G(3\J@X &KTE M/%5WHX/6QUO/4]$!$JINQ!%2\V8G9$*U6Y7(A,[$1Z=-Y[8_J#MAK=<'.D>GD%_.3Y*L_)* ME)@ED"HF4B1A=S>ZQ[<;XA2D!\ SCBJ]1<[>6I%>Q B:>LV:H+S[P.$%5_ :=]J#."X1QPYQ? WQ0-,]H-@$E!8FI[]E3#&;WPIY M*&;J*!3EG9&0XX8.U]:JU^4G["^\UTOOM&6P'TS"4JI&>5)2G@RA+(%3#;&E M'4F(F4:4FYI(TPBZZ.:8DPLJ 6ZP;8M\FG13#4NJ82_5G_4!)(H<865SRZS1 M$2037Y:F+-TCL>OQ00%8<\)\[C=JP;H0JQ6#64B:M]J! M5A>KVT4JN\A0N\!TPGZ+2 >' =-JFVQNN%UJE61QT%_U@A5]&M0FB6NR@&5 M]B9<2,);!$I9$TRJF-X:I!X/X.\0]BN*,]^--@U@KBMAPA(0FF39_]I5S=M*JAX/Z.\K?" MN-TH C*;A"VR'7)UX^MDJZ:"I[UD7X2F'$4=]]Q)=SJ0[K152'KI5LT*]W>K M\Y?UQ9>%R.1P_K,6+T+\\&JB5"T)]_>D->51EE/*S&>Q1&>BWV3>H#>A%'%J'0#]%O#Y!L0?[>]RU==1PRL.,,3%E2M1W2WW;^G>_7 MI*.YA--9R_?>Q=QEYJ2]FU^5.29+=3Y4E+OEC'SO)L/&_@K?KO-)MX+)!V\S M,IB2HTQ%WAE(_V9J EKFLVR^T.+HIKNMT&98LXY<]G9Z2V5?C0EHH55):3I1Z6U ML\LX-GF)%3-G:H:2GDR4KIBEK9[&9J:1%=ZH$G&6).=QQ;B,!CU_-M2#GII; MP24.-9AY53']=(U"+?M1&FT.'OBTM.X@'O1F;(HCM)]F0TV[N$$I>(72<"5! MXZ0?7:67UVG'&?@;GSDNS9R"D/4OAADCO!A+/B4N? :.+I%R[@PQ_ *N(1[+H0[[\669#JR.%]+NJXE M97LDM>">=)0&[F2!Q:_V,;G7^)AM?+S.@H#W3)]!*SV!+,FR3Z-;.'IU'(!M M-:%K>=C6WM ="$F H]UPM#U'>P_'QQ+!HJY 3<#26J/$)1L+!(-ZP8G/:; H M/3>;:D1Z92B!1Y2")V3:'#^7@#!IZBT#ZCN-^DX0:.B*B>=,P-UJA@4G9<^I M"8-8/<> EO-&RWD09EWH)PO%BE=5M.+H'XK'AF.UPJ'T<=:9JR',/Z?K] M8I!=M))>O'A&R)M&R)N@D";:MHGV'R@*8Z<95+Z7! *6)MM6F?P?)00_J'U* M7LVKD.Z=%I^^6#FEV98E^[T\4O9R>M/IF^[HNLE9DKP.J=[V\+3U M_^24K0[E=/M=2-LOE]-M_T[#O?>?YC1,U>WLRVF\,]W0-#+U,YR!7,VEK0>= MYK29$Z_JZ6A[O1XR:1*8&PO=V]R:W-H965TYTJFP^*H7;;/2(&:%4IJT M613UVJF066MT7HS=ZM&YRFTB,[C5Q.1I*O3/*TC4PT6+MAX'[N1B:=U >W2^ M$@NX!_MY=:OQK;VU,I,I9$:JC&B87[0NZ>LQ'SJ%0N*+A >S\TR<*U.EOKF7 MR>RB%3E$D$!LG0F!/VNXAB1QEA#']])H:SNG4]Q]?K3^MG >G9D* ]G@'I4-=9R]6B2G^DH=2-FJ1.#=6I:4R(DAEMOD5/\I M["BP88,"*Q78H0)M4."E G^J0J=4Z!21V;A2Q&$LK!B=:_5 M)-&:^ZA"&:A MC>[+S*W[O=7X5:*>';T54I,O(LF!W( PN09<5&O(\S%8(1/S@CPC,B.?EBHW M(IN9\[;%69UN.RYGN-K,P!IFX.1&979IR)ML!K,:_7%8G[* @3:ZN_69/?I\ MQ8(6;X0^(YR^)"QB[//]F#Q_]@+25:)^ M3@NWZZ-5I:J_,R;&4,\1$K>Z[R M[?+RPBS_O>4-6.YL+7<*RYT&RQ_R= J:J#EY#)TAL5J#AAG)<:$T2>0<,'=P M4I'%0%8JD;%$J5\D$.RKS:S=8E9'6NL1C8;G[74-U.X6:C<(]5JE4QR:D;E M'.LB&HB[ 5\=J(W]W@ZH?JEM8O3 L89;(MUI#$:X"5]WDOP>QRF*9 MR,*F<]TN ?E":L\7<1@':@A+<@/$R$4FYS(6*)EG:FI K\4T<62SREUM?0]K M2 @/$3SUY$;#['8EDH*_T6K=,8[E';V*>6Z1HQU MA_WA ?.48MU&L7V_/#O2,#U.C,F=8W6$/"YU]\K$<-AIFM0S'@U3'O:Y-JG; M667D^I5I7]%^EQZ&I$:,([P&=)Y%Z2"([G+V#W:$FP;-JIWTK,4ZJ(+H1(/! M(=8:L?Z -90.ZGF9AFET)RVQOAU)R&$UA0:LWSV$6A7;S]O];M#3- O3-&Y^ MK,)NV^ )0KH&Y9.JL-Z^;4_;[-2TS3QMLS#'%@T$-N5(T_@ WW.)R="4NJ6M MO1U#NSUZ&.0:N>Z@W^\U!-FS. NS^/N];NM5_,3FI[2Z"Z?'NX=)7"?5Z_ & MS+XJL'"/^UN5I\1;[5_K4KE&+)3*OABP<#&HIO*?N7*5'4\IW\"26RV14

J;>"YVT6YNW?VPI5>J[? M"E6YT%;P-,["-%Y=I/N=CN$C=AZ:?/1=PV2O:V#!Q?#TS(8G7@SN^92'^?0_ M;O72ZI&M7B?5N-6YYVE._\>:?-[MXB9/[^*XYW+.3KT>.W< )VR@R[6H$FH= MC95BS9WD/F)/O#Q,O)/,@@8\@]P)"^3^0:Q"@?#LR+NG#K)G-QYN5S\@NR;* M&(+'!TQSY!_'K[6QK>E=#\_SU[QZH*=-YWGN:9*':;(:5TST#\J2,;A#BRC. M@(:\@]G";85)9JS.78Q>DC=X_%&IC(N/0/ZZ 7?_\W69K%V18B?4@BBK1;N_&ULC5993^,P$/XK5L0#2$MS M]D)M)6B[NSSL"G$LSR:9I%X0$[U0&Y!X$TJ54X-;E7FZJT"FI2@G+N!YXW,L29 MQ67\4C#-;-(T.5V!H8SK,W).'NY6Y/3DC)P0)LC]1A::BD3/7(-&+=2-:P-7 ME8&@RT"1#8CG?R.!%_@M\&4__!=5 Q)6\* %ONJ'KR!NX&W6UU^'>Y_A+@:Z MB7;01#LH]84=^FXAEIE@_R A-)>%,)K(E+ $A&$IHT\<"-4:\)C:O"@K)Q+" M\8IQ3!)H>U_DD%STL D;-F'))NI@\T/*9,\X;\M*A1R52-ML=HOA-)Q&XYF[ M.XQ^FUC@^]%GL?6Q6#2*PFG0B'WB'S7\HU[^E[F!^+DG$,-&T; W+4LL?DR" MHF7O,HH*G8)2_5$>->M>'+8 )0T7&/KI!:]?U MCIGXP:23RL% \'NIW$M;)W'7DVCEXA_7;C@9'7%Q#^:4_0S!YIXQG#L<4@1Z M@S%ZHZK)7FV,W):CZTD:'(3E&PO=V]R:W-H965TS2\V28Z2=; M+E*D=%/L/)D)C#8%**5>X/M#+T6$.?-I<6\EYE.>*TH87@D@\S1%XG"-*=_/ M'.B\W;@GNT29&]Y\FJ$=?L#J,5L)W?)JE@U),9.$,R#P=N9*U*GUC3 ]O4;^]=B M\'HP:R3Q@M-?9*.2F3-VP 9O44[5/=_?X&I \,70$E;^HM?*B!8 1CV H ($QP+""A >"X@J0%0X4PZE\&&)%)I/!=\#87IK M-G-1F%F@]? ),_/^H(1^2C1.S:_BYYQ(8N9 @L_@NTJP .]NGB^Q0H3*"_WX M\6$)SL\NP!D@#-P12DV/J:=T(8;.BRO1ZU(TZ!%=XM@%(?P$ C^ '?#%$7"_ M'[ZTP^^0Z%/WM'NUA4%M85#P17U\7U;@AM,-83MIH0MKNK"@"X^8$0M=5--% MUNI^<(4HR'(1)WI[@$R0&'?-6,DR*5A,6+S,!R,WG'HO'=J#6GM@U5Z]4P49 M(ANS<&(DDZX22C+HMVJ(!F[07<.PKF%HKT'PE$C)Q0$PKDP1![2FG18,/^J/ MW&&W_*B6']D7!]8.,!+K.5APIH3..2[ -\Q4'C\=+/,[K@7&IU@NDYIN#WF07])HW\_[#KEFT(8L@R/-C*.W@*OV"S^Z%]^Q_K6$73WF&1.^HQ MK D+&%K5;U^P;17!)B9@=!)?FKT/[9O_2%\6%4W;E]'$]2?M3X]+30; OX3 M/P71 G8DP3 ZKJ8F&* ]&8X/ID7%-&B5,^Z1;V(#CJWRY9L>I3QGRJH]_C ] MOAOUJ#0R[W$X?^#8S]L"=CDNVA168S^6CPIW;2DEY M 4)S*8B"S<29T?<+.K(,%<4?'/;Z:$VL*6LIO]C-,ITXGD4$.23&BF#X]P0+ MR',K"7%\;80ZK4[+>+Q^D?Y+93P:LV8:%C+_DZ6.9?L_D3J,Z/78-6F!QN$F#=EZC]:^@#W@7_3S4[]'@(NN:_WGO_AO[O=*?&#JC@3T+?$]W^\"U,]^#TG+ M3GO@!&TX@TI><$7>46Q,!B1YB0]KX[-MXM.C+&R5A96R\(JR.295'B-6]= MK>O,P<$!)Q9,J^_,FM=Y =!+Q-2[!L4_0/%?K>X:4:<)$-#HPFU==">)<@KV M< G0H!?L!SLDJ=/:6XH4HZZ>>^J!'AH_#7]^^=%#ZZ;]O?O?%B"][+T^UE9\ M?M-TT-%H$(=76A\]-&G:WZ5?L007]+(_#\,XNI;1A_Y,^QOT?RJNX066=SW5 M=>CF=/1ZU36ZF ^Z@_M#NAJL>S0\%Z"VU9M"D\1FON@;Q^ M]. PB-FI20X;9/7NAN@H5;\CZHV1936*KZ7!P;Y:9OCV F4)\/M&8AXT&ZN@ M?&ULC95=;YLP%(;_BH5ZD4I= 1-(J A2/]2M%YNJ?FS7 M3C@$J\;.;%/:_?K9AK)L(28:S2B'>XE4 M4]=$OE\!$^W""[V/@0>ZKK0=\/-L0];P"/IY)?A MQ55JU[L%WRFT:JN-;"9+(5YLYZY8>($U! Q6VBH0\WJ%:V#,"AD;/WM-;T#: MP.WVA_JMR]WDLB0*K@7[00M=+;RYAPHH2H,G)Z=\JODEYR!L/>6,G&^V1O6UT(P&16DA-?Q%W0N#-''4%2)2(;N=( M_^1(7(X'^-' CQQ_NH=OLT$3"?;>%" M4U> WH'(T[%-ZM02IV8OVFL>1;,P MSOS7$1/3P<3TF(EH#-9%Q=NP:1SA<5@\P.)CL.D8+-Z%X6@:C<.2 98<@\5C ML&07%H1Q,@Z;#;#9,5@R!IOMP' :A7NV<3[ Y@=A3Q68XEMJD&/(^0XRC,)T MWZ=+!V9ZF"DT86.X=.=4XC1,T^ ?G+]5GVRI-W=Z3;E"#$H3&)S/C&'9E<^N MH\7&E:RET*8 NF9E_C@@[0(S7PJA/SJV"@[_L/PW4$L#!!0 ( ,F"FU1@ MY$WAK ( %8' 9 >&PO=V]R:W-H965T&!",,:SF]PD%H[=V6X+_WZVDV8%2L:VE]8? MYQR?>Z]S/=X*^:@*1 U/)>-JXA5:K\Y\7R4%ED1UQ JYVU]LMW-*\T';! MGXY7),<[U/>K&VEF?J.2TA*YHH*#Q&SBS;IGBZ'%.\ /BENU-P8;R5*(1SNY M2B=>8 TAPT1;!6+^-CA'QJR0L?&SUO2:(RUQ?[Q3OW"QFUB61.%:ZF+B M#3U(,2-KIF_%]A+K>'I6+Q%,N5_8UMC @V2MM"AKLG%04E[]DZ8ON3[)M(FW' 7[GG8*KC I -1]Q3"(.P>\#-OIU\3V=## M _3%QT\/6J*)FN)%3B_Z0_%:I.)&*G92\5])52FMF'W'M&UD,^V-PFXW'ON; M_=0=@D6C>/ 2MG@+B_MQ- H;V O_O<9_K]7_ V&/*%L2T6^$^O^;TT$C-6CU M=$&HA UA:U3V.\"G!)4"D4%"I'RF/*\VX9@H(+!"F9C/[^10!=K/B<).$'QJ M,3QL# __]1+,AV_*-NH/@^!5U?R]3E2BS%U'5Y"(-==54VI6FT=CYGJE_QM> MO3CF6\LI5\ P,]2@,S 70%9=O)IHL7)];2FTZ9)N6)B'#Z4%F/U,"+V;V .: MIW3Z"U!+ P04 " #)@IM4GO0'6V<# "Q"P &0 'AL+W=O]EYN/++-UK@;_GQ:T@T\@7DN'Y2=^5V6%2M :"8% M4K">>7_@VSN<.D =\1>#O3X:(U?*4LH?;O)E-?,"QP@XY,:EH/:R@SO@W&6R M/'ZV2;UN30<\'K]D_U07;XM94@UWDO_-5F8[\S(/K6!-*VX>Y?XSM 7%+E\N MN:[_T;Z)C8F'\DH;6;1@RZ!@HKG27ZT01P "@A;0%@7VC"KRUI0 M0^=3)?=(N6B;S0UJ;6JTK88)]QJ?C+)/F<69^0*6!MTO.=M0)ZM&[Q=@*./Z M"EVCYZ<%>O_N"KU#3*#O6UEI*E9ZZAN[L(/[>;O(QV81M*1 MGHR2?H2=Y#LF-BA7L&(&K6GNCO_O$6/!P<&@@TNY%3YR?7PABV@3O7K-26!_ M)](.Q9%7<:^I'LP:DW&J;A]P2<58X0>?QN'%U#SX+;Z4X>*^E6),XKZ: W%C M:AX\%X^;KOL2:60DN@KFG_2Q;@WH=L*"R=Q-&)JOY1/^6:6=N_;)CMC3BL+2ZX2:W&JND/FXF1 M9=UB+:6Q#5L]W-J>&I0+L,_7TLK>3ES7UG7I\W\!4$L#!!0 ( ,F"FU1_ M>8:BB@< #8K 9 >&PO=V]R:W-H965T>CC=;;MY-)$6YD*HJQ MVLH,_K)2>2HTO.;K2;'-I8BJ3FDR88[C3U(19Z.+L^JWZ_SB3)4ZB3-YG9.B M3%.1_YC+1-V=C^CH_H>;>+W1YH?)Q=E6K.47J7_;7N?P-ME9B>)49D6L,I++ MU?GHDKY=!([I4+7X;RSOBKUG8J:R5.J;>7D?G8\<@T@F,M3&A(#_;N653!)C M"7#\V1@=[<8T'?>?[ZW_6DT>)K,4A;Q2R?_B2&_.1],1B>1*E(F^47?_DB1#F[3 MP1W:P6LZ>-7*U%.IUF$AM+@XR]4=R4UKL&8>JL6L>L/TX\SX_8O.X:\Q]-,7 M"[G4Y/,RB=?"^*$@;\AGO9$Y>;606L1)\0OYB<09^;I192&RJ#B;:!C6=)Z$ MS1#S>@AV9 B7?%29WA3D71;)Z+#_!.#N,+-[S'.&&OPH\C%QZ6O"',9^^[(@ MKW[Z)=8R[8!V-=P2;2QU6%G@5A8R[+%R,$UWYQJW,NL.= UBTMN9]"J3WA&3 MU^('[%E=$-AQ6N8I293(NCQ:F_$K,X8Z;B\"[CAGD]O]M>UI=("0[Q!R%.'G M4A<:XBS.UK"?$Y&%L@M?;83O#>U1YO/@$.&"MQ"ZTREC1S#Z.XP^ZI@;&:HL MC).X\@M1*W*5RRC6Y%=A?M4_R&7T?]BZ,B+OYN^_+BZ)5B0##H^S4*42\6.P M0Q"@J_3IB+%Z<8+6XDS]P&W<:4)($D-1*+% M=]G)&],6A#?>S.'N Z3M9M/ #;J!SG9 9RC0+UJ%W]X8Q8@(@ 09+2IO=L&< MM<9W9S/_ I8=G90F#?R5B6W9C.$=8BMFA!#@HCN<3\]%<-0 M9HTR%/)"L2LHHS<%D, M3Z&ZE?"LT8UAJ9'BW/BI3)>06,%JQQFLNRPTR8661&WKS.LO0A71E6O,>^W0\3+',_-3! MR<;<(9"@K7,)9G(,LV5OAF?%3QB=EL09GA<_.CIQLPQV,.I8JP$,UX GC4Y\ M:&?LXEO,2@?#045<.?VX:=:U&NE;F*5)*(O#ZE/K.<>U::O)+Y'3]0 MU#TK4!Y_*;=;G?'P#U:GKQ4NX?9"T>U:FO.E+N=U*C8>? M?T[E=GP4VB/MW,H2?V01XYU9K.'X,.I'G>T;I^]S MK2[Q'EV"E8K +X7,8G!'_HAJ$K>BPKU359/X7CD8/X<,JR;Q=J&7^ZQ5L5[P M=N6BJK@<*UI;)> X1W^ ][W/3LL6:B+"4.51]65G>ZS0V RR#X\B13%NB9_C MQ#^X[L_;56$7*>I;VN;XZ>)K]Z"'UBP!\P&Y_K!(\RU+^CA+#HNTQLA0%_F6 MWGP\%Q]8-&RL'-2_:$>D-^T.<")%0]]2H(^GV_^D;N1;HO)QHOK7=:,>^WV4 MZEN6\_'4^9,R@$ $S;4S6(G/=YG,T46P7.?C*>T_6MJ]RRH]5=4R+1-1"6.V MJT":*P\BBV$F(ORSC(&UD/*CWZ:EV9$PLHSDXXPT--R#]K4*A[;N^70U"V;< M.X+2TI:/TY:M)]0I#^80RU[^R=@KL.P5G(*]&B,'[-%UY6&R=Z$0@GQ=7&UL MO9CO;]LH&,?_%63MI%9:8P-V?DQ)I%NCZ?9BMVJ];J])\B1!LXT/<--*^^,/ M',^X:H)S5>LW"=@\7QZ^P$>&Z5[(GVH'H-%#EN9J%NRT+CZ$H5KM(&-J( K( MS9N-D!G3IBJWH2HDL'45E*4AB:)AF#&>!_-I]>Q&SJ>BU"G/X48B5689DX\? M(17[68"#WP^^\>U.VP?A?%JP+=R"OBMNI*F%C?Q;BP9-GS:P M7?ZM_JD:O!G,DBFX%ND/OM:[63 .T!HVK$SU-['_"^H!)59O)5)5_:)]W38* MT*I46F1UL,D@X_GAGSW41K0"<'PB@-0!Y-P 6@?0:J"'S*IA+9AF\ZD4>R1M M:Z-F"Y4W5;09#<_M--YJ:=YR$Z?G"UAJ]'69\BVSMBITA?X6&A32 EF?0**O M^QRD0A<+T(RGZO)TDRMT=[M %^\NT3O$<_3/3I2*Y6LU#;5)U788KNJT/A[2 M(B?2^L+D %'\'I&(D"/AU_[P!:R:I]*74I A>3Y MBA'$P6 ME-KT-7]?@X1\>-&S4YC#J-0[_0%Y[SK,P\@QHW@N,>+)PTO4V\Z=]J MIHUY/#>BH#22IHHNF$(,%2!7IM_+8T;Z1[N 5* MW(._V"$'D[=PN$.5=EGL((7]E#(64Y^0(PB.^S#6H08GK[O[:[WV]I_$471\ M_V,'(>RGT$LGV*_:N8<N)X1/K@$7$\(GX> MO=1BORH=1'Z+':=(!U$BDOB$'%#(J ]C'7?(^'4Y4.L]X< D24YQP &)='S7 M& ?/X@!U:*%1'R<2QQV*WV*1=JB2 ?4N4NHX13N(4EOXXH)U";=BZ-+ W-N;(O>6Y0BELC% T&!F^R,,ER*&B15'=(RR%UB*K MBCM@:Y"V@7F_$6:_U15[-=%<14/[<;L# B M#0 &0 'AL+W=OV ?8DE MF7Q(ZF%(>K(3\JO: FBRS])<3;VMUL6U[ZO5%C*F+D4!.;Y9"YDQC5NY\54A M@256*4O], B&?L9X[LTF]NQ>SB:BU"G/X5X25689D\]S2,5NZE'O 3]J;B7N/,;E(1GD"LNTNL%'1D%*_&9PTX=K8D)92G$ M5[/YD$R]P'@$*:RT@6#X>((;2%.#A'[\6X-ZC4VC>+P^H+^WP6,P2Z;@1J1? M>**W4V_LD036K$SU@]C] 75 X.W$JFROV17R0XBCZQ*I456*Z,'&<^K)]O7 M%W&D$(YZ%,):(7RI0'L4HEHA>JDPZ%&(:X78WDP5BKV'!=-L-I%B1Z211C2S ML)=IM3%\GAO>'[7$MQSU].P6\-(4>;T S7BJWI!7A.?DKZTH% 80]@1.Y$KK>*O,L32$[U?72N\3 \>#@/G8!W3%Z2B%Z0, C#3X\+ M\OK5FX^%29H.YVY^'(O66!TH"S?* E;?03D)-&JHB"QLU$N%4@ 7Q%)R01:@ M5I+;0,G?MRA+/FC(U#\.2W%C*;:6XAY+[WG.\A60U%@B*6=+GG+]W'43%=#0 M ID:\C0+A\.)_]1A?=!8'SBM?V82+:8'\[#'&H9/3#>BMD+JWS7([/1E9QX. MSER+:1 TOE7Y<"Y$KXZ$3@(8-@$,G0%\L<4$$L*>0&)Q) E7*U'FFDBF@6 Q M)EB7<)AT=A@WGI8E.&Z0'O4^Z@2ZPUS) MRLR%%;98X2^NWK1M%#1R^GW;)'=7L>F\43=@5.6IR[FVMU!W<_FSS)8@6ZI5 ME: YCH#?2&_CGM>HQP6"]B1>VVBHN]/&PO=V]R:W-H965T?6D:'QN_3I52$ML#[> M>;]QN9M<9E3#2/(?;('9P.MY9 %+NN%X)[>?H"1^4:C MS$NP89 S47SIH>R#0J^1%'&5/7ULNVYM=T$8Q"Z>)R0=+Y[JE5?7(2XN,"O8M,D6*D-M$S%&Z88**.:.<3*1F M[C;[^>D9[=4XXV#P&G\U)?D7'DZO6H-6X9OZZ/_X>B-86@F6'G5^*\6JC:!R M(@^?H*;\T_?E"](@BO:JW&B6!IWF,O0^,E2=#=8]QH MEL;[C/W:-6^?6'-9KIC0ALK2 (/SU)QO53Q;Q03EVMW\,XGF'7'#S+STH*R! MV5]*B;N)?4RJ_P[#/U!+ P04 " #)@IM4;#:5J*L# "F"P &0 'AL M+W=O0$J0%IA MT_-(K8;6O7PVQ!!K3LQLIW3_?M=.&BAQTGX 8L?GGG/O;8_O["CD;Y53JM%S MP4LU]W*M#[>^K[8Y+8BZ$0=:PIN=D 71L)1[7QTD)9D%%=S'09#Z!6&EMYC9 MO;5Y%WHO&]_8/M=FPU_,#F1/'ZG^<5A+6/EM ME(P5M%1,E$C2W=S[%-ZNPL0 [(F?C![5V3,RJ6R$^&T6_V=S+S"***=;;4(0 M^'FB2\JYB00Z_C1!O9;3 ,^?7Z)_L"BC.U)Q_4T< M_Z--0E;@5G!EO]&Q.1MX:%LI+8H&# H*5M:_Y+DIQ!D XK@!N '@2T#< X@: M0/1>0-P 8EN9.A5;AQ719#&3XHBD.0W1S(,MID5#^JPT?7_4$MXRP.G%/86B M*31"#T17DFD&"[%#=AO=,[)AO-Z\6E%-&%?780>1*ESA3Z7&XWU(I,T&OV1SAP<#/A!Y@Z+P M(\(!Q@X]R_?#0P=\-0Q?T6T?_%4V4=N;R,:+>N65++8\SF:1%. MHLEDYC\YY"6MO.0M>9&+K$8E9V08XSARDZ4M6?H66>PB2SMDX70<)6ZR<4LV M?HLL<9&-NV23-.HIXZ0EF[Q%EKK()EVR)(U3-]FT)9L.DGW/*5Q .TVEBW+: MH4P2/([=E&%P' J6D;M)&5]3Q3CQ:<:' @+6H#''2]\&1[ MX;#O+8G*T8&P# $5(H7IDP)BXX/ !M>:<<("&"MI99E2PK E01789,>+G46- M.T5-H_"BI,NP:YQ)E/1867@RSG#8.;]>:)5F_AF)W:B"!5&*0KIB S=Z6:<+ M5T!.RCVU]7A?>DE'>#SMIM<]E<81ODC//QM@"BKW=A!4R/[[U+=_N]L.FY_L MB'6Q?Q?>+NN1\12FGF#A"MNS4D%N.P@9W(Q!F*R'PGJAQ<&.21NA8>BRCSD, MTE2: _!^)X1^61B"=C1?_ -02P,$% @ R8*;5&3]BIH" P < D !D M !X;"]W;W)K&ULM59M;]HP$/XK5M1)K;21%PJ4 M"I *W;1)145%W3Z;Y"!6'3NUG=)*^_$[.Q"8"JZV=5\@?KGGN7O.OO-@+=6# MS@$,>2ZXT,,@-Z:\#$.=YE!0W9(E"%Q92E50@T.U"G6I@&;.J.!A$D7=L*!, M!*.!FYNIT4!6AC,!,T5T5114O8R!R_4PB(/MQ!U;Y<9.A*-!25PUGO?Q(:RD/+!#KYEPR"R'@&'U%@( MBG]/, '.+1+Z\;@!#1I.:[C_O47_XH+'8!94PT3R'RPS^3"X"$@&2UIQ"+%GD'2.&"0;@\3Y71,Y M+Z^IH:.!DFNB[&Y$LQ\N5&>-SC%ALS(W"E<9VIG11!8%,RBST82*C$RD,$RL M0*0,-/E$;DT.RJV,I<@T.;T&0QG79^2$,$&FC',45P]"@\Y8R##=$(]KXN0( M<9M,D2K7Y+/((/O=/L0@FDB2;23CQ LXI:I%VO%'DD1)C;!6<-^[MC;?Y,B#WZGP>]XH[L!8S#'XW^/U_%;?_2MSX2$;C:%=?(B_MO%)@7E"T*1.LJ'S7 M,=XK6K%7JQK4!Y7LH!*O?S-0*6J.TM@;L*@TKFM-UCE+TT0K^G*M7H\[K(2INZ'S6SSG+BJF^AN>_T6P5:R8D(3#DLTC5H]]$G5 M[;T>&%FZEKJ0!FN"^\SQ203*;L#UI91F.[ $S2-K] M02P,$% @ R8*; M5.&:>*GK P /PT !D !X;"]W;W)K&ULK5=; M;]LV%/XK!T*!)4!KB?)-#FP#<9Q@?<@6),OV3$NT140B79**TV(_?H>4(BN. MK+IK_6"1U/D^GCNIZ4ZJ)YTR9N ESX2>>:DQVPO?UW'*7BM2K][3 YOB5_<89C\:L MJ&97,ON')R:=>9$'"5O3(C/W7I)#9U/E=R!LM+(9@Z7-\__BPA+,/Y_ !?- I54P#%_ HN-$? M<1''?Z6RT C&^5[@EF<9YI.>^@9UMQKX<:7GHM0S/*)G'VZE,*F&:Y&PI 6_ M[,:3*.A@\-%KM>O"5]4X&P00->V[&\[U4% UKF3?*#6OEAIW*76*1 M?4IX5KA:TRPN%#<0IK)7.(9;XM#'6]6*Z!426XV&C88EFZZ@*: MRT(8.,,B*\OMO,W.4IEAPX+@P,92@@1-D1YI-W)4&SGJCH#M,2W!_5[RC&O^ M\:].GJBFCCI5_Z/(5^AC]'G5Q'"$Y[,VV-DP C8P.<9$.PMI85*I^#>,FI&P MPJ#$V$\53@ML.0IH);?/1=BV:5K&*GH?"1+T^F_CM3Q)ZB9Z%_"_:$6_%#-?ZF\+*&,>=QJ5$BLXRJ1AFW%FU%.V[VG7$O/,R$%K$P[(V/ M^3+GPJDW[GW+7WA>9'#O_!_>PC9'Q-D\*N["-FW M>=+=YW\P(1>DM0^'!_[T&_>^G*F-NZ%K;$IX%)3WF'JU_@JX='??@_4%N;@J M[_)[FO+3 @_Z#1<:,K9&2BQ-5$R5M_5R8N36W2Y7TN!=U0U3_,)AR@K@^[64 MYG5B-ZB_F>;_ 5!+ P04 " #)@IM4$'RGET0# !_"0 &0 'AL+W=O M2H?S[KF3C$!!,#KW8>NRNOF]WM:OQ5JH7G0,8\K?@0D^" MW)CR-@QUFD-!]8TL0>#.2JJ"&IRJ=:A+!31S2@4/HTZG'Q:4B6 Z=FM/:CJ6 ME>%,P),BNBH*JG8SX'([";K!?N&9K7-C%\+IN*1K6(#Y53XIG(6ME8P5(#23 M@BA838*[[NU\9.6=P&\&6WTP)I;)4LH7._F>38*.!00<4F,M4/QM8 Z<6T,( MX[6Q&;1'6L7#\=[Z5\<=N2RIAKGD?UAF\DDP#$@&*UIQ\RRWWZ#ADUA[J>3: M?T$)*VTD46CC @*)NH__=OXX4 ![?@5HD8A.E;HG5&(&X78$:V1.5KW MU-#I6,DM458:K=F!\XW31C9,V"@NC,)=AGIFNC R??L?<,J10IXXRZK$6'FAR(:-W;.!'OES;H02;6F F]TM5&C+K[U06 M966L+&8P2PDJDHSQRN V4"5P1Y,259W>!1:]ED7/L>B=83&718'H3\%>$<"S M$2&>QF3FBW]M.7&6;4W93.-DE,3C<',8%8]4/TJ25NH=[*2%G5R$_;!:8;6P M\"KM/.LN-3J);D!AC;*.]//R$4E.(':C8QJG,G'7SZ'?>QLF$(;OWCC7/O#!'YY@ZX^.X)^*#",_^E&+?O3?DJLI,#[L(T_B=(?# M(_@^J=YH=,0@/.AE!:BU:_$:H57"U%V@76U?$7>N>1ZMS_!U43\&WLS43Q.L M\6N&><9AA28[-P/$I.IV7T^,+%W'7$J#_=<- M)%)545#Y;0ZYV$\=[+QN/+-MINV&.YN4= LKT)_+)VE6;L>2L@*X8H(C"9NI M20:$M!S6,'"\ASRV1T_->2 M.IU/"SQ^?V7_HSZ\.EL*%5KI_%_B]H#Q1:OD3DJOY% M^\8V"!V45$J+H@4;!07CS9.^M($X I#X"H"T '(.P%< ?@OPWPH(6D!01Z8Y M2AV')=5T-I%BCZ2U-FSVI0YFC3;'9]SF?:6E^Y<[)(.$CE3?(QQ\1\0CYO%JB]^\^J.8(/>H6;R?#+5D/RW*890G)_["< MG-3O$N/7M/[;$S/ &G2L0I-BPWD!$%X' H8^#X$Q7=*06Z5UA\>8U\ M+PZP?ZIM&5_DEA!OC''0+V_.?+9P6>1S>*"8AQF>9[[$+HS B7G]T,3EH([]4 M/"W\M"RB$8G/!?;8>>9RQE<$'MHJ]M]\ >[M]"%/+\ #3\V_KOPVE*E#M\7! M[[P!A\Z)?[IUMLB3 O/(R O/ WQIA[T !U>:)SYT3_QK[;.%GU1V%%ST]AXS MTV8OY+E'HT\!&ULC911:]LP$,>_BC!]:*%$CI.THSB&I.G8'@JEH=NS8E]B45ER MI'.^9T;"E%YZ/3_2OH7:J M92,8U/._)RXZU';$ MXO$M2^(D>5NOV/75S9\43EX'P\E@. G8Z;\-@S?LV"^V0"4TROP"?C+@)P$_ M^<_S8TX$YO6CYZ5A3#T)!34S(!FZI%_>-M#23FZH6^N-OI]LQ[P+37ZU# M-HM3?CCWP<^^N[]"S\+NI'9,P99$\>A^%C';M647H*E#*VP,4F.%84DW&:Q/ MH/6M,7@*?'<-_X;L-U!+ P04 " #)@IM4!(S2@" # !H$@ #0 'AL M+W-T>6QEDWIL#=OJ8CTHT_DL#1353*1N3Q_/W/I3+7[P)W/_MP=M9YO+C>MY]7 MP 4)O:3](T@O.SBOQ3#J^#CJ@]PH^=51Y >H,>+!+G%+M.,8UB4;#S,EV\I% MQ!DL,\U9\$3%B$RHX%/-P2NC.1=K9^Z!8::$TH&Q+6-#=<%2/CNXZV;0335/ MSJ7256P7P?V=ULOW@,T,!'(A&H$]X@SC84&-85K>V$FUN#*^@()Z_+ NK,*Y MINMNKT]:A^IF@TR53IENPG3)QC0>"I:!',WG"[@;580 &J-R.T@YG2M)*PT; MCWI@:6=,B'MXU'YD.]RK;*MF':B8;(964#UT-&X"_-MLCGN;]G6\0<&?E/FR MM-N1U1R:C-UIEO%5-5]EC0",O8NSTZ(0Z\^"SV7.W.:/#C@>THU?L%":/]MH MT"HS:V":!$],&S[;MOS2M'A@*[-IIU6&:^Z=H.:_F^G+*-+81X:<$3:\2U+ M^3)/FE5WD(AZ53O^!MOKQLT[EHW%92FNOP( MYN,P/P(8%@=3@/DX+RS._[2? ;H?AV':!EYD@/H,4!_GY4,FU0>+X_=)[.7? M:9)$41QC&9U,O HF6-[B&+Y^-DP;>&!Q(-*?Y1JO-MXAA_L J^FA#L%VBG2>*O-A8'/+ J8+T#\?UQH*?\/E$$5<6T84\PCB0)AD O^GLT MCI'LQ/#QUP=[2J(H2?P(8'X%480A\#3B"*8 -&!(%%7GX-YY%&[.J;#];6G\ M&U!+ P04 " #)@IM4EXJ[', 3 @ "P %]R96QS+RYR96QSG9*Y M;L,P#$!_Q=">, ?0(8@S9?$6!/D!5J(/V!(%BD6=OZ_:I7&0"QEY/3P2W!YI M0.TXI+:+J1C]$%)I6M6X 4BV)8]ISI%"KM0L'C6'TD!$VV-#L%HL/D N&6:W MO606IW.D5XA-/E_G;@2=&A(E@6FD7)TZ(=I7\=Q_:0T^FO8R*T>EOH^7%H5 J.W&,EC'%B MM/XU@LD/['X 4$L#!!0 ( ,F"FU2*5A48(@0 "$@ / >&PO=V]R M:V)O;VLN>&ULQ9E;<]HX%(#_BL8OVWW(@B])VTSI# 6G88;@3,SDM2-L 9K8 M$I7DT.37[[%9MW)QS^R+XBWIC#]6BD MLSTKJ?Y''IB .UNI2FJ@J'8C?5",YGK/F"F+43 >7XU*RH7W^5/;U[T:V05I M6&:X%%!95SQR=M2_[M=%\LPUW_""FY>)UWPNF$=*+GC)7UD^\<8>T7MYO)6* MOTIA:)%F2A;%Q/-/-QZ9,CP[JTYKR#7=Z*;&T,T#!9")=S6&#K=<:=.T:/JG MP/C,H/&I5!EYPPO#U)P:]E7)ZL#%KNX&GF)D/48S#NWU-(C7ZO\,H]QN><;F M,JM*)LQI'!4K:D"A]_R@/2)HR29>VX10D9-8&!@DLA"GKJ!M_:3PTXO\]-0& M<*TQ5-<<;JA%WH"[@YPEJS19+N;3=3PG7Z;+Z6H6D_0VCM>I!1@@@,%@@.3= M/;4@0P0R?$/(= V7NW@%@,D-2>[C!PLR0B"CP2#3=3*S("\1R,L!(;\%%N05 M GDU&.1LFMY:D.\1R/=N(;]4F@NF=9-^$K6C@K_^GG@^('@?W.*E55E2]4+D MEJ1\)SA\C4*NG&:9K"!76I ?$, M=6@P9_BNI2'+DIOFG6_^SSI28=;'1,:[D)@S?,?22(W,GO:RR)G2?Y$80L*\ MV&R8*GS'KDC9KIFI_F%ZBFG"=^Z)C6;?JYHNAF1L;"[,#+YC-:#^ZDQ4 DP- M@6,UH ;K8F**"!PKX@\&(^_6=4ZV8SA UR)#6J,[FI@U@C>V1CN,?]N F#Z" M-]%'+Q;FD<"Q1_I2="\DYI' M4?.29T[!GP3$[ 8Z9)W1L'ARS$^"8 M?$+'\CF?_?1%#^:=T+%WS@C;"#J1VIB8=T+'WNG!7$D#\S8CR8U4]JXVYIW( ML7?:R63/OQQAHHD^HJ11D;R@ M:5--EO;+&&'&B5P?L6![/.3"QD3/6!P;IW<)<0$),JO3Y;.-B1DG&F*E ^%= ME1M(0[:_(\PXT1!KG;XXQWP3.5_L='>H^@DQWT2-;T;MD73.MERP? 6]:ZC/ M:)'=*U)?3MOFT66]\[6MBF(&=8E82IJW)]SMZ?SG?P%02P,$% @ R8*; M5)(LH):X 0 YQP !H !X;"]?[0YI6ZYS;MQ#2?!WW=>HW;3R<[RR;;E_G\[); MA;:>;^M5##H8C$)W/Z-ZG]S/[,U.;?S/Q&:YW,SC1S/_WL=#_F-P^&FZ;5K' MF*O>K.Y6,4^K<-S=ME.X7*1_GESU/A?3JOM<2!5*!RD$:?D@@R K'^00Y.6# MAA T+!\T@J!1^: 7"'HI'_0*0:_E@\80-"X?) .4<4"0]( U@=:"7 N!UX)@ M"X'8@F0+@=F": N!VH)L"X';@G +@=R"= N!W8)X"X'>BGHK@=Z*>BN!WOKP ML4V@MZ+>2J"WHMY*H+>BWDJ@MZ+>2J"WHMY*H+>BWDJ@MZ+>2J"WH=Y&H+>A MWD:@MZ'>1J"W/1R6$.AMJ+<1Z&VHMQ'H;:BW$>AMJ+<1Z&VHMQ'H;:BW$>CM MJ+<3Z.VHMQ/H[:BW$^CMJ+<3Z.T/A]T$>COJ[01Z.^KM!'H[ZNT$>COJ[<_4 M.^73+J9;SW6-[W\FU?G\;+R]_K*\;J*$PPO. ?YKOO\"4$L#!!0 ( ,F" MFU2,3^J/N@$ .X< 3 6T-O;G1E;G1?5'EP97-=+GAM;,W9R6[",!0% MT%]!V2)B/)0. C9MMRV+_H";/$A$$ENVH?#W=<(@M:*HB$J]FT2)[7=?;.EL M,G[;6O*]35TU?I(4(=@'QGQ64*U]:BPU<61N7*U#?'0+9G6VU MB8C@5:'WO(FO?6F:2>*H\DGO<3>QS9HDVMJJS'2(XVS=Y-]2 M!ON$-*[LYOBBM+X?)R3L9$([\G/ ?MWKFIPK<^K-M LONHZSV*9B/FPK\NGY M$B=Z-/-YF5%NLE4=EZ3>.M*Y+XA"7:6[HOWSR2'N,.VN_.K\KLRYP#ASYHSU M\<0<71YW.))V]<#&0N1">?X3CXFQ]-7?1^UIYY3_,CMN[X=QR^X\/.MNU^_Q MUS,^UK^P#P'2AP3I0X'T<0/2QPBDCUN0/NY ^K@'Z8,/41I!$96CD,I13.4H MJ'(453D*JQS%58X"*T>15:#(*E!D%2BR"A19!8JL D56@2*K0)%5H,@J4&25 M*+)*%%DEBJP215:)(JM$D56BR"I19)4HLDH4616*K I%5H4BJT*15:'(JE!D M52BR*A19U7_*^F[,\J__P+7WM-9E<\AGW6_.Z2=02P$"% ,4 " #)@IM4 M!T%-8H$ "Q $ @ $ 9&]C4')O<',O87!P+GAM M;%!+ 0(4 Q0 ( ,F"FU1NT108[@ "L" 1 " :\ M !D;V-0&UL4$L! A0# M% @ R8*;5#_]3T12!0 %18 !@ ("!#0@ 'AL+W=O M M 8 " @94- !X;"]W;W)K%0 M>&PO=V]R:W-H965T&UL4$L! A0#% @ R8*;5+BK3O_* M! )1$ !@ ("!)QD 'AL+W=O 8 " M@2<> !X;"]W;W)K&PO=V]R:W-H965T&UL4$L! A0#% @ R8*;5%B#-79." :"$ !@ M ("!(R< 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0# M% @ R8*;5,8#&KX*$P A#D !D ("!TD0 'AL+W=O M&PO=V]R:W-H965T$0< $(3 9 " @:%A M !X;"]W;W)K&UL4$L! A0#% @ R8*;5)B9 MD2\0!@ $! !D ("!Z6@ 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ R8*;5)QD"6T="0 O!4 !D M ("!C8 'AL+W=O&PO M=V]R:W-H965T&UL4$L! A0#% @ R8*;5'=8] ? P B@8 !D ("! M&)0 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% M @ R8*;5&/S*QCK P < T !D ("!BK( 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ R8*;5 $(4-X(! 8A !D M ("!_\D 'AL+W=O&PO=V]R M:W-H965TP!OK5P0 %T0 M 9 " @;K4 !X;"]W;W)K&UL M4$L! A0#% @ R8*;5,5/FNDK P 20L !D ("!2-D M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ MR8*;5+ZBXITP P 0@P !D ("!$^8 'AL+W=O&PO=V]R:W-H965T8:BB@< #8K 9 " @;WV !X;"]W;W)K&UL4$L! A0#% @ R8*;5(7:98^: P EA( !D M ("!?OX 'AL+W=O4/[<;L# B#0 &0 @(%/ @$ >&PO=V]R:W-H M965T&UL4$L! M A0#% @ R8*;5&PVE:BK P I@L !D ("!3@D! 'AL M+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ R8*; M5!!\IY=$ P ?PD !D ("!BQ0! 'AL+W=O&PO=V]R:W-H965T;B\P$ "<$ 9 " @;4; 0!X;"]W;W)K M&UL4$L! A0#% @ R8*;5 2,TH @ P :!( M T ( !WQT! 'AL+W-T>6QE&PO=V]R:V)O;VLN>&UL4$L! A0#% @ R8*;5)(LH):X 0 YQP !H M ( !8B8! 'AL+U]R96QS+W=O XML 61 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 62 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 63 FilingSummary.xml IDEA: XBRL DOCUMENT 3.22.1 html 153 279 1 false 68 0 false 8 false false R1.htm 00090 - Document - Document and Entity Information Sheet http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation Document and Entity Information Cover 1 false false R2.htm 00100 - Statement - CONSOLIDATED BALANCE SHEETS Sheet http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets CONSOLIDATED BALANCE SHEETS Statements 2 false false R3.htm 00105 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical) Sheet http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical CONSOLIDATED BALANCE SHEETS (Parenthetical) Statements 3 false false R4.htm 00200 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS Sheet http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations CONSOLIDATED STATEMENTS OF OPERATIONS Statements 4 false false R5.htm 00300 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY Sheet http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY Statements 5 false false R6.htm 00305 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical) Sheet http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquityParenthetical CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical) Statements 6 false false R7.htm 00400 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS Sheet http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows CONSOLIDATED STATEMENTS OF CASH FLOWS Statements 7 false false R8.htm 10101 - Disclosure - Business and Organization Sheet http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganization Business and Organization Notes 8 false false R9.htm 10201 - Disclosure - Summary of Significant Accounting Policies and Estimates Sheet http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimates Summary of Significant Accounting Policies and Estimates Notes 9 false false R10.htm 10301 - Disclosure - Revenue from Contracts with Customers Sheet http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomers Revenue from Contracts with Customers Notes 10 false false R11.htm 10401 - Disclosure - Fair Value Measurements Sheet http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurements Fair Value Measurements Notes 11 false false R12.htm 10501 - Disclosure - Acquisitions Sheet http://www.comfortsystemsusa.com/role/DisclosureAcquisitions Acquisitions Notes 12 false false R13.htm 10601 - Disclosure - Goodwill and Identifiable Intangible Assets, Net Sheet http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNet Goodwill and Identifiable Intangible Assets, Net Notes 13 false false R14.htm 10701 - Disclosure - Debt Obligations Sheet http://www.comfortsystemsusa.com/role/DisclosureDebtObligations Debt Obligations Notes 14 false false R15.htm 10801 - Disclosure - Leases Sheet http://www.comfortsystemsusa.com/role/DisclosureLeases Leases Notes 15 false false R16.htm 10901 - Disclosure - Commitments and Contingencies Sheet http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingencies Commitments and Contingencies Notes 16 false false R17.htm 11001 - Disclosure - Stockholders' Equity Sheet http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquity Stockholders' Equity Notes 17 false false R18.htm 11101 - Disclosure - Segment Information Sheet http://www.comfortsystemsusa.com/role/DisclosureSegmentInformation Segment Information Notes 18 false false R19.htm 11201 - Disclosure - Subsequent Event Sheet http://www.comfortsystemsusa.com/role/DisclosureSubsequentEvent Subsequent Event Notes 19 false false R20.htm 20202 - Disclosure - Summary of Significant Accounting Policies and Estimates (Policies) Sheet http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies Summary of Significant Accounting Policies and Estimates (Policies) Policies http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimates 20 false false R21.htm 30303 - Disclosure - Revenue from Contracts with Customers (Tables) Sheet http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersTables Revenue from Contracts with Customers (Tables) Tables http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomers 21 false false R22.htm 30403 - Disclosure - Fair Value Measurements (Tables) Sheet http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsTables Fair Value Measurements (Tables) Tables http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurements 22 false false R23.htm 30603 - Disclosure - Goodwill and Identifiable Intangible Assets, Net (Tables) Sheet http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetTables Goodwill and Identifiable Intangible Assets, Net (Tables) Tables http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNet 23 false false R24.htm 30703 - Disclosure - Debt Obligations (Tables) Sheet http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables Debt Obligations (Tables) Tables http://www.comfortsystemsusa.com/role/DisclosureDebtObligations 24 false false R25.htm 30803 - Disclosure - Leases (Tables) Sheet http://www.comfortsystemsusa.com/role/DisclosureLeasesTables Leases (Tables) Tables http://www.comfortsystemsusa.com/role/DisclosureLeases 25 false false R26.htm 31003 - Disclosure - Stockholders' Equity (Tables) Sheet http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityTables Stockholders' Equity (Tables) Tables http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquity 26 false false R27.htm 31103 - Disclosure - Segment Information (Tables) Sheet http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationTables Segment Information (Tables) Tables http://www.comfortsystemsusa.com/role/DisclosureSegmentInformation 27 false false R28.htm 40201 - Disclosure - Summary of Significant Accounting Policies and Estimates - Income Taxes (Details) Sheet http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails Summary of Significant Accounting Policies and Estimates - Income Taxes (Details) Details 28 false false R29.htm 40301 - Disclosure - Revenue from Contracts with Customers - Disaggregation of Revenue (Details) Sheet http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails Revenue from Contracts with Customers - Disaggregation of Revenue (Details) Details 29 false false R30.htm 40302 - Disclosure - Revenue from Contracts with Customers - Contract Assets and Liabilities (Details) Sheet http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails Revenue from Contracts with Customers - Contract Assets and Liabilities (Details) Details 30 false false R31.htm 40303 - Disclosure - Revenue from Contracts with Customers - Remaining Performance Obligations (Details) Sheet http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails Revenue from Contracts with Customers - Remaining Performance Obligations (Details) Details 31 false false R32.htm 40401 - Disclosure - Fair Value Measurements (Details) Sheet http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails Fair Value Measurements (Details) Details http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsTables 32 false false R33.htm 40501 - Disclosure - Acquisitions (Details) Sheet http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails Acquisitions (Details) Details http://www.comfortsystemsusa.com/role/DisclosureAcquisitions 33 false false R34.htm 40504 - Disclosure - Acquisitions - Other Acquisitions (Details) Sheet http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails Acquisitions - Other Acquisitions (Details) Details 34 false false R35.htm 40601 - Disclosure - Goodwill and Identifiable Intangible Assets, Net - Changes in Carrying Amount of Goodwill (Details) Sheet http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails Goodwill and Identifiable Intangible Assets, Net - Changes in Carrying Amount of Goodwill (Details) Details 35 false false R36.htm 40602 - Disclosure - Goodwill and Identifiable Intangible Assets, Net - Identifiable Intangible Assets, Net (Details) Sheet http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails Goodwill and Identifiable Intangible Assets, Net - Identifiable Intangible Assets, Net (Details) Details 36 false false R37.htm 40603 - Disclosure - Goodwill and Identifiable Intangible Assets, Net - Additional Information (Details) Sheet http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetAdditionalInformationDetails Goodwill and Identifiable Intangible Assets, Net - Additional Information (Details) Details 37 false false R38.htm 40701 - Disclosure - Debt Obligations (Details) Sheet http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails Debt Obligations (Details) Details http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables 38 false false R39.htm 40702 - Disclosure - Debt Obligations - Other (Details) Sheet http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails Debt Obligations - Other (Details) Details 39 false false R40.htm 40703 - Disclosure - Debt Obligations - Notes to Former Owners (Details) Notes http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails Debt Obligations - Notes to Former Owners (Details) Details 40 false false R41.htm 40801 - Disclosure - Leases (Details) Sheet http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails Leases (Details) Details http://www.comfortsystemsusa.com/role/DisclosureLeasesTables 41 false false R42.htm 40802 - Disclosure - Leases - Summary of Operating Lease Assets and Liabilities (Details) Sheet http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails Leases - Summary of Operating Lease Assets and Liabilities (Details) Details 42 false false R43.htm 40803 - Disclosure - Leases - Maturities of Lease Liabilities (Details) Sheet http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails Leases - Maturities of Lease Liabilities (Details) Details 43 false false R44.htm 40901 - Disclosure - Commitments and Contingencies - Other and Bonds (Details) Sheet http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails Commitments and Contingencies - Other and Bonds (Details) Details 44 false false R45.htm 41001 - Disclosure - Stockholders' Equity - Incentive and Other (Details) Sheet http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails Stockholders' Equity - Incentive and Other (Details) Details 45 false false R46.htm 41002 - Disclosure - Stockholders' Equity - Number of Shares (Details) Sheet http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails Stockholders' Equity - Number of Shares (Details) Details 46 false false R47.htm 41101 - Disclosure - Segment Information (Details) Sheet http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails Segment Information (Details) Details http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationTables 47 false false R48.htm 41201 - Disclosure - Subsequent Event (Details) Sheet http://www.comfortsystemsusa.com/role/DisclosureSubsequentEventDetails Subsequent Event (Details) Details http://www.comfortsystemsusa.com/role/DisclosureSubsequentEvent 48 false false All Reports Book All Reports fix-20220331x10q.htm fix-20220331.xsd fix-20220331_cal.xml fix-20220331_def.xml fix-20220331_lab.xml fix-20220331_pre.xml fix-20220331xex31d1.htm fix-20220331xex31d2.htm fix-20220331xex32d1.htm fix-20220331xex32d2.htm http://fasb.org/us-gaap/2021-01-31 http://xbrl.sec.gov/dei/2021q4 true true JSON 66 MetaLinks.json IDEA: XBRL DOCUMENT { "instance": { "fix-20220331x10q.htm": { "axisCustom": 2, "axisStandard": 25, "contextCount": 153, "dts": { "calculationLink": { "local": [ "fix-20220331_cal.xml" ] }, "definitionLink": { "local": [ "fix-20220331_def.xml" ] }, "inline": { "local": [ "fix-20220331x10q.htm" ] }, "labelLink": { "local": [ "fix-20220331_lab.xml" ] }, "presentationLink": { "local": [ "fix-20220331_pre.xml" ] }, "schema": { "local": [ "fix-20220331.xsd" ], "remote": [ "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd", "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd", "http://www.xbrl.org/2003/xl-2003-12-31.xsd", "http://www.xbrl.org/2003/xlink-2003-12-31.xsd", "http://www.xbrl.org/2005/xbrldt-2005.xsd", "http://www.xbrl.org/2006/ref-2006-02-27.xsd", "http://www.xbrl.org/lrr/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://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd", "https://xbrl.fasb.org/srt/2021/elts/srt-roles-2021-01-31.xsd", "https://xbrl.fasb.org/srt/2021/elts/srt-types-2021-01-31.xsd", "https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd", "https://xbrl.fasb.org/us-gaap/2021/elts/us-roles-2021-01-31.xsd", "https://xbrl.fasb.org/us-gaap/2021/elts/us-types-2021-01-31.xsd", "https://xbrl.sec.gov/country/2021/country-2021.xsd", "https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd" ] } }, "elementCount": 483, "entityCount": 1, "hidden": { "http://fasb.org/us-gaap/2021-01-31": 9, "http://xbrl.sec.gov/dei/2021q4": 5, "total": 14 }, "keyCustom": 38, "keyStandard": 241, "memberCustom": 40, "memberStandard": 28, "nsprefix": "fix", "nsuri": "http://www.comfortsystemsusa.com/20220331", "report": { "R1": { "firstAnchor": { "ancestors": [ "p", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentType", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "document", "isDefault": "true", "longName": "00090 - Document - Document and Entity Information", "role": "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation", "shortName": "Document and Entity Information", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "p", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentType", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R10": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10301 - Disclosure - Revenue from Contracts with Customers", "role": "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomers", "shortName": "Revenue from Contracts with Customers", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R11": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10401 - Disclosure - Fair Value Measurements", "role": "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurements", "shortName": "Fair Value Measurements", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R12": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BusinessCombinationDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10501 - Disclosure - Acquisitions", "role": "http://www.comfortsystemsusa.com/role/DisclosureAcquisitions", "shortName": "Acquisitions", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BusinessCombinationDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R13": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10601 - Disclosure - Goodwill and Identifiable Intangible Assets, Net", "role": "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNet", "shortName": "Goodwill and Identifiable Intangible Assets, Net", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R14": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DebtDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10701 - Disclosure - Debt Obligations", "role": "http://www.comfortsystemsusa.com/role/DisclosureDebtObligations", "shortName": "Debt Obligations", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DebtDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R15": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LesseeOperatingLeasesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10801 - Disclosure - Leases", "role": "http://www.comfortsystemsusa.com/role/DisclosureLeases", "shortName": "Leases", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LesseeOperatingLeasesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R16": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10901 - Disclosure - Commitments and Contingencies", "role": "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingencies", "shortName": "Commitments and Contingencies", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R17": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11001 - Disclosure - Stockholders' Equity", "role": "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquity", "shortName": "Stockholders' Equity", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R18": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11101 - Disclosure - Segment Information", "role": "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformation", "shortName": "Segment Information", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R19": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SubsequentEventsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11201 - Disclosure - Subsequent Event", "role": "http://www.comfortsystemsusa.com/role/DisclosureSubsequentEvent", "shortName": "Subsequent Event", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SubsequentEventsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R2": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_3_31_2022_XA_OH1WdmE60w_ibDMNUQQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00100 - Statement - CONSOLIDATED BALANCE SHEETS", "role": "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets", "shortName": "CONSOLIDATED BALANCE SHEETS", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_3_31_2022_XA_OH1WdmE60w_ibDMNUQQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" } }, "R20": { "firstAnchor": { "ancestors": [ "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "20202 - Disclosure - Summary of Significant Accounting Policies and Estimates (Policies)", "role": "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies", "shortName": "Summary of Significant Accounting Policies and Estimates (Policies)", "subGroupType": "policies", "uniqueAnchor": { "ancestors": [ "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R21": { "firstAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30303 - Disclosure - Revenue from Contracts with Customers (Tables)", "role": "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersTables", "shortName": "Revenue from Contracts with Customers (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R22": { "firstAnchor": { "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30403 - Disclosure - Fair Value Measurements (Tables)", "role": "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsTables", "shortName": "Fair Value Measurements (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R23": { "firstAnchor": { "ancestors": [ "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfGoodwillTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30603 - Disclosure - Goodwill and Identifiable Intangible Assets, Net (Tables)", "role": "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetTables", "shortName": "Goodwill and Identifiable Intangible Assets, Net (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfGoodwillTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R24": { "firstAnchor": { "ancestors": [ "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfDebtTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30703 - Disclosure - Debt Obligations (Tables)", "role": "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables", "shortName": "Debt Obligations (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfDebtTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R25": { "firstAnchor": { "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "fix:ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30803 - Disclosure - Leases (Tables)", "role": "http://www.comfortsystemsusa.com/role/DisclosureLeasesTables", "shortName": "Leases (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "fix:ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R26": { "firstAnchor": { "ancestors": [ "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "31003 - Disclosure - Stockholders' Equity (Tables)", "role": "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityTables", "shortName": "Stockholders' Equity (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R27": { "firstAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "31103 - Disclosure - Segment Information (Tables)", "role": "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationTables", "shortName": "Segment Information (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R28": { "firstAnchor": { "ancestors": [ "p", "us-gaap:IncomeTaxPolicyTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40201 - Disclosure - Summary of Significant Accounting Policies and Estimates - Income Taxes (Details)", "role": "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails", "shortName": "Summary of Significant Accounting Policies and Estimates - Income Taxes (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:IncomeTaxPolicyTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" } }, "R29": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:Revenues", "reportCount": 1, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40301 - Disclosure - Revenue from Contracts with Customers - Disaggregation of Revenue (Details)", "role": "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails", "shortName": "Revenue from Contracts with Customers - Disaggregation of Revenue (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "ix:continuation", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": "3", "lang": null, "name": "fix:PercentageOfRevenueFromContractWithCustomer", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_pure_vUVkqTU0U0-GnuNzNURTyw", "xsiNil": "false" } }, "R3": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_3_31_2022_XA_OH1WdmE60w_ibDMNUQQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00105 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)", "role": "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical", "shortName": "CONSOLIDATED BALANCE SHEETS (Parenthetical)", "subGroupType": "parenthetical", "uniqueAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_3_31_2022_XA_OH1WdmE60w_ibDMNUQQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" } }, "R30": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40302 - Disclosure - Revenue from Contracts with Customers - Contract Assets and Liabilities (Details)", "role": "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails", "shortName": "Revenue from Contracts with Customers - Contract Assets and Liabilities (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" } }, "R31": { "firstAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "fix:RenewableServiceMaintenanceAgreementsTerm", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40303 - Disclosure - Revenue from Contracts with Customers - Remaining Performance Obligations (Details)", "role": "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails", "shortName": "Revenue from Contracts with Customers - Remaining Performance Obligations (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "fix:RenewableServiceMaintenanceAgreementsTerm", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R32": { "firstAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_3_31_2022_XA_OH1WdmE60w_ibDMNUQQ", "decimals": "INF", "first": true, "lang": null, "name": "fix:LifeInsuranceContractsNumberOfEmployeesCovered", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_employee_SpSoJM5xh0iPg94ArjZEMQ", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40401 - Disclosure - Fair Value Measurements (Details)", "role": "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails", "shortName": "Fair Value Measurements (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_3_31_2022_XA_OH1WdmE60w_ibDMNUQQ", "decimals": "INF", "first": true, "lang": null, "name": "fix:LifeInsuranceContractsNumberOfEmployeesCovered", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_employee_SpSoJM5xh0iPg94ArjZEMQ", "xsiNil": "false" } }, "R33": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_3_31_2022_XA_OH1WdmE60w_ibDMNUQQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:Goodwill", "reportCount": 1, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40501 - Disclosure - Acquisitions (Details)", "role": "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails", "shortName": "Acquisitions (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_8_1_2021_To_8_1_2021_us-gaap_BusinessAcquisitionAxis_fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember_sY9n0SsNOUO0Ys0r60uSYA", "decimals": "-5", "lang": null, "name": "us-gaap:PaymentsToAcquireBusinessesGross", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" } }, "R34": { "firstAnchor": { "ancestors": [ "p", "us-gaap:BusinessCombinationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_12_31_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MepHoldingCo.IncMember_LknhBXg3fk6jiE5cr49D8w", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:BusinessCombinationConsiderationTransferred1", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40504 - Disclosure - Acquisitions - Other Acquisitions (Details)", "role": "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails", "shortName": "Acquisitions - Other Acquisitions (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:BusinessCombinationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_12_31_2021_To_12_31_2021_us-gaap_BusinessAcquisitionAxis_fix_MepHoldingCo.IncMember_LknhBXg3fk6jiE5cr49D8w", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:BusinessCombinationConsiderationTransferred1", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" } }, "R35": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_12_31_2021_-0N0WZhDt0KnmGnrGXksxw", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:Goodwill", "reportCount": 1, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40601 - Disclosure - Goodwill and Identifiable Intangible Assets, Net - Changes in Carrying Amount of Goodwill (Details)", "role": "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails", "shortName": "Goodwill and Identifiable Intangible Assets, Net - Changes in Carrying Amount of Goodwill (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfGoodwillTextBlock", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": "-3", "lang": null, "name": "us-gaap:GoodwillAcquiredDuringPeriod", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" } }, "R36": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_3_31_2022_XA_OH1WdmE60w_ibDMNUQQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40602 - Disclosure - Goodwill and Identifiable Intangible Assets, Net - Identifiable Intangible Assets, Net (Details)", "role": "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails", "shortName": "Goodwill and Identifiable Intangible Assets, Net - Identifiable Intangible Assets, Net (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_3_31_2022_XA_OH1WdmE60w_ibDMNUQQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" } }, "R37": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_12_31_2021_-0N0WZhDt0KnmGnrGXksxw", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:Goodwill", "reportCount": 1, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40603 - Disclosure - Goodwill and Identifiable Intangible Assets, Net - Additional Information (Details)", "role": "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetAdditionalInformationDetails", "shortName": "Goodwill and Identifiable Intangible Assets, Net - Additional Information (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_10_1_2021_To_12_31_2021_dei_LegalEntityAxis_fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember_4t_6eT3NN0uPYUeJcLPazA", "decimals": "INF", "lang": null, "name": "fix:PercentageOfFairValuesInExcessOfCarryingValue", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_pure_vUVkqTU0U0-GnuNzNURTyw", "xsiNil": "false" } }, "R38": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDebtTableTextBlock", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_12_31_2021_-0N0WZhDt0KnmGnrGXksxw", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FinanceLeaseLiability", "reportCount": 1, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40701 - Disclosure - Debt Obligations (Details)", "role": "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails", "shortName": "Debt Obligations (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDebtTableTextBlock", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_3_31_2022_XA_OH1WdmE60w_ibDMNUQQ", "decimals": "-3", "lang": null, "name": "us-gaap:DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" } }, "R39": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:RepaymentsOfSeniorDebt", "reportCount": 1, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40702 - Disclosure - Debt Obligations - Other (Details)", "role": "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails", "shortName": "Debt Obligations - Other (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_3_31_2022_us-gaap_DebtInstrumentAxis_us-gaap_RevolvingCreditFacilityMember_UP11o3RP_ESfaqd59N4-YA", "decimals": "-5", "lang": null, "name": "us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" } }, "R4": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:Revenues", "reportCount": 1, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00200 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS", "role": "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations", "shortName": "CONSOLIDATED STATEMENTS OF OPERATIONS", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": "-3", "lang": null, "name": "us-gaap:CostOfRevenue", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" } }, "R40": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDebtTableTextBlock", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_3_31_2022_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_t8fbERzb2k2Yl1Ge3UC1SA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:NotesAndLoansPayable", "reportCount": 1, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40703 - Disclosure - Debt Obligations - Notes to Former Owners (Details)", "role": "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails", "shortName": "Debt Obligations - Notes to Former Owners (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_3_31_2022_fix_DebtMaturityDateAxis_fix_MaturityYearOneMember_us-gaap_DebtInstrumentAxis_fix_SubordinateDebtAndPromissoryNoteMember_B9TfakDlGEi2V551VoEuaA", "decimals": "-3", "lang": null, "name": "us-gaap:NotesAndLoansPayable", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" } }, "R41": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDebtTableTextBlock", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_12_31_2021_-0N0WZhDt0KnmGnrGXksxw", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FinanceLeaseLiability", "reportCount": 1, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40801 - Disclosure - Leases (Details)", "role": "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails", "shortName": "Leases (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "ix:continuation", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": "-5", "lang": null, "name": "fix:VariableLeaseAndShortTermLeaseCost", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" } }, "R42": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_3_31_2022_XA_OH1WdmE60w_ibDMNUQQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:OperatingLeaseRightOfUseAsset", "reportCount": 1, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40802 - Disclosure - Leases - Summary of Operating Lease Assets and Liabilities (Details)", "role": "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails", "shortName": "Leases - Summary of Operating Lease Assets and Liabilities (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "fix:ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_3_31_2022_XA_OH1WdmE60w_ibDMNUQQ", "decimals": "-3", "lang": null, "name": "us-gaap:OperatingLeaseLiabilityCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" } }, "R43": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_3_31_2022_XA_OH1WdmE60w_ibDMNUQQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40803 - Disclosure - Leases - Maturities of Lease Liabilities (Details)", "role": "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails", "shortName": "Leases - Maturities of Lease Liabilities (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_3_31_2022_XA_OH1WdmE60w_ibDMNUQQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" } }, "R44": { "firstAnchor": { "ancestors": [ "p", "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_us-gaap_LitigationStatusAxis_us-gaap_PendingLitigationMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_PerformanceGuaranteeMember_IQrQpdS4IE6w95oB42eVsQ", "decimals": "INF", "first": true, "lang": null, "name": "fix:LossContingencyLetterOfIntentUnderDisputeNumber", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_item_jahmatJT5UC3ru7w8vnijg", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40901 - Disclosure - Commitments and Contingencies - Other and Bonds (Details)", "role": "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails", "shortName": "Commitments and Contingencies - Other and Bonds (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_us-gaap_LitigationStatusAxis_us-gaap_PendingLitigationMember_us-gaap_LossContingenciesByNatureOfContingencyAxis_us-gaap_PerformanceGuaranteeMember_IQrQpdS4IE6w95oB42eVsQ", "decimals": "INF", "first": true, "lang": null, "name": "fix:LossContingencyLetterOfIntentUnderDisputeNumber", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_item_jahmatJT5UC3ru7w8vnijg", "xsiNil": "false" } }, "R45": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:PaymentsForRepurchaseOfCommonStock", "reportCount": 1, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41001 - Disclosure - Stockholders' Equity - Incentive and Other (Details)", "role": "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails", "shortName": "Stockholders' Equity - Incentive and Other (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": "-5", "lang": null, "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_shares_hHQt_yV-s06l08ag0f09pQ", "xsiNil": "false" } }, "R46": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock", "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_3_31_2022_XA_OH1WdmE60w_ibDMNUQQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CommonStockSharesOutstanding", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_shares_hHQt_yV-s06l08ag0f09pQ", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41002 - Disclosure - Stockholders' Equity - Number of Shares (Details)", "role": "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails", "shortName": "Stockholders' Equity - Number of Shares (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock", "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_3_31_2022_XA_OH1WdmE60w_ibDMNUQQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CommonStockSharesOutstanding", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_shares_hHQt_yV-s06l08ag0f09pQ", "xsiNil": "false" } }, "R47": { "firstAnchor": { "ancestors": [ "p", "us-gaap:SegmentReportingDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:NumberOfReportableSegments", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_segment_9kX_ClYLS02G2hpJRqaxsA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41101 - Disclosure - Segment Information (Details)", "role": "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails", "shortName": "Segment Information (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:SegmentReportingDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:NumberOfReportableSegments", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_segment_9kX_ClYLS02G2hpJRqaxsA", "xsiNil": "false" } }, "R48": { "firstAnchor": { "ancestors": [ "p", "us-gaap:SubsequentEventsTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_4_1_2022_To_4_1_2022_us-gaap_BusinessAcquisitionAxis_fix_AtlanticElectricLlcMember_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember_nJVLlUp2EkCD-DktcliYvQ", "decimals": "-6", "first": true, "lang": null, "name": "fix:BusinessAcquisitionRevenueEstimatedForAcquiredEntity", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41201 - Disclosure - Subsequent Event (Details)", "role": "http://www.comfortsystemsusa.com/role/DisclosureSubsequentEventDetails", "shortName": "Subsequent Event (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:SubsequentEventsTextBlock", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_4_1_2022_To_4_1_2022_us-gaap_BusinessAcquisitionAxis_fix_AtlanticElectricLlcMember_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember_nJVLlUp2EkCD-DktcliYvQ", "decimals": "-6", "first": true, "lang": null, "name": "fix:BusinessAcquisitionRevenueEstimatedForAcquiredEntity", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" } }, "R5": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_aVVv7uZHZk-y6v0L2w1bRw", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:StockholdersEquity", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00300 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY", "role": "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity", "shortName": "CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_aVVv7uZHZk-y6v0L2w1bRw", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:StockholdersEquity", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" } }, "R6": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": "2", "first": true, "lang": null, "name": "us-gaap:CommonStockDividendsPerShareDeclared", "reportCount": 1, "unique": true, "unitRef": "Unit_Divide_USD_shares_q1IcfO-nKkWBuUXGqHwSgQ", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00305 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical)", "role": "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquityParenthetical", "shortName": "CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical)", "subGroupType": "parenthetical", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": "2", "first": true, "lang": null, "name": "us-gaap:CommonStockDividendsPerShareDeclared", "reportCount": 1, "unique": true, "unitRef": "Unit_Divide_USD_shares_q1IcfO-nKkWBuUXGqHwSgQ", "xsiNil": "false" } }, "R7": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ProfitLoss", "reportCount": 1, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00400 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS", "role": "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows", "shortName": "CONSOLIDATED STATEMENTS OF CASH FLOWS", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": "-3", "lang": null, "name": "us-gaap:AmortizationOfIntangibleAssets", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_TOEswRBUckOHGeeqvDQkig", "xsiNil": "false" } }, "R8": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:NatureOfOperations", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10101 - Disclosure - Business and Organization", "role": "http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganization", "shortName": "Business and Organization", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:NatureOfOperations", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R9": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10201 - Disclosure - Summary of Significant Accounting Policies and Estimates", "role": "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimates", "shortName": "Summary of Significant Accounting Policies and Estimates", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "fix-20220331x10q.htm", "contextRef": "Duration_1_1_2022_To_3_31_2022_T-vhBSJqIkOsueHk9Kzt-A", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } } }, "segmentCount": 68, "tag": { "dei_AmendmentFlag": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.", "label": "Amendment Flag" } } }, "localname": "AmendmentFlag", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_CityAreaCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Area code of city", "label": "City Area Code" } } }, "localname": "CityAreaCode", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_CoverAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Cover page.", "label": "Cover [Abstract]" } } }, "localname": "CoverAbstract", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "xbrltype": "stringItemType" }, "dei_CurrentFiscalYearEndDate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "End date of current fiscal year in the format --MM-DD.", "label": "Current Fiscal Year End Date" } } }, "localname": "CurrentFiscalYearEndDate", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "gMonthDayItemType" }, "dei_DocumentFiscalPeriodFocus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.", "label": "Document Fiscal Period Focus" } } }, "localname": "DocumentFiscalPeriodFocus", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "fiscalPeriodItemType" }, "dei_DocumentFiscalYearFocus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.", "label": "Document Fiscal Year Focus" } } }, "localname": "DocumentFiscalYearFocus", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "gYearItemType" }, "dei_DocumentPeriodEndDate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD.", "label": "Document Period End Date" } } }, "localname": "DocumentPeriodEndDate", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "dateItemType" }, "dei_DocumentQuarterlyReport": { "auth_ref": [ "r545" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true only for a form used as an quarterly report.", "label": "Document Quarterly Report" } } }, "localname": "DocumentQuarterlyReport", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_DocumentTransitionReport": { "auth_ref": [ "r546" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true only for a form used as a transition report.", "label": "Document Transition Report" } } }, "localname": "DocumentTransitionReport", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_DocumentType": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.", "label": "Document Type" } } }, "localname": "DocumentType", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "submissionTypeItemType" }, "dei_EntityAddressAddressLine1": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Address Line 1 such as Attn, Building Name, Street Name", "label": "Entity Address, Address Line One" } } }, "localname": "EntityAddressAddressLine1", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressAddressLine2": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Address Line 2 such as Street or Suite number", "label": "Entity Address, Address Line Two" } } }, "localname": "EntityAddressAddressLine2", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressCityOrTown": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Name of the City or Town", "label": "Entity Address, City or Town" } } }, "localname": "EntityAddressCityOrTown", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressPostalZipCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Code for the postal or zip code", "label": "Entity Address, Postal Zip Code" } } }, "localname": "EntityAddressPostalZipCode", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressStateOrProvince": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Name of the state or province.", "label": "Entity Address, State or Province" } } }, "localname": "EntityAddressStateOrProvince", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "stateOrProvinceItemType" }, "dei_EntityCentralIndexKey": { "auth_ref": [ "r543" ], "lang": { "en-us": { "role": { "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.", "label": "Entity Central Index Key" } } }, "localname": "EntityCentralIndexKey", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "centralIndexKeyItemType" }, "dei_EntityCommonStockSharesOutstanding": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.", "label": "Entity Common Stock, Shares Outstanding" } } }, "localname": "EntityCommonStockSharesOutstanding", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "sharesItemType" }, "dei_EntityCurrentReportingStatus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.", "label": "Entity Current Reporting Status" } } }, "localname": "EntityCurrentReportingStatus", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "yesNoItemType" }, "dei_EntityDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "All the names of the entities being reported upon in a document. Any legal structure used to conduct activities or to hold assets. Some examples of such structures are corporations, partnerships, limited liability companies, grantor trusts, and other trusts. This item does not include business and geographical segments which are included in the geographical or business segments domains.", "label": "Entity [Domain]" } } }, "localname": "EntityDomain", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetAdditionalInformationDetails" ], "xbrltype": "domainItemType" }, "dei_EntityEmergingGrowthCompany": { "auth_ref": [ "r543" ], "lang": { "en-us": { "role": { "documentation": "Indicate if registrant meets the emerging growth company criteria.", "label": "Entity Emerging Growth Company" } } }, "localname": "EntityEmergingGrowthCompany", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_EntityFileNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.", "label": "Entity File Number" } } }, "localname": "EntityFileNumber", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "fileNumberItemType" }, "dei_EntityFilerCategory": { "auth_ref": [ "r543" ], "lang": { "en-us": { "role": { "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.", "label": "Entity Filer Category" } } }, "localname": "EntityFilerCategory", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "filerCategoryItemType" }, "dei_EntityIncorporationStateCountryCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Two-character EDGAR code representing the state or country of incorporation.", "label": "Entity Incorporation, State or Country Code" } } }, "localname": "EntityIncorporationStateCountryCode", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "edgarStateCountryItemType" }, "dei_EntityInteractiveDataCurrent": { "auth_ref": [ "r547" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).", "label": "Entity Interactive Data Current" } } }, "localname": "EntityInteractiveDataCurrent", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "yesNoItemType" }, "dei_EntityRegistrantName": { "auth_ref": [ "r543" ], "lang": { "en-us": { "role": { "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.", "label": "Entity Registrant Name" } } }, "localname": "EntityRegistrantName", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityShellCompany": { "auth_ref": [ "r543" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.", "label": "Entity Shell Company" } } }, "localname": "EntityShellCompany", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_EntitySmallBusiness": { "auth_ref": [ "r543" ], "lang": { "en-us": { "role": { "documentation": "Indicates that the company is a Smaller Reporting Company (SRC).", "label": "Entity Small Business" } } }, "localname": "EntitySmallBusiness", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_EntityTaxIdentificationNumber": { "auth_ref": [ "r543" ], "lang": { "en-us": { "role": { "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.", "label": "Entity Tax Identification Number" } } }, "localname": "EntityTaxIdentificationNumber", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "employerIdItemType" }, "dei_LegalEntityAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The set of legal entities associated with a report.", "label": "Legal Entity [Axis]" } } }, "localname": "LegalEntityAxis", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetAdditionalInformationDetails" ], "xbrltype": "stringItemType" }, "dei_LocalPhoneNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Local phone number for entity.", "label": "Local Phone Number" } } }, "localname": "LocalPhoneNumber", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_Security12bTitle": { "auth_ref": [ "r542" ], "lang": { "en-us": { "role": { "documentation": "Title of a 12(b) registered security.", "label": "Title of 12(b) Security" } } }, "localname": "Security12bTitle", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "securityTitleItemType" }, "dei_SecurityExchangeName": { "auth_ref": [ "r544" ], "lang": { "en-us": { "role": { "documentation": "Name of the Exchange on which a security is registered.", "label": "Security Exchange Name" } } }, "localname": "SecurityExchangeName", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "edgarExchangeCodeItemType" }, "dei_TradingSymbol": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Trading symbol of an instrument as listed on an exchange.", "label": "Trading Symbol" } } }, "localname": "TradingSymbol", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.comfortsystemsusa.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "tradingSymbolItemType" }, "fix_AmendedSeniorRevolvingCreditFacilityMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the amended senior revolving credit facility.", "label": "Amended senior revolving credit facility" } } }, "localname": "AmendedSeniorRevolvingCreditFacilityMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "domainItemType" }, "fix_AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to Amteck Holdco LLC Acquisition and its wholly owned subsidiaries.", "label": "Amteck" } } }, "localname": "AmteckHoldcoLlcAcquisitionAndItsWhollyOwnedSubsidiariesMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails" ], "xbrltype": "domainItemType" }, "fix_AtlanticElectricLlcMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to Atlantic Electric, LLC.", "label": "Atlantic" } } }, "localname": "AtlanticElectricLlcMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSubsequentEventDetails" ], "xbrltype": "domainItemType" }, "fix_BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Fair value, as of the balance sheet date, of potential cash payments under the contingent consideration arrangement.", "label": "Business Acquisition Contingent Consideration Fair Value at Balance Sheet Date", "terseLabel": "Contingent earn-out obligations" } } }, "localname": "BusinessAcquisitionContingentConsiderationFairValueAtBalanceSheetDate", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "fix_BusinessAcquisitionRevenueEstimatedForAcquiredEntity": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Total revenue estimated to be reported for acquired entity.", "label": "Business Acquisition Revenue Estimated For Acquired Entity", "terseLabel": "Expected revenue, acquired company" } } }, "localname": "BusinessAcquisitionRevenueEstimatedForAcquiredEntity", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSubsequentEventDetails" ], "xbrltype": "monetaryItemType" }, "fix_BusinessCombinationConsiderationTransferredContingentEarnOut": { "auth_ref": [], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": { "order": 1.0, "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of contingent earn-out payment under business combination.", "label": "Business Combination Consideration Transferred Contingent Earn Out", "terseLabel": "Estimated fair value of contingent earn-out payments" } } }, "localname": "BusinessCombinationConsiderationTransferredContingentEarnOut", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails", "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails" ], "xbrltype": "monetaryItemType" }, "fix_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment": { "auth_ref": [], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": { "order": 4.0, "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of working capital settlement under business combination.", "label": "Business Combination Consideration Transferred Working Capital Adjustment", "terseLabel": "Working capital adjustment" } } }, "localname": "BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails", "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails" ], "xbrltype": "monetaryItemType" }, "fix_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsIncludingGoodwill": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of intangible assets, including goodwill, acquired at the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Intangible Assets, Including Goodwill", "terseLabel": "Identifiable intangible assets" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsIncludingGoodwill", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails" ], "xbrltype": "monetaryItemType" }, "fix_ChangeInRightOfUseAssets": { "auth_ref": [], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 15.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of change in right-of-use assets.", "label": "Change in Right of Use Assets", "terseLabel": "Change in right-of-use assets" } } }, "localname": "ChangeInRightOfUseAssets", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "fix_ContingentConsiderationObligationsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the information pertaining to the contingent consideration obligations that have been provided in a business combination.", "label": "Contingent earn-out obligations" } } }, "localname": "ContingentConsiderationObligationsMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "fix_ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in contract with customer assets due to change in conditional versus unconditional.", "label": "Contract with Customer, Asset, Increase (Decrease) for Change Due to Conditional Versus Unconditional", "verboseLabel": "Other changes in the period" } } }, "localname": "ContractWithCustomerAssetIncreaseDecreaseForChangeDueToConditionalVersusUnconditional", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "fix_CostsInExcessOfBillingsAllowanceForCreditLosses": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of allowance for credit losses on receivable reflecting the cost incurred on uncompleted contracts in excess of related billings which is expected to be collected within one year or the normal operating cycle, if longer.", "label": "Costs in Excess Of Billings, Allowance For Credit Losses", "terseLabel": "Costs and estimated earnings in excess of billings, allowance for credit losses (in dollars)" } } }, "localname": "CostsInExcessOfBillingsAllowanceForCreditLosses", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "monetaryItemType" }, "fix_CumulativeNumberOfCompaniesAcquired": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The cumulative number of companies acquired by the entity.", "label": "Cumulative Number Of Companies Acquired", "terseLabel": "Cumulative number of companies acquired" } } }, "localname": "CumulativeNumberOfCompaniesAcquired", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "integerItemType" }, "fix_CustomerMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information relating to customer.", "label": "Customer" } } }, "localname": "CustomerMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" ], "xbrltype": "domainItemType" }, "fix_DebtCovenantRatioAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by different ratios applicable to debt covenants.", "label": "Debt Covenant Ratio [Axis]" } } }, "localname": "DebtCovenantRatioAxis", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "stringItemType" }, "fix_DebtCovenantRatioDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Groups of debt covenant ratio ranges.", "label": "Debt Covenant Ratio [Domain]" } } }, "localname": "DebtCovenantRatioDomain", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "domainItemType" }, "fix_DebtCovenantRatioRangeFourMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents activity related to range four of specified debt covenant.", "label": "Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 2.50 or greater" } } }, "localname": "DebtCovenantRatioRangeFourMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "domainItemType" }, "fix_DebtCovenantRatioRangeOneMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents activity related to range one of specified debt covenant.", "label": "Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: Less than 1.00" } } }, "localname": "DebtCovenantRatioRangeOneMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "domainItemType" }, "fix_DebtCovenantRatioRangeThreeMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents activity related to range three of specified debt covenant.", "label": "Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 1.75 to 2.50" } } }, "localname": "DebtCovenantRatioRangeThreeMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "domainItemType" }, "fix_DebtCovenantRatioRangeTwoMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents activity related to range two of specified debt covenant.", "label": "Consolidated Total Indebtedness to Credit Facility Adjusted EBITDA: 1.00 to 1.75" } } }, "localname": "DebtCovenantRatioRangeTwoMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "domainItemType" }, "fix_DebtInstrumentFinancialCovenantsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Debt Instrument Financial Covenants [Abstract]", "terseLabel": "Principal financial covenants" } } }, "localname": "DebtInstrumentFinancialCovenantsAbstract", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "stringItemType" }, "fix_DebtInstrumentInterestRateOptionsNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the number of interest rate options.", "label": "Debt Instrument Interest Rate Options Number", "terseLabel": "Number of interest rate options" } } }, "localname": "DebtInstrumentInterestRateOptionsNumber", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "integerItemType" }, "fix_DebtMaturityDateAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "It represents the information pertaining to debt maturity date.", "label": "Debt Maturity Date [Axis]" } } }, "localname": "DebtMaturityDateAxis", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails" ], "xbrltype": "stringItemType" }, "fix_DebtMaturityDateDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "It represents debt maturity date.", "label": "Debt Maturity Date [Domain]" } } }, "localname": "DebtMaturityDateDomain", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails" ], "xbrltype": "domainItemType" }, "fix_DeferredAcquisitionPayments": { "auth_ref": [], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 10.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Deferred acquisition payments.", "label": "Deferred Acquisition Payments", "negatedLabel": "Deferred acquisition payments" } } }, "localname": "DeferredAcquisitionPayments", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "fix_DerivativeInstrumentNotionalAmount": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Derivative instrument notional amount.", "label": "Derivative Instrument Notional Amount", "terseLabel": "Notional amount" } } }, "localname": "DerivativeInstrumentNotionalAmount", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "fix_DerivativeNetLossOnDerivative": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of net loss recognized on derivative.", "label": "Derivative Net Loss On Derivative", "terseLabel": "Net loss on derivative" } } }, "localname": "DerivativeNetLossOnDerivative", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "fix_EducationMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "This members stands for education.", "label": "Education" } } }, "localname": "EducationMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "fix_EffectOfUsingWeightedAverageCommonSharesOutstanding": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the effect of using weighted average common shares outstanding.", "label": "Effect of Using Weighted Average Common Shares, Outstanding", "terseLabel": "Effect of using weighted average common shares outstanding" } } }, "localname": "EffectOfUsingWeightedAverageCommonSharesOutstanding", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails" ], "xbrltype": "sharesItemType" }, "fix_ElectricalServicesIndustryMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the information pertaining to electrical services industry.", "label": "Electrical Services Industry" } } }, "localname": "ElectricalServicesIndustryMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails", "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails" ], "xbrltype": "domainItemType" }, "fix_ElectricalServicesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "This member stands for the electrical services.", "label": "Electrical Services" } } }, "localname": "ElectricalServicesMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "fix_ExistingBuildingConstructionMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "This member stands for existing building construction.", "label": "Existing Building Construction" } } }, "localname": "ExistingBuildingConstructionMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "fix_FederalIncomeTaxBenefitTaxCreditsResearch": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The amount of R&D tax credit reported as income tax benefit for prior tax years.", "label": "Federal Income Tax Benefit Tax Credits Research", "terseLabel": "R&D tax credits" } } }, "localname": "FederalIncomeTaxBenefitTaxCreditsResearch", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "fix_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour": { "auth_ref": [], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails": { "order": 2.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite Lived Intangible Assets Amortization Expense After Year Four", "terseLabel": "Thereafter" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFour", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" ], "xbrltype": "monetaryItemType" }, "fix_GovernmentCustomerMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Organization that is the governing authority of a community.", "label": "Government" } } }, "localname": "GovernmentCustomerMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "fix_HealthcareSectorCustomerMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Sector of the economy consisting of companies engaged in healthcare-related business activities.", "label": "Healthcare" } } }, "localname": "HealthcareSectorCustomerMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "fix_IncomeTaxExaminationInterestIncomeExpenseNet": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The amount of net estimated interest income or expense recognized in the period arising from income tax examinations.", "label": "Income Tax Examination Interest Income Expense, Net", "terseLabel": "Net interest income on the tax refunds" } } }, "localname": "IncomeTaxExaminationInterestIncomeExpenseNet", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "fix_IndustrialPropertyCustomerMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Building designed to house industrial operations and provide the necessary conditions for the operation of industrial equipment.", "label": "Industrial" } } }, "localname": "IndustrialPropertyCustomerMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "fix_IveyMechanicalCompanyLlcMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to acquisition of Ivey Mechanical Company.", "label": "Ivey" } } }, "localname": "IveyMechanicalCompanyLlcMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails" ], "xbrltype": "domainItemType" }, "fix_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour": { "auth_ref": [], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails": { "order": 3.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payments for operating lease, due after fourth fiscal year following latest fiscal year.", "label": "Lessee Operating Lease Liability Payments Due After Year Four", "terseLabel": "Thereafter" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFour", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "fix_LetterOfCreditFeesPercentage": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the fees for the letter of credit facility, expressed as a percent based on the ratio of consolidated total indebtedness to credit facility adjusted EBITDA, as defined in the credit agreement.", "label": "Letter of Credit Fees Percentage", "terseLabel": "Letter of credit fees (as a percent)" } } }, "localname": "LetterOfCreditFeesPercentage", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "percentItemType" }, "fix_LifeInsuranceContractsFaceAmount": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Represents the face amount of life insurance policies taken by the entity for their employees.", "label": "Life Insurance Contracts Face Amount", "terseLabel": "Combined face value of life insurance policies" } } }, "localname": "LifeInsuranceContractsFaceAmount", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "fix_LifeInsuranceContractsNumberOfEmployeesCovered": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the number of employees covered under life insurance policy contracts.", "label": "Life Insurance Contracts Number of Employees Covered", "terseLabel": "Number of employees covered under life insurance policies" } } }, "localname": "LifeInsuranceContractsNumberOfEmployeesCovered", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "integerItemType" }, "fix_LineOfCreditBorrowingCapacityAccordionOption": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Accordion option on credit facility per terms of the agreement.", "label": "Line of credit borrowing capacity accordion option" } } }, "localname": "LineOfCreditBorrowingCapacityAccordionOption", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "monetaryItemType" }, "fix_LossContingencyLetterOfIntentUnderDisputeNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The total number of letter of intent executed to perform subcontract work under dispute pertaining to a loss contingency during the period.", "label": "Loss Contingency, Letter Of Intent Under Dispute, Number", "terseLabel": "Letter of intent under dispute" } } }, "localname": "LossContingencyLetterOfIntentUnderDisputeNumber", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" ], "xbrltype": "integerItemType" }, "fix_LossContingencySuretyAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Loss Contingency Surety [Abstract]", "terseLabel": "Surety" } } }, "localname": "LossContingencySuretyAbstract", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" ], "xbrltype": "stringItemType" }, "fix_MaturityYearFourMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents maturity year four.", "label": "Maturity Year Four [Member]", "terseLabel": "2025" } } }, "localname": "MaturityYearFourMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails" ], "xbrltype": "domainItemType" }, "fix_MaturityYearOneMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents maturity year one.", "label": "Maturity Year One [Member]", "terseLabel": "2022" } } }, "localname": "MaturityYearOneMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails" ], "xbrltype": "domainItemType" }, "fix_MaturityYearThreeMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents maturity year three.", "label": "Maturity Year Three [Member]", "terseLabel": "2024" } } }, "localname": "MaturityYearThreeMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails" ], "xbrltype": "domainItemType" }, "fix_MaturityYearTwoMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents maturity year two.", "label": "Maturity Year Two [Member]", "terseLabel": "2023" } } }, "localname": "MaturityYearTwoMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails" ], "xbrltype": "domainItemType" }, "fix_MechanicalContractorIndianaMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to acquisition of Indiana mechanical contractor who is temporary staffing company.", "label": "Mechanical Contractor Indiana" } } }, "localname": "MechanicalContractorIndianaMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails" ], "xbrltype": "domainItemType" }, "fix_MechanicalContractorKentuckyMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to acquisition of Kentucky mechanical contractor who indulged in service and control business.", "label": "Mechanical Contractor Kentucky" } } }, "localname": "MechanicalContractorKentuckyMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails" ], "xbrltype": "domainItemType" }, "fix_MechanicalContractorUtahMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to Utah mechanical contractor.", "label": "Mechanical Contractor Utah" } } }, "localname": "MechanicalContractorUtahMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails" ], "xbrltype": "domainItemType" }, "fix_MechanicalServicesIndustryMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the information pertaining to mechanical services industry.", "label": "Mechanical Services Segment" } } }, "localname": "MechanicalServicesIndustryMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails", "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails" ], "xbrltype": "domainItemType" }, "fix_MechanicalServicesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Mechanical Services [Member]", "label": "Mechanical Services" } } }, "localname": "MechanicalServicesMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "fix_MepHoldingCo.IncMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to MEP Holding Co., Inc.", "label": "MEP Holdings" } } }, "localname": "MepHoldingCo.IncMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails" ], "xbrltype": "domainItemType" }, "fix_MultiFamilyAndResidentialMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "This member stands for multi family and residential.", "label": "Multi-Family and Residential" } } }, "localname": "MultiFamilyAndResidentialMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "fix_NewConstructionMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "This member stands for new construction.", "label": "New Construction" } } }, "localname": "NewConstructionMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "fix_NumberOfOptionsToRenew": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the number of options to renew.", "label": "Number of Options to Renew", "terseLabel": "Number of options to renew" } } }, "localname": "NumberOfOptionsToRenew", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails" ], "xbrltype": "integerItemType" }, "fix_OfficeBuildingCustomerMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Building designed primarily for the conduct of business, for example, but not limited to, administration, clerical services, and consultation.", "label": "Office Buildings" } } }, "localname": "OfficeBuildingCustomerMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "fix_PercentageOfBusinessWhichHasRequiredBonds": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the percentage of business which has required bonds.", "label": "Percentage of Business which has Required Bonds", "terseLabel": "Percentage of business which has required bonds" } } }, "localname": "PercentageOfBusinessWhichHasRequiredBonds", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" ], "xbrltype": "percentItemType" }, "fix_PercentageOfFairValuesInExcessOfCarryingValue": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The percentage of fair value in excess of carrying value.", "label": "Percentage of Fair Values in Excess of Carrying Value", "terseLabel": "Fair values in excess of carrying value (as a percent)" } } }, "localname": "PercentageOfFairValuesInExcessOfCarryingValue", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetAdditionalInformationDetails" ], "xbrltype": "percentItemType" }, "fix_PercentageOfRevenueFromContractWithCustomer": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The percentage of revenue from contract with customers.", "label": "Percentage of Revenue from Contract With Customer", "terseLabel": "Percentage of revenue from contract with customer (as a percent)" } } }, "localname": "PercentageOfRevenueFromContractWithCustomer", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" ], "xbrltype": "percentItemType" }, "fix_ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "n/a", "label": "Reconciliation Of Earnings Before Interest Tax Depreciation And Amortization to Net Income [Abstract]", "terseLabel": "Reconciliation of Credit Facility Adjusted EBITDA to net income" } } }, "localname": "ReconciliationOfEarningsBeforeInterestTaxDepreciationAndAmortizationToNetIncomeAbstract", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "stringItemType" }, "fix_RenewableServiceMaintenanceAgreementsTerm": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The term of renewable service maintenance agreements in years.", "label": "Renewable Service Maintenance Agreements Term", "terseLabel": "The term of the renewable service maintenance agreements (in years)" } } }, "localname": "RenewableServiceMaintenanceAgreementsTerm", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" ], "xbrltype": "durationItemType" }, "fix_ResearchAndDevelopmentTaxCreditAnd179DeductionMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "R&D tax credit and tax deduction, 179d.", "label": "R&D Tax Credit and 179D Deduction" } } }, "localname": "ResearchAndDevelopmentTaxCreditAnd179DeductionMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails" ], "xbrltype": "domainItemType" }, "fix_RetailRestaurantsAndEntertainmentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "This member stands for retail, restaurants and entertainment", "label": "Retail, Restaurants and Entertainment" } } }, "localname": "RetailRestaurantsAndEntertainmentMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "fix_ScheduleOfAdditionalMarginsTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the additional margins added to the reference rate to compute the variable rate on the debt instrument.", "label": "Schedule of Additional Margins [Table Text Block]", "terseLabel": "Summary of additional margins" } } }, "localname": "ScheduleOfAdditionalMarginsTableTextBlock", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables" ], "xbrltype": "textBlockItemType" }, "fix_ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of lease assets and liabilities.", "label": "Schedule of Lease Assets and Liabilities [Table Text Block]", "terseLabel": "Schedule of operating lease assets and liabilities" } } }, "localname": "ScheduleOfLeaseAssetsAndLiabilitiesTableTextBlock", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesTables" ], "xbrltype": "textBlockItemType" }, "fix_ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of supplemental information related to leases.", "label": "Schedule of Supplemental Information Related to Leases [Table Text Block]", "terseLabel": "Schedule of supplemental information related to leases" } } }, "localname": "ScheduleOfSupplementalInformationRelatedToLeasesTableTextBlock", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesTables" ], "xbrltype": "textBlockItemType" }, "fix_ServiceCallsMaintenanceAndMonitoringMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "This member stands for service calls, maintenance and monitoring.", "label": "Service Calls, Maintenance and Monitoring" } } }, "localname": "ServiceCallsMaintenanceAndMonitoringMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "fix_ServiceProjectsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "This member stands for service projects.", "label": "Service Projects" } } }, "localname": "ServiceProjectsMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "fix_StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Total number of shares issued during the period, including shares forfeited, as a result of Restricted and Performance Stock Awards.", "label": "Stock Issued During Period, Shares, Restricted And Performance Stock Award Gross", "terseLabel": "Issuance of restricted stock & performance stock (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesRestrictedAndPerformanceStockAwardGross", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "sharesItemType" }, "fix_StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate value of stock related to Restricted and Performance Stock Awards issued during the period.", "label": "Stock Issued During Period Value Restricted And Performance Stock Award Gross", "terseLabel": "Issuance of restricted stock & performance stock" } } }, "localname": "StockIssuedDuringPeriodValueRestrictedAndPerformanceStockAwardGross", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "fix_StockRepurchaseProgram2007Member": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the March 2007 stock repurchase program.", "label": "Stock Repurchase Program 2007" } } }, "localname": "StockRepurchaseProgram2007Member", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails" ], "xbrltype": "domainItemType" }, "fix_StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The additional number of shares authorized to be repurchased by an entity's Board of Directors under a stock repurchase plan", "label": "Stock Repurchase Program, Additional Number of Shares Authorized to be Repurchased", "terseLabel": "Additional number of shares authorized for repurchase" } } }, "localname": "StockRepurchaseProgramAdditionalNumberOfSharesAuthorizedToBeRepurchased", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails" ], "xbrltype": "sharesItemType" }, "fix_SubordinateDebtAndPromissoryNoteMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "This element represents domestic or foreign subordinated debt and promissory note. Subordinated debt has a lower priority of repayment in liquidation of the entity's assets and promissory notes has a borrowing supported by a written promise to pay an obligation.", "label": "Notes to Former Owners" } } }, "localname": "SubordinateDebtAndPromissoryNoteMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables" ], "xbrltype": "domainItemType" }, "fix_SupplementalInformationRelatedToLeasesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "No definition available.", "label": "Supplemental Information Related to Leases [Abstract]", "terseLabel": "Supplemental information related to leases:" } } }, "localname": "SupplementalInformationRelatedToLeasesAbstract", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "xbrltype": "stringItemType" }, "fix_TaxInterestIncomeNet": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The net amount of interest income on tax refund of R&D tax credit.", "label": "Tax Interest Income, Net", "terseLabel": "Net interest income" } } }, "localname": "TaxInterestIncomeNet", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "fix_TaxYears2016To2018Member": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Identified as tax year total for 2016-2018.", "label": "Total Tax Years 2016-2018" } } }, "localname": "TaxYears2016To2018Member", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails" ], "xbrltype": "domainItemType" }, "fix_TaxYears2019To2021Member": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Identified as tax year total for 2019-2021.", "label": "Total Tax Years 2019-2021" } } }, "localname": "TaxYears2019To2021Member", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails" ], "xbrltype": "domainItemType" }, "fix_TermLoanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to term loan member.", "label": "Term loan" } } }, "localname": "TermLoanMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "domainItemType" }, "fix_UnbilledAccountsReceivableAllowanceForCreditLoss": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The amount of allowance for credit losses on unbilled receivable.", "label": "Unbilled Accounts Receivable, Allowance for Credit Loss", "terseLabel": "Unbilled accounts receivable, allowance for credit losses (in dollars)" } } }, "localname": "UnbilledAccountsReceivableAllowanceForCreditLoss", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "monetaryItemType" }, "fix_VariableLeaseAndShortTermLeaseCost": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of variable lease cost and short-term lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases.", "label": "Variable Lease and Short-term Lease, Cost", "terseLabel": "Variable lease expense and short-term lease expenses" } } }, "localname": "VariableLeaseAndShortTermLeaseCost", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails" ], "xbrltype": "monetaryItemType" }, "fix_WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to Walker TX Holdings, Inc. and its wholly-owned subsidiaries.", "label": "Walker" } } }, "localname": "WalkerTxHoldingsInc.AndItsWhollyOwnedSubsidiariesMember", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetAdditionalInformationDetails" ], "xbrltype": "domainItemType" }, "fix_WeightedAverageCostOfCapital": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Percentage of weighted average cost of capital.", "label": "Weighted Average Cost Of Capital", "terseLabel": "Weighted average cost of capital" } } }, "localname": "WeightedAverageCostOfCapital", "nsuri": "http://www.comfortsystemsusa.com/20220331", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "percentItemType" }, "srt_ConsolidationItemsAxis": { "auth_ref": [ "r93", "r145", "r158", "r159", "r160", "r161", "r163", "r165", "r169", "r240", "r241", "r242", "r243", "r244", "r245", "r247", "r248", "r250", "r252", "r253" ], "lang": { "en-us": { "role": { "label": "Consolidation Items [Axis]" } } }, "localname": "ConsolidationItemsAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails" ], "xbrltype": "stringItemType" }, "srt_ConsolidationItemsDomain": { "auth_ref": [ "r93", "r145", "r158", "r159", "r160", "r161", "r163", "r165", "r169", "r240", "r241", "r242", "r243", "r244", "r245", "r247", "r248", "r250", "r252", "r253" ], "lang": { "en-us": { "role": { "label": "Consolidation Items [Domain]" } } }, "localname": "ConsolidationItemsDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails" ], "xbrltype": "domainItemType" }, "srt_CounterpartyNameAxis": { "auth_ref": [ "r44", "r46", "r91", "r92", "r259", "r293" ], "lang": { "en-us": { "role": { "label": "Counterparty Name [Axis]" } } }, "localname": "CounterpartyNameAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" ], "xbrltype": "stringItemType" }, "srt_MajorCustomersAxis": { "auth_ref": [ "r174", "r339", "r345", "r530" ], "lang": { "en-us": { "role": { "label": "Customer [Axis]" } } }, "localname": "MajorCustomersAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" ], "xbrltype": "stringItemType" }, "srt_MaximumMember": { "auth_ref": [ "r258", "r292", "r362", "r364", "r487", "r488", "r489", "r490", "r491", "r492", "r493", "r526", "r531", "r540", "r541" ], "lang": { "en-us": { "role": { "label": "Maximum" } } }, "localname": "MaximumMember", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails", "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails", "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails", "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails", "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails" ], "xbrltype": "domainItemType" }, "srt_MinimumMember": { "auth_ref": [ "r258", "r292", "r362", "r364", "r487", "r488", "r489", "r490", "r491", "r492", "r493", "r526", "r531", "r540", "r541" ], "lang": { "en-us": { "role": { "label": "Minimum" } } }, "localname": "MinimumMember", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails", "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails", "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails", "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" ], "xbrltype": "domainItemType" }, "srt_NameOfMajorCustomerDomain": { "auth_ref": [ "r174", "r339", "r345", "r530" ], "lang": { "en-us": { "role": { "label": "Customer [Domain]" } } }, "localname": "NameOfMajorCustomerDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "srt_ProductOrServiceAxis": { "auth_ref": [ "r171", "r339", "r343", "r496", "r524", "r529" ], "lang": { "en-us": { "role": { "label": "Products and Services [Axis]" } } }, "localname": "ProductOrServiceAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" ], "xbrltype": "stringItemType" }, "srt_ProductsAndServicesDomain": { "auth_ref": [ "r171", "r339", "r343", "r496", "r524", "r529" ], "lang": { "en-us": { "role": { "label": "Products and Services [Domain]" } } }, "localname": "ProductsAndServicesDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "srt_RangeAxis": { "auth_ref": [ "r258", "r292", "r352", "r362", "r364", "r487", "r488", "r489", "r490", "r491", "r492", "r493", "r526", "r531", "r540", "r541" ], "lang": { "en-us": { "role": { "label": "Range [Axis]" } } }, "localname": "RangeAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails", "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails", "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails", "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails", "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails" ], "xbrltype": "stringItemType" }, "srt_RangeMember": { "auth_ref": [ "r258", "r292", "r352", "r362", "r364", "r487", "r488", "r489", "r490", "r491", "r492", "r493", "r526", "r531", "r540", "r541" ], "lang": { "en-us": { "role": { "label": "Range [Domain]" } } }, "localname": "RangeMember", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails", "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails", "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails", "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails", "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails" ], "xbrltype": "domainItemType" }, "srt_RepurchaseAgreementCounterpartyNameDomain": { "auth_ref": [ "r45", "r46", "r91", "r92", "r259", "r293" ], "lang": { "en-us": { "role": { "label": "Counterparty Name [Domain]" } } }, "localname": "RepurchaseAgreementCounterpartyNameDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AccountingPoliciesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Summary of Significant Accounting Policies and Estimates" } } }, "localname": "AccountingPoliciesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_AccountsPayableCurrent": { "auth_ref": [ "r27", "r480" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Accounts Payable, Current", "terseLabel": "Accounts payable" } } }, "localname": "AccountsPayableCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdditionalPaidInCapitalCommonStock": { "auth_ref": [ "r17" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital.", "label": "Additional Paid in Capital, Common Stock", "terseLabel": "Additional paid-in capital" } } }, "localname": "AdditionalPaidInCapitalCommonStock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdditionalPaidInCapitalMember": { "auth_ref": [ "r95", "r96", "r97", "r371", "r372", "r373", "r428" ], "lang": { "en-us": { "role": { "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders.", "label": "Additional Paid-In Capital" } } }, "localname": "AdditionalPaidInCapitalMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of decrease to equity for grantee's tax withholding obligation for award under share-based payment arrangement.", "label": "Adjustments Related to Tax Withholding for Share-based Compensation", "negatedLabel": "Shares received in lieu of tax withholding payment on vested restricted stock" } } }, "localname": "AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": { "auth_ref": [ "r365", "r366", "r375", "r376" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.", "label": "Adjustments to Additional Paid in Capital, Share-based Compensation, Requisite Service Period Recognition", "terseLabel": "Stock-based compensation" } } }, "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]", "terseLabel": "Adjustments to reconcile net income to net cash provided by operating activities-" } } }, "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": { "auth_ref": [ "r22", "r176", "r185" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current.", "label": "Allowance For Doubtful Accounts Receivable Current", "verboseLabel": "Billed accounts receivable, allowance for credit losses (in dollars)" } } }, "localname": "AllowanceForDoubtfulAccountsReceivableCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "monetaryItemType" }, "us-gaap_AllowanceForDoubtfulOtherReceivablesCurrent": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of allowance for credit loss on receivable, classified as other and current.", "label": "Other Receivables Allowance For Credit Loss", "terseLabel": "Other receivables, allowance for credit losses (in dollars)" } } }, "localname": "AllowanceForDoubtfulOtherReceivablesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "monetaryItemType" }, "us-gaap_AmortizationOfFinancingCosts": { "auth_ref": [ "r59", "r80", "r278", "r459" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 12.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization expense attributable to debt issuance costs.", "label": "Amortization of Financing Costs", "terseLabel": "Amortization of debt financing costs" } } }, "localname": "AmortizationOfFinancingCosts", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_AmortizationOfIntangibleAssets": { "auth_ref": [ "r80", "r209", "r213" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 17.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.", "label": "Amortization of Intangible Assets", "terseLabel": "Amortization of identifiable intangible assets" } } }, "localname": "AmortizationOfIntangibleAssets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": { "auth_ref": [ "r126" ], "lang": { "en-us": { "role": { "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.", "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount", "terseLabel": "Anti-dilutive securities excluded from computation of earnings per share amount (in shares)" } } }, "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_Assets": { "auth_ref": [ "r88", "r153", "r160", "r167", "r180", "r240", "r241", "r242", "r244", "r245", "r246", "r247", "r249", "r251", "r253", "r254", "r412", "r416", "r447", "r478", "r480", "r500", "r513" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.", "label": "Assets", "terseLabel": "Total Assets", "totalLabel": "Total assets" } } }, "localname": "Assets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails", "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Assets [Abstract]", "terseLabel": "ASSETS" } } }, "localname": "AssetsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_AssetsAndLiabilitiesLesseeAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Assets and Liabilities, Lessee [Abstract]", "terseLabel": "Summary of lease asset and liabilities" } } }, "localname": "AssetsAndLiabilitiesLesseeAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AssetsCurrent": { "auth_ref": [ "r5", "r6", "r43", "r88", "r180", "r240", "r241", "r242", "r244", "r245", "r246", "r247", "r249", "r251", "r253", "r254", "r412", "r416", "r447", "r478", "r480" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.", "label": "Assets, Current", "totalLabel": "Total current assets" } } }, "localname": "AssetsCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsCurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Assets, Current [Abstract]", "terseLabel": "CURRENT ASSETS:" } } }, "localname": "AssetsCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_BaseRateMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Minimum rate investor will accept.", "label": "Base Rate" } } }, "localname": "BaseRateMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "domainItemType" }, "us-gaap_BasisOfAccountingPolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS).", "label": "Basis of Accounting, Policy [Policy Text Block]", "terseLabel": "Basis of Presentation" } } }, "localname": "BasisOfAccountingPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock": { "auth_ref": [ "r94" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for the basis of presentation and significant accounting policies concepts. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS). Accounting policies describe all significant accounting policies of the reporting entity.", "label": "Basis of Presentation and Significant Accounting Policies [Text Block]", "terseLabel": "Summary of Significant Accounting Policies and Estimates" } } }, "localname": "BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimates" ], "xbrltype": "textBlockItemType" }, "us-gaap_BilledContractReceivables": { "auth_ref": [ "r40", "r495" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amounts due for billed services rendered or to be rendered, actions taken or to be taken, or a promise to refrain from taking certain actions in accordance with the terms of a legally binding agreement between the Company and, at a minimum, one other party. An example would be amounts billed to customers under contracts or programs but not paid as of the balance sheet date.", "label": "Billed Contracts Receivable", "verboseLabel": "Billed accounts receivable, less allowance for credit losses of $8,694 and $8,808, respectively" } } }, "localname": "BilledContractReceivables", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessAcquisitionAcquireeDomain": { "auth_ref": [ "r361", "r363" ], "lang": { "en-us": { "role": { "documentation": "Identification of the acquiree in a material business combination (or series of individually immaterial business combinations), which may include the name or other type of identification of the acquiree.", "label": "Business Acquisition, Acquiree [Domain]" } } }, "localname": "BusinessAcquisitionAcquireeDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails", "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails", "http://www.comfortsystemsusa.com/role/DisclosureSubsequentEventDetails" ], "xbrltype": "domainItemType" }, "us-gaap_BusinessAcquisitionAxis": { "auth_ref": [ "r361", "r363", "r399", "r400" ], "lang": { "en-us": { "role": { "documentation": "Information by business combination or series of individually immaterial business combinations.", "label": "Business Acquisition [Axis]" } } }, "localname": "BusinessAcquisitionAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails", "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails", "http://www.comfortsystemsusa.com/role/DisclosureSubsequentEventDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BusinessAcquisitionLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Business Acquisition [Line Items]", "terseLabel": "Acquisitions" } } }, "localname": "BusinessAcquisitionLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails", "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BusinessCombinationConsiderationTransferred1": { "auth_ref": [ "r403", "r404", "r405" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer.", "label": "Business Combination, Consideration Transferred", "totalLabel": "Total consideration transferred", "verboseLabel": "Total purchase price" } } }, "localname": "BusinessCombinationConsiderationTransferred1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails", "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationConsiderationTransferredAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Business Combination, Consideration Transferred [Abstract]", "terseLabel": "Consideration transferred:" } } }, "localname": "BusinessCombinationConsiderationTransferredAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred": { "auth_ref": [ "r402", "r403", "r404", "r408" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": { "order": 2.0, "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities incurred by the acquirer as part of consideration transferred in a business combination.", "label": "Business Combination, Consideration Transferred, Liabilities Incurred", "terseLabel": "Promissory note payable", "verboseLabel": "Notes issued to former owners" } } }, "localname": "BusinessCombinationConsiderationTransferredLiabilitiesIncurred", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails", "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationConsiderationTransferredOther1": { "auth_ref": [ "r407" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": { "order": 3.0, "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of tangible or intangible assets, including a business or subsidiary of the acquirer transferred by the entity to the former owners of the acquiree. Excludes cash.", "label": "Business Combination, Consideration Transferred, Other", "verboseLabel": "Other amount payable" } } }, "localname": "BusinessCombinationConsiderationTransferredOther1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails", "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1": { "auth_ref": [ "r79", "r409" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 10.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 }, "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": { "order": 3.0, "parentTag": "us-gaap_NonoperatingIncomeExpense", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in the value of a contingent consideration liability, including, but not limited to, differences arising upon settlement.", "label": "Business Combination, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability", "negatedLabel": "Changes in the fair value of contingent earn-out obligations", "terseLabel": "Changes in the fair value of contingent earn-out obligations" } } }, "localname": "BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows", "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationDisclosureTextBlock": { "auth_ref": [ "r410" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable).", "label": "Business Combination Disclosure [Text Block]", "terseLabel": "Acquisitions" } } }, "localname": "BusinessCombinationDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureAcquisitions" ], "xbrltype": "textBlockItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet": { "auth_ref": [ "r401" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed.", "label": "Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net", "totalLabel": "Total assets acquired and liabilities assumed" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net [Abstract]", "terseLabel": "Recognized amounts of identifiable assets acquired and liabilities assumed:" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BusinessCombinationsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Acquisitions" } } }, "localname": "BusinessCombinationsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member": { "auth_ref": [ "r350" ], "lang": { "en-us": { "role": { "documentation": "Calculated under guidance for revenue recognition in effect prior to change to new guidance for revenue from contract with customer when using transition method for cumulative effect in period including initial date of application.", "label": "Calculated under Revenue Guidance in Effect before Topic 606 [Member]" } } }, "localname": "CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "auth_ref": [ "r3", "r25", "r82" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.", "label": "Cash and Cash Equivalents, at Carrying Value", "terseLabel": "Cash and cash equivalents" } } }, "localname": "CashAndCashEquivalentsAtCarryingValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsFairValueDisclosure": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Fair value portion of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "Cash and Cash Equivalents, Fair Value Disclosure", "terseLabel": "Cash and cash equivalents" } } }, "localname": "CashAndCashEquivalentsFairValueDisclosure", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": { "auth_ref": [ "r76", "r82", "r83" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents", "periodEndLabel": "CASH AND CASH EQUIVALENTS, end of period", "periodStartLabel": "CASH AND CASH EQUIVALENTS, beginning of period" } } }, "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": { "auth_ref": [ "r76", "r448" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect", "totalLabel": "NET INCREASE (DECREASE) IN CASH AND CASH EQUIVALENTS" } } }, "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashSurrenderValueFairValueDisclosure": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Fair value portion of the amount that could be realized under a life insurance contract or contracts owned by the entity, commonly known as corporate-owned life insurance (COLI) or bank-owned life insurance (BOLI).", "label": "Cash Surrender Value, Fair Value Disclosure", "terseLabel": "Life insurance-cash surrender value" } } }, "localname": "CashSurrenderValueFairValueDisclosure", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashSurrenderValueOfLifeInsurance": { "auth_ref": [ "r7", "r26" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Carrying amount as of the balance sheet date of amounts which could be received based on the terms of the insurance contract upon surrendering life policies owned by the entity.", "label": "Cash Surrender Value of Life Insurance", "terseLabel": "Cash surrender value" } } }, "localname": "CashSurrenderValueOfLifeInsurance", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ChangeInContractWithCustomerAssetAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Change in Contract with Customer, Asset [Abstract]", "terseLabel": "Contract Assets" } } }, "localname": "ChangeInContractWithCustomerAssetAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ChangeInContractWithCustomerLiabilityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Change in Contract with Customer, Liability [Abstract]", "terseLabel": "Contract Liabilities" } } }, "localname": "ChangeInContractWithCustomerLiabilityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_CommitmentsAndContingencies": { "auth_ref": [ "r36", "r226", "r504", "r518" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.", "label": "Commitments and Contingencies.", "terseLabel": "COMMITMENTS AND CONTINGENCIES" } } }, "localname": "CommitmentsAndContingencies", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Commitments and Contingencies" } } }, "localname": "CommitmentsAndContingenciesDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": { "auth_ref": [ "r223", "r224", "r225", "r235", "r539" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for commitments and contingencies.", "label": "Commitments and Contingencies Disclosure [Text Block]", "terseLabel": "Commitments and Contingencies" } } }, "localname": "CommitmentsAndContingenciesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingencies" ], "xbrltype": "textBlockItemType" }, "us-gaap_CommonStockDividendsPerShareDeclared": { "auth_ref": [ "r310" ], "lang": { "en-us": { "role": { "documentation": "Aggregate dividends declared during the period for each share of common stock outstanding.", "label": "Common Stock, Dividends, Per Share, Declared", "verboseLabel": "Dividends (per share)" } } }, "localname": "CommonStockDividendsPerShareDeclared", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquityParenthetical" ], "xbrltype": "perShareItemType" }, "us-gaap_CommonStockMember": { "auth_ref": [ "r95", "r96", "r428" ], "lang": { "en-us": { "role": { "documentation": "Stock that is subordinate to all other stock of the issuer.", "label": "Common Stock" } } }, "localname": "CommonStockMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_CommonStockParOrStatedValuePerShare": { "auth_ref": [ "r16" ], "lang": { "en-us": { "role": { "documentation": "Face amount or stated value per share of common stock.", "label": "Common Stock, Par or Stated Value Per Share", "terseLabel": "Common stock, par value (in dollars per share)" } } }, "localname": "CommonStockParOrStatedValuePerShare", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "perShareItemType" }, "us-gaap_CommonStockSharesAuthorized": { "auth_ref": [ "r16" ], "lang": { "en-us": { "role": { "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws.", "label": "Common Stock, Shares Authorized", "terseLabel": "Common stock, shares authorized" } } }, "localname": "CommonStockSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesIssued": { "auth_ref": [ "r16" ], "lang": { "en-us": { "role": { "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.", "label": "Common Stock, Shares, Issued", "periodEndLabel": "BALANCE (in shares)", "periodStartLabel": "BALANCE (in shares)", "terseLabel": "Common stock, shares issued" } } }, "localname": "CommonStockSharesIssued", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical", "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesOutstanding": { "auth_ref": [ "r16", "r305" ], "lang": { "en-us": { "role": { "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.", "label": "Common Stock, Shares, Outstanding", "terseLabel": "Common shares outstanding, end of period" } } }, "localname": "CommonStockSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockValue": { "auth_ref": [ "r16", "r480" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.", "label": "Common Stock, Value, Issued", "verboseLabel": "Common stock, $.01 par, 102,969,912 shares authorized, 41,123,365 and 41,123,365 shares issued, respectively" } } }, "localname": "CommonStockValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": { "auth_ref": [ "r320" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability.", "label": "Contract with Customer, Asset and Liability [Table Text Block]", "terseLabel": "Schedule of contract assets and liabilities" } } }, "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination": { "auth_ref": [ "r318" ], "crdr": "debit", "lang": { "en-us": { "role": { "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, from business combination.", "label": "Contract with Customer, Asset, Increase (Decrease) for Contract Acquired in Business Combination", "terseLabel": "Change due to acquisitions / disposals" } } }, "localname": "ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerAssetNet": { "auth_ref": [ "r314", "r316", "r340" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time.", "label": "Contract with Customer, Asset, after Allowance for Credit Loss", "periodEndLabel": "Balance at end of period", "periodStartLabel": "Balance at beginning of period", "terseLabel": "Costs and estimated earnings in excess of billings, less allowance for credit losses" } } }, "localname": "ContractWithCustomerAssetNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerAssetNetAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Contract with Customer, Asset, after Allowance for Credit Loss [Abstract]", "terseLabel": "Contract assets:" } } }, "localname": "ContractWithCustomerAssetNetAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ContractWithCustomerAssetNetCurrent": { "auth_ref": [ "r314", "r316", "r340" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 6.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current.", "label": "Contract with Customer, Asset, Net, Current", "terseLabel": "Costs and estimated earnings in excess of billings, less allowance for credit losses of $53 and $84, respectively" } } }, "localname": "ContractWithCustomerAssetNetCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiability": { "auth_ref": [ "r314", "r315", "r340" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable.", "label": "Contract with Customer, Liability", "periodEndLabel": "Balance at end of period", "periodStartLabel": "Balance at beginning of period", "terseLabel": "Total contract liabilities" } } }, "localname": "ContractWithCustomerLiability", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Contract with Customer, Liability [Abstract]", "terseLabel": "Contract liabilities:" } } }, "localname": "ContractWithCustomerLiabilityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized": { "auth_ref": [ "r319" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of revenue recognized arising from contract liability from change in timeframe for performance obligation to be satisfied.", "label": "Contract with Customer, Liability, Change in Timeframe, Performance Obligation Satisfied, Revenue Recognized", "verboseLabel": "Other changes in the period" } } }, "localname": "ContractWithCustomerLiabilityChangeInTimeframePerformanceObligationSatisfiedRevenueRecognized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityCurrent": { "auth_ref": [ "r314", "r315", "r340" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.", "label": "Contract with Customer, Liability, Current", "terseLabel": "Billings in excess of costs and estimated earnings" } } }, "localname": "ContractWithCustomerLiabilityCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination": { "auth_ref": [ "r318" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from business combination.", "label": "Contract with Customer, Liability, Increase (Decrease) for Contract Acquired in Business Combination", "terseLabel": "Change due to acquisitions / disposals" } } }, "localname": "ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": { "auth_ref": [ "r341" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.", "label": "Contract with Customer, Liability, Revenue Recognized", "terseLabel": "Revenue related to our contract liabilities" } } }, "localname": "ContractWithCustomerLiabilityRevenueRecognized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerReceivableCreditLossExpenseReversal": { "auth_ref": [ "r317", "r338" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense (reversal of expense) for expected credit loss on right to consideration in exchange for good or service transferred to customer when right to consideration is unconditional.", "label": "Contract with Customer, Receivable, Credit Loss Expense (Reversal)", "terseLabel": "Change related to credit allowance" } } }, "localname": "ContractWithCustomerReceivableCreditLossExpenseReversal", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostOfRevenue": { "auth_ref": [ "r61", "r88", "r180", "r240", "r241", "r242", "r245", "r246", "r247", "r249", "r251", "r253", "r254", "r447" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": { "order": 2.0, "parentTag": "us-gaap_GrossProfit", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate cost of goods produced and sold and services rendered during the reporting period.", "label": "Cost of Revenue", "terseLabel": "COST OF SERVICES" } } }, "localname": "CostOfRevenue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_CreditLossFinancialInstrumentPolicyTextBlock": { "auth_ref": [ "r182", "r183", "r184", "r186", "r187", "r189", "r190", "r191", "r192", "r193", "r194", "r195", "r196", "r197", "r198", "r199", "r200", "r201" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for credit loss on financial instrument measured at amortized cost basis, net investment in lease, off-balance sheet credit exposure, and available-for-sale debt security. Includes, but is not limited to, methodology used to estimate allowance for credit loss, how writeoff of uncollectible amount is recognized, and determination of past due status and nonaccrual status.", "label": "Credit Loss, Financial Instrument [Policy Text Block]", "verboseLabel": "Accounts Receivable and Allowance for Credit Losses" } } }, "localname": "CreditLossFinancialInstrumentPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_DebtDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Debt Obligations" } } }, "localname": "DebtDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_DebtDisclosureTextBlock": { "auth_ref": [ "r85", "r261", "r262", "r263", "r264", "r265", "r266", "r267", "r272", "r279", "r280", "r282", "r289" ], "lang": { "en-us": { "role": { "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.", "label": "Long-term Debt [Text Block]", "terseLabel": "Debt Obligations" } } }, "localname": "DebtDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligations" ], "xbrltype": "textBlockItemType" }, "us-gaap_DebtInstrumentAxis": { "auth_ref": [ "r12", "r13", "r14", "r87", "r93", "r255", "r256", "r257", "r258", "r259", "r260", "r262", "r268", "r269", "r270", "r271", "r273", "r274", "r275", "r276", "r277", "r278", "r285", "r286", "r287", "r288", "r460", "r501", "r502", "r512" ], "lang": { "en-us": { "role": { "documentation": "Information by type of debt instrument, including, but not limited to, draws against credit facilities.", "label": "Debt Instrument [Axis]" } } }, "localname": "DebtInstrumentAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables" ], "xbrltype": "stringItemType" }, "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Percentage points added to the reference rate to compute the variable rate on the debt instrument.", "label": "Interest rate margin (as a percent)", "terseLabel": "Additional per annum interest margin (as a percent)" } } }, "localname": "DebtInstrumentBasisSpreadOnVariableRate1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "percentItemType" }, "us-gaap_DebtInstrumentInterestRateEffectivePercentageAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Debt Instrument, Interest Rate, Effective Percentage [Abstract]" } } }, "localname": "DebtInstrumentInterestRateEffectivePercentageAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DebtInstrumentInterestRateStatedPercentage": { "auth_ref": [ "r33", "r256" ], "lang": { "en-us": { "role": { "documentation": "Contractual interest rate for funds borrowed, under the debt agreement.", "label": "Debt Instrument, Interest Rate, Stated Percentage", "terseLabel": "Stated interest rate (as a percent)" } } }, "localname": "DebtInstrumentInterestRateStatedPercentage", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "percentItemType" }, "us-gaap_DebtInstrumentLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Debt Instrument [Line Items]", "terseLabel": "Debt Obligations" } } }, "localname": "DebtInstrumentLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DebtInstrumentNameDomain": { "auth_ref": [ "r34", "r87", "r93", "r255", "r256", "r257", "r258", "r259", "r260", "r262", "r268", "r269", "r270", "r271", "r273", "r274", "r275", "r276", "r277", "r278", "r285", "r286", "r287", "r288", "r460" ], "lang": { "en-us": { "role": { "documentation": "The name for the particular debt instrument or borrowing that distinguishes it from other debt instruments or borrowings, including draws against credit facilities.", "label": "Debt Instrument, Name [Domain]" } } }, "localname": "DebtInstrumentNameDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables" ], "xbrltype": "domainItemType" }, "us-gaap_DebtInstrumentTable": { "auth_ref": [ "r34", "r87", "r93", "r255", "r256", "r257", "r258", "r259", "r260", "r262", "r268", "r269", "r270", "r271", "r273", "r274", "r275", "r276", "r277", "r278", "r281", "r285", "r286", "r287", "r288", "r306", "r307", "r308", "r309", "r457", "r458", "r460", "r461", "r511" ], "lang": { "en-us": { "role": { "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.", "label": "Schedule of Long-term Debt Instruments [Table]" } } }, "localname": "DebtInstrumentTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet": { "auth_ref": [ "r268", "r283", "r285", "r286", "r459" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of unamortized debt discount (premium) and debt issuance costs.", "label": "Debt Instrument, Unamortized Discount (Premium) and Debt Issuance Costs, Net", "negatedLabel": "Less-unamortized debt issuance costs" } } }, "localname": "DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DebtLongtermAndShorttermCombinedAmount": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Represents the aggregate of total long-term debt, including current maturities and short-term debt.", "label": "Debt, Long-term and Short-term, Combined Amount", "terseLabel": "Total principal amount", "verboseLabel": "Outstanding balance" } } }, "localname": "DebtLongtermAndShorttermCombinedAmount", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DebtWeightedAverageInterestRate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Weighted average interest rate of debt outstanding.", "label": "Debt, Weighted Average Interest Rate", "terseLabel": "Range of stated interest rates (as a percent)" } } }, "localname": "DebtWeightedAverageInterestRate", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "percentItemType" }, "us-gaap_DeferredIncomeTaxAssetsNet": { "auth_ref": [ "r379", "r380" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 6.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting.", "label": "Deferred Income Tax Assets, Net", "verboseLabel": "DEFERRED TAX ASSETS" } } }, "localname": "DeferredIncomeTaxAssetsNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxExpenseBenefit": { "auth_ref": [ "r80", "r89", "r390", "r395", "r396", "r397" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 13.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "Deferred Income Tax Expense (Benefit)", "verboseLabel": "Deferred tax provision (benefit)" } } }, "localname": "DeferredIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxLiabilitiesNet": { "auth_ref": [ "r379", "r380" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.", "label": "Deferred Income Tax Liabilities, Net", "verboseLabel": "DEFERRED TAX LIABILITIES" } } }, "localname": "DeferredIncomeTaxLiabilitiesNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_Depreciation": { "auth_ref": [ "r80", "r217" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 16.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.", "label": "Depreciation", "terseLabel": "Depreciation expense" } } }, "localname": "Depreciation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_DerivativeContractTypeDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Derivative Contract [Domain]" } } }, "localname": "DerivativeContractTypeDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_DerivativeInstrumentRiskAxis": { "auth_ref": [ "r46", "r422", "r423", "r424", "r426" ], "lang": { "en-us": { "role": { "documentation": "Information by type of derivative contract.", "label": "Derivative Instrument [Axis]" } } }, "localname": "DerivativeInstrumentRiskAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DisaggregationOfRevenueLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Disaggregation of Revenue [Line Items]", "terseLabel": "Disaggregation of Revenue" } } }, "localname": "DisaggregationOfRevenueLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DisaggregationOfRevenueTable": { "auth_ref": [ "r339", "r343", "r344", "r345", "r346", "r347", "r348", "r349" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.", "label": "Disaggregation of Revenue [Table]" } } }, "localname": "DisaggregationOfRevenueTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DisaggregationOfRevenueTableTextBlock": { "auth_ref": [ "r339" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.", "label": "Disaggregation of Revenue [Table Text Block]", "terseLabel": "Schedule of disaggregation of revenue" } } }, "localname": "DisaggregationOfRevenueTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_DisclosureOfRepurchaseAgreementsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Shares Repurchase Program [Abstract]", "terseLabel": "Share Repurchase Program" } } }, "localname": "DisclosureOfRepurchaseAgreementsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DividendsCommonStockCash": { "auth_ref": [ "r310" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of paid and unpaid common stock dividends declared with the form of settlement in cash.", "label": "Dividends, Common Stock, Cash", "negatedLabel": "Dividends" } } }, "localname": "DividendsCommonStockCash", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_EarningsPerShareAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Earnings Per Share [Abstract]", "terseLabel": "INCOME PER SHARE:" } } }, "localname": "EarningsPerShareAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "stringItemType" }, "us-gaap_EarningsPerShareBasic": { "auth_ref": [ "r57", "r100", "r101", "r102", "r103", "r104", "r108", "r110", "r123", "r124", "r125", "r128", "r129", "r429", "r430", "r507", "r520" ], "lang": { "en-us": { "role": { "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.", "label": "Net income (loss) (in dollars per share)", "terseLabel": "Basic" } } }, "localname": "EarningsPerShareBasic", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerShareDiluted": { "auth_ref": [ "r57", "r100", "r101", "r102", "r103", "r104", "r110", "r123", "r124", "r125", "r128", "r129", "r429", "r430", "r507", "r520" ], "lang": { "en-us": { "role": { "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.", "label": "Net diluted income after-tax (in dollars per share)", "terseLabel": "Diluted" } } }, "localname": "EarningsPerShareDiluted", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "perShareItemType" }, "us-gaap_EmployeeRelatedLiabilitiesCurrent": { "auth_ref": [ "r31" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Employee-related Liabilities, Current", "terseLabel": "Accrued compensation and benefits" } } }, "localname": "EmployeeRelatedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_EquityComponentDomain": { "auth_ref": [ "r0", "r50", "r51", "r52", "r95", "r96", "r97", "r99", "r105", "r107", "r130", "r181", "r305", "r310", "r371", "r372", "r373", "r392", "r393", "r428", "r449", "r450", "r451", "r452", "r453", "r454", "r533", "r534", "r535", "r548" ], "lang": { "en-us": { "role": { "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc.", "label": "Equity Component [Domain]" } } }, "localname": "EquityComponentDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValueAmount": { "auth_ref": [ "r178" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of investment in equity security without readily determinable fair value.", "label": "Equity Securities without Readily Determinable Fair Value, Amount", "terseLabel": "Investment fair value" } } }, "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValueAmount", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_EquitySecuritiesWithoutReadilyDeterminableFairValuePolicyTextBlock": { "auth_ref": [ "r179" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for investment in equity security without readily determinable fair value, which does not qualify for practical expedient to estimate fair value using net asset value per share. Includes, but is not limited to, information considered for determining upward and downward adjustment from observable price change.", "label": "Equity Securities without Readily Determinable Fair Value [Policy Text Block]", "terseLabel": "Investments" } } }, "localname": "EquitySecuritiesWithoutReadilyDeterminableFairValuePolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_EstimateOfFairValueFairValueDisclosureMember": { "auth_ref": [ "r270", "r285", "r286", "r446" ], "lang": { "en-us": { "role": { "documentation": "Measured as an estimate of fair value.", "label": "Total" } } }, "localname": "EstimateOfFairValueFairValueDisclosureMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_EurodollarMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Interest rate based on U.S. dollar denominated deposits at foreign banks or foreign branches of U.S. banks.", "label": "Eurodollar rate" } } }, "localname": "EurodollarMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]", "terseLabel": "Fair Value Measurements" } } }, "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable": { "auth_ref": [ "r431", "r432", "r433", "r440" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about asset and liability measured at fair value on recurring and nonrecurring basis.", "label": "Fair Value Measurements, Recurring and Nonrecurring [Table]" } } }, "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock": { "auth_ref": [ "r436", "r440" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the fair value measurement of assets using significant unobservable inputs (Level 3), a reconciliation of the beginning and ending balances, separately presenting changes during the period attributable to the following: (1) total gains or losses for the period (realized and unrealized), segregating those gains or losses included in earnings (or changes in net assets) and gains or losses recognized in other comprehensive income (loss), and a description of where those gains or losses included in earnings (or changes in net assets) are reported in the statement of income (or activities); (2) purchases, sales, issues, and settlements (each type disclosed separately); and (3) transfers in and transfers out of Level 3 (for example, transfers due to changes in the observability of significant inputs), by class of asset.", "label": "Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Table Text Block]", "terseLabel": "Schedule of reconciliation of the fair value of contingent earn-out obligations that use significant unobservable inputs (Level 3)" } } }, "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_FairValueByFairValueHierarchyLevelAxis": { "auth_ref": [ "r270", "r285", "r286", "r353", "r354", "r355", "r356", "r357", "r358", "r359", "r360", "r432", "r484", "r485", "r486" ], "lang": { "en-us": { "role": { "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient.", "label": "Fair Value, Hierarchy [Axis]" } } }, "localname": "FairValueByFairValueHierarchyLevelAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueByLiabilityClassAxis": { "auth_ref": [ "r439", "r440" ], "lang": { "en-us": { "role": { "documentation": "Information by class of liability.", "label": "Liability Class [Axis]" } } }, "localname": "FairValueByLiabilityClassAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueByMeasurementBasisAxis": { "auth_ref": [ "r270", "r285", "r286", "r431", "r441" ], "lang": { "en-us": { "role": { "documentation": "Information by measurement basis.", "label": "Measurement Basis [Axis]" } } }, "localname": "FairValueByMeasurementBasisAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueByMeasurementFrequencyAxis": { "auth_ref": [ "r431", "r432", "r434", "r435", "r442" ], "lang": { "en-us": { "role": { "documentation": "Information by measurement frequency.", "label": "Measurement Frequency [Axis]" } } }, "localname": "FairValueByMeasurementFrequencyAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueDisclosuresAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Fair Value Measurements" } } }, "localname": "FairValueDisclosuresAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_FairValueDisclosuresTextBlock": { "auth_ref": [ "r439" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information.", "label": "Fair Value Disclosures [Text Block]", "terseLabel": "Fair Value Measurements" } } }, "localname": "FairValueDisclosuresTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurements" ], "xbrltype": "textBlockItemType" }, "us-gaap_FairValueInputsLevel1Member": { "auth_ref": [ "r270", "r353", "r354", "r359", "r360", "r432", "r484" ], "lang": { "en-us": { "role": { "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date.", "label": "Quoted Market Prices In Active Markets for Identical Assets (Level 1)" } } }, "localname": "FairValueInputsLevel1Member", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueInputsLevel2Member": { "auth_ref": [ "r270", "r285", "r286", "r353", "r354", "r359", "r360", "r432", "r485" ], "lang": { "en-us": { "role": { "documentation": "Inputs other than quoted prices included within level 1 that are observable for an asset or liability, either directly or indirectly, including, but not limited to, quoted prices for similar assets or liabilities in active markets, or quoted prices for identical or similar assets or liabilities in inactive markets.", "label": "Significant Other Observable Inputs (Level 2)" } } }, "localname": "FairValueInputsLevel2Member", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueInputsLevel3Member": { "auth_ref": [ "r270", "r285", "r286", "r353", "r354", "r355", "r356", "r357", "r358", "r359", "r360", "r432", "r486" ], "lang": { "en-us": { "role": { "documentation": "Unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.", "label": "Significant Unobservable Inputs (Level 3)" } } }, "localname": "FairValueInputsLevel3Member", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain": { "auth_ref": [ "r436" ], "lang": { "en-us": { "role": { "documentation": "Represents classes of liabilities measured and disclosed at fair value.", "label": "Fair Value by Liability Class [Domain]" } } }, "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationByLiabilityClassDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation, Calculation [Roll Forward]", "terseLabel": "Reconciliation of the fair value of contingent earn-out obligations that use significant unobservable inputs (Level 3)" } } }, "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationCalculationRollForward", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueMeasurementFrequencyDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Measurement frequency.", "label": "Fair Value, Measurement Frequency [Domain]" } } }, "localname": "FairValueMeasurementFrequencyDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings": { "auth_ref": [ "r437" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of gain (loss) recognized in income from liability measured at fair value on recurring basis using unobservable input (level 3).", "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Gain (Loss) Included in Earnings", "terseLabel": "Adjustments to fair value" } } }, "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues": { "auth_ref": [ "r438" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of issuances of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.", "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Issuances", "terseLabel": "Issuances" } } }, "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityIssues", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements": { "auth_ref": [ "r438" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of settlements of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.", "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Settlements", "negatedLabel": "Settlements" } } }, "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue": { "auth_ref": [ "r436" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Fair value of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.", "label": "Fair Value, Measurement with Unobservable Inputs Reconciliations, Recurring Basis, Liability Value", "periodEndLabel": "Balance at end of period", "periodStartLabel": "Balance at beginning of period" } } }, "localname": "FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": { "auth_ref": [ "r270", "r285", "r286", "r353", "r354", "r355", "r356", "r357", "r358", "r359", "r360", "r484", "r485", "r486" ], "lang": { "en-us": { "role": { "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value.", "label": "Fair Value Hierarchy [Domain]" } } }, "localname": "FairValueMeasurementsFairValueHierarchyDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueMeasurementsRecurringMember": { "auth_ref": [ "r439", "r442" ], "lang": { "en-us": { "role": { "documentation": "Frequent fair value measurement. Includes, but is not limited to, fair value adjustment for impairment of asset, liability or equity, frequently measured at fair value.", "label": "Recurring basis" } } }, "localname": "FairValueMeasurementsRecurringMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueOfFinancialInstrumentsPolicy": { "auth_ref": [ "r443", "r445" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for determining the fair value of financial instruments.", "label": "Fair Value of Financial Instruments, Policy [Policy Text Block]", "terseLabel": "Financial Instruments" } } }, "localname": "FairValueOfFinancialInstrumentsPolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_FinanceLeaseLiability": { "auth_ref": [ "r463", "r475" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease.", "label": "Finance Lease, Liability", "terseLabel": "Finance lease liabilities (See Note 8)", "verboseLabel": "Finance lease liability" } } }, "localname": "FinanceLeaseLiability", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails", "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FinanceLeasePrincipalPayments": { "auth_ref": [ "r466", "r471" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 5.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow for principal payment on finance lease.", "label": "Finance Lease, Principal Payments", "negatedLabel": "Payments on finance lease liabilities" } } }, "localname": "FinanceLeasePrincipalPayments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": { "auth_ref": [ "r214" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails": { "order": 1.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Assets, Amortization Expense, Next Twelve Months", "terseLabel": "2023" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear": { "auth_ref": [], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails": { "order": 6.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in remainder of current fiscal year.", "label": "Finite-Lived Intangible Assets, Amortization Expense, Remainder of Fiscal Year", "terseLabel": "2022 (remainder of the year)" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": { "auth_ref": [ "r214" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails": { "order": 3.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Assets, Amortization Expense, Year Four", "terseLabel": "2026" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": { "auth_ref": [ "r214" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails": { "order": 4.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Assets, Amortization Expense, Year Three", "terseLabel": "2025" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": { "auth_ref": [ "r214" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails": { "order": 5.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Assets, Amortization Expense, Year Two", "terseLabel": "2024" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Net, Amortization Expense, Fiscal Year Maturity [Abstract]", "terseLabel": "Future amortization expense of identifiable intangible assets" } } }, "localname": "FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FiniteLivedIntangibleAssetsNet": { "auth_ref": [ "r212", "r497" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Finite-Lived Intangible Assets, Net", "totalLabel": "Total" } } }, "localname": "FiniteLivedIntangibleAssetsNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetIdentifiableIntangibleAssetsNetDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_GainLossOnDispositionOfAssets": { "auth_ref": [ "r80", "r216", "r219" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": { "order": 3.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of gain (loss) on sale or disposal of property, plant and equipment assets, excluding oil and gas property and timber property.", "label": "Gain (Loss) on Disposition of Property Plant Equipment, Excluding Oil and Gas Property and Timber Property", "negatedLabel": "GAIN ON SALE OF ASSETS" } } }, "localname": "GainLossOnDispositionOfAssets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_GainLossOnSaleOfPropertyPlantEquipment": { "auth_ref": [ "r80" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 11.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property.", "label": "Gain (Loss) on Disposition of Property Plant Equipment", "negatedTerseLabel": "Gain on sale of assets" } } }, "localname": "GainLossOnSaleOfPropertyPlantEquipment", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_Goodwill": { "auth_ref": [ "r202", "r203", "r480", "r499" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": { "order": 1.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": 1.0 }, "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.", "label": "Goodwill.", "periodEndLabel": "Balance at end of period", "periodStartLabel": "Balance at beginning of year", "terseLabel": "GOODWILL", "verboseLabel": "Goodwill" } } }, "localname": "Goodwill", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails", "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetAdditionalInformationDetails", "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails", "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillAcquiredDuringPeriod": { "auth_ref": [ "r204" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination.", "label": "Goodwill, Acquired During Period", "terseLabel": "Acquisitions and purchase price adjustments (See Note 5)" } } }, "localname": "GoodwillAcquiredDuringPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Goodwill and Identifiable Intangible Assets, Net" } } }, "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock": { "auth_ref": [ "r215" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for goodwill and intangible assets.", "label": "Goodwill and Intangible Assets Disclosure [Text Block]", "terseLabel": "Goodwill and Identifiable Intangible Assets, Net" } } }, "localname": "GoodwillAndIntangibleAssetsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNet" ], "xbrltype": "textBlockItemType" }, "us-gaap_GoodwillLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Goodwill [Line Items]", "terseLabel": "Goodwill" } } }, "localname": "GoodwillLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetAdditionalInformationDetails", "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails" ], "xbrltype": "stringItemType" }, "us-gaap_GoodwillOtherIncreaseDecrease": { "auth_ref": [ "r205" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease), classified as other, of an asset representing the future economic benefits from other assets acquired in a business combination that are not individually identified and separately recognized.", "label": "Goodwill, Other Increase (Decrease)", "terseLabel": "Impact of segment reorganization" } } }, "localname": "GoodwillOtherIncreaseDecrease", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Goodwill [Roll Forward]", "terseLabel": "Changes in the carrying amount of goodwill" } } }, "localname": "GoodwillRollForward", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails" ], "xbrltype": "stringItemType" }, "us-gaap_GrossProfit": { "auth_ref": [ "r60", "r88", "r153", "r159", "r163", "r166", "r169", "r180", "r240", "r241", "r242", "r245", "r246", "r247", "r249", "r251", "r253", "r254", "r447" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": { "order": 1.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.", "label": "Gross Profit", "totalLabel": "Gross profit", "verboseLabel": "Gross Profit" } } }, "localname": "GrossProfit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails", "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_HedgingDesignationAxis": { "auth_ref": [ "r421", "r427" ], "lang": { "en-us": { "role": { "documentation": "Information by designation of purpose of derivative instrument.", "label": "Hedging Designation [Axis]" } } }, "localname": "HedgingDesignationAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_HedgingDesignationDomain": { "auth_ref": [ "r421" ], "lang": { "en-us": { "role": { "documentation": "Designation of purpose of derivative instrument.", "label": "Hedging Designation [Domain]" } } }, "localname": "HedgingDesignationDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "auth_ref": [ "r55", "r153", "r159", "r163", "r166", "r169", "r498", "r505", "r509", "r521" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": { "order": 1.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.", "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest", "totalLabel": "INCOME BEFORE INCOME TAXES" } } }, "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeStatementAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CONSOLIDATED STATEMENTS OF OPERATIONS" } } }, "localname": "IncomeStatementAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxExaminationLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Income Tax Examination [Line Items]" } } }, "localname": "IncomeTaxExaminationLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxExaminationTable": { "auth_ref": [ "r383" ], "lang": { "en-us": { "role": { "documentation": "A summary of income tax examinations that an enterprise is currently subject to or that have been completed in the current period typically including a description of the examination, the jurisdiction conducting the examination, the tax year(s) under examination, the likelihood of an unfavorable settlement, the range of possible losses, the liability recorded, the Increase or Decrease in the liability from the prior period, and any penalties and interest that have been incurred or accrued.", "label": "Income Tax Examination [Table]" } } }, "localname": "IncomeTaxExaminationTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxExpenseBenefit": { "auth_ref": [ "r90", "r106", "r107", "r151", "r381", "r394", "r398", "r522" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": { "order": 2.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", "label": "Income Tax Expense (Benefit)", "terseLabel": "Provision for income taxes", "verboseLabel": "PROVISION (BENEFIT) FOR INCOME TAXES" } } }, "localname": "IncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails", "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails", "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxPolicyTextBlock": { "auth_ref": [ "r49", "r377", "r378", "r386", "r387", "r388", "r391" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.", "label": "Income Tax, Policy [Policy Text Block]", "terseLabel": "Income Taxes" } } }, "localname": "IncomeTaxPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_IncreaseDecreaseInAccountsPayableAndAccruedLiabilities": { "auth_ref": [ "r79" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the amounts payable to vendors for goods and services received and the amount of obligations and expenses incurred but not paid.", "label": "Increase (Decrease) in Accounts Payable and Accrued Liabilities", "terseLabel": "Accounts payable and accrued liabilities" } } }, "localname": "IncreaseDecreaseInAccountsPayableAndAccruedLiabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsReceivable": { "auth_ref": [ "r79" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 8.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.", "label": "Increase (Decrease) in Accounts Receivable", "negatedLabel": "Receivables, net" } } }, "localname": "IncreaseDecreaseInAccountsReceivable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInContractWithCustomerAsset": { "auth_ref": [ "r79" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 5.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "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.", "label": "Increase Decrease in Contract with Customer Assets", "negatedLabel": "Costs and estimated earnings in excess of billings and unbilled accounts receivable" } } }, "localname": "IncreaseDecreaseInContractWithCustomerAsset", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": { "auth_ref": [ "r79", "r494" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable.", "label": "Increase Decrease in Contract with Customer Liability", "terseLabel": "Billings in excess of costs and estimated earnings" } } }, "localname": "IncreaseDecreaseInContractWithCustomerLiability", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInInventories": { "auth_ref": [ "r79" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 7.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.", "label": "Increase (Decrease) in Inventories", "negatedLabel": "Inventories" } } }, "localname": "IncreaseDecreaseInInventories", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInOperatingAssetsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Operating Assets [Abstract]", "terseLabel": "(Increase) decrease in-" } } }, "localname": "IncreaseDecreaseInOperatingAssetsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Operating Capital [Abstract]", "terseLabel": "Changes in operating assets and liabilities, net of effects of acquisitions and divestitures-" } } }, "localname": "IncreaseDecreaseInOperatingCapitalAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Operating Liabilities [Abstract]", "terseLabel": "Increase (decrease) in-" } } }, "localname": "IncreaseDecreaseInOperatingLiabilitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_IncreaseDecreaseInOtherOperatingAssets": { "auth_ref": [ "r79" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in operating assets classified as other.", "label": "Increase (Decrease) in Other Operating Assets", "negatedLabel": "Other noncurrent assets" } } }, "localname": "IncreaseDecreaseInOtherOperatingAssets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInOtherOperatingLiabilities": { "auth_ref": [ "r79" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in operating liabilities classified as other.", "label": "Increase (Decrease) in Other Operating Liabilities", "terseLabel": "Other long-term liabilities" } } }, "localname": "IncreaseDecreaseInOtherOperatingLiabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": { "auth_ref": [ "r79" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 6.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other.", "label": "Increase (Decrease) in Prepaid Expense and Other Assets", "negatedLabel": "Prepaid expenses and other current assets" } } }, "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInStockholdersEquityRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Increase (Decrease) in Stockholders' Equity [Roll Forward]", "terseLabel": "Increase (Decrease) in Stockholders' Equity" } } }, "localname": "IncreaseDecreaseInStockholdersEquityRollForward", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares": { "auth_ref": [ "r112", "r113", "r115", "r116", "r117", "r118", "r119", "r120", "r121", "r125" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails": { "order": 2.0, "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of contingently issuable shares. Contingently issuable shares are those shares that are issuable for little or no cash contingent on certain conditions being met.", "label": "Incremental Common Shares Attributable to Dilutive Effect of Contingently Issuable Shares", "terseLabel": "Effect of restricted and contingently issuable shares" } } }, "localname": "IncrementalCommonSharesAttributableToContingentlyIssuableShares", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": { "auth_ref": [ "r111", "r112", "r114", "r125" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails": { "order": 1.0, "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method.", "label": "Incremental Common Shares Attributable to Dilutive Effect of Share-based Payment Arrangements", "terseLabel": "Effect of shares issuable under stock option plans based on the treasury stock method" } } }, "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis": { "auth_ref": [ "r350" ], "lang": { "en-us": { "role": { "documentation": "Information about effect of transition method for cumulative effect in initial period of application.", "label": "Initial Application Period Cumulative Effect Transition [Axis]" } } }, "localname": "InitialApplicationPeriodCumulativeEffectTransitionAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_InitialApplicationPeriodCumulativeEffectTransitionDomain": { "auth_ref": [ "r350" ], "lang": { "en-us": { "role": { "documentation": "Effect of transition method for cumulative effect in initial period of application.", "label": "Initial Application Period Cumulative Effect Transition [Domain]" } } }, "localname": "InitialApplicationPeriodCumulativeEffectTransitionDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_IntangibleAssetsNetExcludingGoodwill": { "auth_ref": [ "r208", "r210" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.", "label": "Intangible Assets, Net (Excluding Goodwill)", "terseLabel": "IDENTIFIABLE INTANGIBLE ASSETS, NET" } } }, "localname": "IntangibleAssetsNetExcludingGoodwill", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_InterestExpense": { "auth_ref": [ "r53", "r147", "r456", "r459", "r508" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": { "order": 2.0, "parentTag": "us-gaap_NonoperatingIncomeExpense", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of the cost of borrowed funds accounted for as interest expense.", "label": "Total.", "negatedLabel": "Interest expense" } } }, "localname": "InterestExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_InterestRateSwapMember": { "auth_ref": [ "r425" ], "lang": { "en-us": { "role": { "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.", "label": "Interest Rate Swap" } } }, "localname": "InterestRateSwapMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_InventoryNet": { "auth_ref": [ "r4", "r41", "r480" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.", "label": "Inventory, Net", "terseLabel": "Inventories" } } }, "localname": "InventoryNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_InvestmentIncomeInterest": { "auth_ref": [ "r63", "r146" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": { "order": 1.0, "parentTag": "us-gaap_NonoperatingIncomeExpense", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount before accretion (amortization) of purchase discount (premium) of interest income on nonoperating securities.", "label": "Investment Income, Interest", "terseLabel": "Interest income" } } }, "localname": "InvestmentIncomeInterest", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_LeasesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Leases" } } }, "localname": "LeasesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_LesseeLeaseDescriptionLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Lessee, Lease, Description [Line Items]" } } }, "localname": "LesseeLeaseDescriptionLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_LesseeLeaseDescriptionTable": { "auth_ref": [ "r470" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about lessee's leases.", "label": "Lessee, Lease, Description [Table]" } } }, "localname": "LesseeLeaseDescriptionTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_LesseeLeasesPolicyTextBlock": { "auth_ref": [ "r468" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee.", "label": "Lessee, Leases [Policy Text Block]", "terseLabel": "Leases" } } }, "localname": "LesseeLeasesPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_LesseeOperatingLeaseExistenceOfOptionToExtend": { "auth_ref": [ "r469" ], "lang": { "en-us": { "role": { "documentation": "Indicates (true false) whether lessee has option to extend operating lease.", "label": "Lessee, Operating Lease, Existence of Option to Extend [true false]", "terseLabel": "Existence of option to extend" } } }, "localname": "LesseeOperatingLeaseExistenceOfOptionToExtend", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails" ], "xbrltype": "booleanItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": { "auth_ref": [ "r475" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position.", "label": "Lessee, Operating Lease, Liability, Maturity [Table Text Block]", "terseLabel": "Schedule of maturities of lease liabilities" } } }, "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": { "auth_ref": [ "r475" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesLeasesDetailsCalc2": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease.", "label": "Lessee, Operating Lease, Liability, Payments, Due", "totalLabel": "Total Lease Payments" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": { "auth_ref": [ "r475" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails": { "order": 2.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Lessee, Operating Lease, Liability, Payments, Due Next Twelve Months", "terseLabel": "2023" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": { "auth_ref": [ "r475" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails": { "order": 4.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in 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 Year Four", "terseLabel": "2026" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": { "auth_ref": [ "r475" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails": { "order": 5.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Lessee, Operating Lease, Liability, Payments, Due Year Three", "terseLabel": "2025" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": { "auth_ref": [ "r475" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails": { "order": 6.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Lessee, Operating Lease, Liability, Payments, Due Year Two", "terseLabel": "2024" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear": { "auth_ref": [ "r475" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails": { "order": 1.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease having initial or remaining lease term in excess of one year to be paid in remainder of current fiscal year.", "label": "Lessee, Operating Lease, Liability, Payments, Remainder of Fiscal Year", "terseLabel": "2022 (excluding the three months ended March 31, 2022)" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": { "auth_ref": [ "r475" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesLeasesDetailsCalc2": { "order": 2.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.", "label": "Lessee, Operating Lease, Liability, Undiscounted Excess Amount", "negatedLabel": "Less-Present Value Discount" } } }, "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseTermOfContract": { "auth_ref": [ "r469" ], "lang": { "en-us": { "role": { "documentation": "Term of lessee's operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Lessee, Operating Lease, Term of Contract", "verboseLabel": "Lease term for operating lease" } } }, "localname": "LesseeOperatingLeaseTermOfContract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails" ], "xbrltype": "durationItemType" }, "us-gaap_LesseeOperatingLeasesTextBlock": { "auth_ref": [ "r477" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability.", "label": "Lessee, Operating Leases [Text Block]", "terseLabel": "Leases" } } }, "localname": "LesseeOperatingLeasesTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeases" ], "xbrltype": "textBlockItemType" }, "us-gaap_LetterOfCreditMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A document typically issued by a financial institution which acts as a guarantee of payment to a beneficiary, or as the source of payment for a specific transaction (for example, wiring funds to a foreign exporter if and when specified merchandise is accepted pursuant to the terms of the letter of credit).", "label": "Letter of Credit" } } }, "localname": "LetterOfCreditMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "domainItemType" }, "us-gaap_LettersOfCreditOutstandingAmount": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The total amount of the contingent obligation under letters of credit outstanding as of the reporting date.", "label": "Letters of Credit Outstanding, Amount", "terseLabel": "Letters of credit amount outstanding" } } }, "localname": "LettersOfCreditOutstandingAmount", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_Liabilities": { "auth_ref": [ "r30", "r88", "r161", "r180", "r240", "r241", "r242", "r245", "r246", "r247", "r249", "r251", "r253", "r254", "r413", "r416", "r417", "r447", "r478", "r479" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.", "label": "Liabilities", "totalLabel": "Total liabilities" } } }, "localname": "Liabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesAndStockholdersEquity": { "auth_ref": [ "r21", "r88", "r180", "r447", "r480", "r503", "r516" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.", "label": "Liabilities and Equity", "totalLabel": "Total liabilities and stockholders' equity" } } }, "localname": "LiabilitiesAndStockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesAndStockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Liabilities and Equity [Abstract]", "terseLabel": "LIABILITIES AND STOCKHOLDERS' EQUITY" } } }, "localname": "LiabilitiesAndStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_LiabilitiesCurrent": { "auth_ref": [ "r32", "r88", "r180", "r240", "r241", "r242", "r245", "r246", "r247", "r249", "r251", "r253", "r254", "r413", "r416", "r417", "r447", "r478", "r479", "r480" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.", "label": "Liabilities, Current", "totalLabel": "Total current liabilities" } } }, "localname": "LiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesCurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Liabilities, Current [Abstract]", "terseLabel": "CURRENT LIABILITIES:" } } }, "localname": "LiabilitiesCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_LineOfCredit": { "auth_ref": [ "r14", "r502", "r512" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The carrying value as of the balance sheet date of the current and noncurrent portions of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement.", "label": "Line of Credit Facility, Amount Outstanding", "terseLabel": "Outstanding borrowings" } } }, "localname": "LineOfCredit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": { "auth_ref": [ "r28" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility.", "label": "Line of Credit Facility, Maximum Borrowing Capacity", "terseLabel": "Borrowing capacity" } } }, "localname": "LineOfCreditFacilityMaximumBorrowingCapacity", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity": { "auth_ref": [ "r28" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding).", "label": "Line of Credit Facility, Remaining Borrowing Capacity", "terseLabel": "Credit available" } } }, "localname": "LineOfCreditFacilityRemainingBorrowingCapacity", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The fee, expressed as a percentage of the line of credit facility, for available but unused credit capacity under the credit facility.", "label": "Line of Credit Facility, Unused Capacity, Commitment Fee Percentage", "terseLabel": "Commitment fees payable on unused portion of the facility (as a percent)" } } }, "localname": "LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "percentItemType" }, "us-gaap_LitigationStatusAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by status of pending, threatened, or settled litigation.", "label": "Litigation Status [Axis]" } } }, "localname": "LitigationStatusAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_LitigationStatusDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Status of pending, threatened, or settled litigation.", "label": "Litigation Status [Domain]" } } }, "localname": "LitigationStatusDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_LongTermDebt": { "auth_ref": [ "r14", "r269", "r284", "r285", "r286", "r502", "r514" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after unamortized (discount) premium and debt issuance costs, of long-term debt. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.", "label": "Total Debt", "netLabel": "Total debt, net of unamortized debt issuance costs" } } }, "localname": "LongTermDebt", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LongTermDebtByMaturityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Long-term Debt, Fiscal Year Maturity [Abstract]", "terseLabel": "Future principal payments of long-term debt" } } }, "localname": "LongTermDebtByMaturityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails" ], "xbrltype": "stringItemType" }, "us-gaap_LongTermDebtCurrent": { "auth_ref": [ "r29" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after unamortized (discount) premium and debt issuance costs, of long-term debt, classified as current. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.", "label": "Less- Current portion", "terseLabel": "Current maturities of long-term debt", "verboseLabel": "Less-current portion" } } }, "localname": "LongTermDebtCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails", "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LongTermDebtNoncurrent": { "auth_ref": [ "r34" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after unamortized (discount) premium and debt issuance costs of long-term debt classified as noncurrent and excluding amounts to be repaid within one year or the normal operating cycle, if longer. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.", "label": "Long-term Debt, Excluding Current Maturities", "terseLabel": "LONG-TERM DEBT, NET", "verboseLabel": "Total long-term portion of debt, net" } } }, "localname": "LongTermDebtNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails", "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LongTermDebtOtherDisclosuresAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Long-term Debt, Other Disclosures [Abstract]", "terseLabel": "Other disclosures" } } }, "localname": "LongTermDebtOtherDisclosuresAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "stringItemType" }, "us-gaap_LossContingenciesByNatureOfContingencyAxis": { "auth_ref": [ "r226", "r227", "r228", "r230", "r231", "r232", "r234", "r237", "r238" ], "lang": { "en-us": { "role": { "documentation": "Information by type of existing condition, situation, or set of circumstances involving uncertainty as to possible loss to an enterprise that will ultimately be resolved when one or more future events occur or fail to occur.", "label": "Loss Contingency Nature [Axis]" } } }, "localname": "LossContingenciesByNatureOfContingencyAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_LossContingenciesLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Loss Contingencies [Line Items]", "terseLabel": "Commitments and Contingencies" } } }, "localname": "LossContingenciesLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_LossContingenciesTable": { "auth_ref": [ "r226", "r227", "r228", "r230", "r231", "r232", "r234", "r237", "r238" ], "lang": { "en-us": { "role": { "documentation": "Discloses the specific components (such as the nature, name, and date) of the loss contingency and gives an estimate of the possible loss or range of loss, or states that a reasonable estimate cannot be made. Excludes environmental contingencies, warranties and unconditional purchase obligations.", "label": "Loss Contingencies [Table]" } } }, "localname": "LossContingenciesTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_LossContingencyDamagesSoughtValue": { "auth_ref": [ "r226", "r229", "r233" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The value (monetary amount) of the award the plaintiff seeks in the legal matter.", "label": "Loss Contingency, Damages Sought, Value", "terseLabel": "Damages claimed" } } }, "localname": "LossContingencyDamagesSoughtValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LossContingencyNatureDomain": { "auth_ref": [ "r226", "r227", "r228", "r230", "r231", "r232", "r234", "r237", "r238" ], "lang": { "en-us": { "role": { "documentation": "An existing condition, situation, or set of circumstances involving uncertainty as to possible loss to an enterprise that will ultimately be resolved when one or more future events occur or fail to occur. Resolution of the uncertainty may confirm the incurrence of a loss or impairment of an asset or the incurrence of a liability.", "label": "Loss Contingency, Nature [Domain]" } } }, "localname": "LossContingencyNatureDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_NatureOfOperations": { "auth_ref": [ "r131", "r139" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward.", "label": "Nature of Operations [Text Block]", "terseLabel": "Business and Organization" } } }, "localname": "NatureOfOperations", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureBusinessAndOrganization" ], "xbrltype": "textBlockItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "auth_ref": [ "r76" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.", "label": "Net Cash Provided by (Used in) Financing Activities", "totalLabel": "Net cash provided by (used in) financing activities" } } }, "localname": "NetCashProvidedByUsedInFinancingActivities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Financing Activities [Abstract]", "terseLabel": "CASH FLOWS FROM FINANCING ACTIVITIES:" } } }, "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "auth_ref": [ "r76" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.", "label": "Net Cash Provided by (Used in) Investing Activities", "totalLabel": "Net cash used in investing activities" } } }, "localname": "NetCashProvidedByUsedInInvestingActivities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Investing Activities [Abstract]", "terseLabel": "CASH FLOWS FROM INVESTING ACTIVITIES:" } } }, "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "auth_ref": [ "r76", "r78", "r81" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.", "label": "Net Cash Provided by (Used in) Operating Activities", "totalLabel": "Net cash provided by operating activities" } } }, "localname": "NetCashProvidedByUsedInOperatingActivities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]", "terseLabel": "CASH FLOWS FROM OPERATING ACTIVITIES:" } } }, "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetIncomeLoss": { "auth_ref": [ "r2", "r47", "r48", "r52", "r56", "r81", "r88", "r98", "r100", "r101", "r102", "r103", "r106", "r107", "r122", "r153", "r159", "r163", "r166", "r169", "r180", "r240", "r241", "r242", "r245", "r246", "r247", "r249", "r251", "r253", "r254", "r430", "r447", "r506", "r519" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.", "label": "Net Income (Loss) Attributable to Parent", "totalLabel": "NET INCOME" } } }, "localname": "NetIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact.", "label": "New Accounting Pronouncements, Policy [Policy Text Block]", "terseLabel": "Recent Accounting Pronouncements" } } }, "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_NonoperatingIncomeExpense": { "auth_ref": [ "r64" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": { "order": 2.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).", "label": "Nonoperating Income (Expense)", "totalLabel": "Other income (expense)" } } }, "localname": "NonoperatingIncomeExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_NonoperatingIncomeExpenseAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Nonoperating Income (Expense) [Abstract]", "terseLabel": "OTHER INCOME (EXPENSE):" } } }, "localname": "NonoperatingIncomeExpenseAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "stringItemType" }, "us-gaap_NontradeReceivablesCurrent": { "auth_ref": [ "r42" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The sum of amounts currently receivable other than from customers. For classified balance sheets, represents the current amount receivable, that is amounts expected to be collected within one year or the normal operating cycle, if longer.", "label": "Nontrade Receivables, Current", "terseLabel": "Other receivables, less allowance for credit losses of $498 and $503, respectively" } } }, "localname": "NontradeReceivablesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_NotDesignatedAsHedgingInstrumentEconomicHedgeMember": { "auth_ref": [ "r420" ], "lang": { "en-us": { "role": { "documentation": "Derivative instrument, not designated as hedging instrument under Generally Accepted Accounting Principles (GAAP), used as economic hedge for exposure to risk.", "label": "Not Designated as Hedging Instrument, Economic Hedge [Member]" } } }, "localname": "NotDesignatedAsHedgingInstrumentEconomicHedgeMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_NotesAndLoansPayable": { "auth_ref": [ "r14", "r502", "r514" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Including the current and noncurrent portions, carrying value as of the balance sheet date of all notes and loans payable (with maturities initially due after one year or beyond the operating cycle if longer).", "label": "Notes and Loans Payable", "terseLabel": "Outstanding balance", "verboseLabel": "Notes issued to former owners" } } }, "localname": "NotesAndLoansPayable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsNotesToFormerOwnersDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_NumberOfReportableSegments": { "auth_ref": [ "r141" ], "lang": { "en-us": { "role": { "documentation": "Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements.", "label": "Number of Reportable Segments", "terseLabel": "Number of reportable segments" } } }, "localname": "NumberOfReportableSegments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails" ], "xbrltype": "integerItemType" }, "us-gaap_OperatingIncomeLoss": { "auth_ref": [ "r153", "r159", "r163", "r166", "r169" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": { "order": 1.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The net result for the period of deducting operating expenses from operating revenues.", "label": "Operating Income (Loss)", "totalLabel": "Operating income" } } }, "localname": "OperatingIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseExpense": { "auth_ref": [ "r465" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of operating lease expense. Excludes sublease income.", "label": "Operating Lease, Expense", "terseLabel": "Operating lease expense" } } }, "localname": "OperatingLeaseExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Operating Lease Liabilities, Payments Due [Abstract]", "terseLabel": "Maturities of lease liabilities:" } } }, "localname": "OperatingLeaseLiabilitiesPaymentsDueAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_OperatingLeaseLiability": { "auth_ref": [ "r463" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesLeasesDetailsCalc2": { "order": 1.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease.", "label": "Operating Lease, Liability", "totalLabel": "Total operating lease liabilities", "verboseLabel": "Present Value of Lease Liabilities" } } }, "localname": "OperatingLeaseLiability", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails", "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiabilityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Operating Lease, Liability [Abstract]", "terseLabel": "Operating lease liabilities:" } } }, "localname": "OperatingLeaseLiabilityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_OperatingLeaseLiabilityCurrent": { "auth_ref": [ "r463" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails": { "order": 1.0, "parentTag": "us-gaap_OperatingLeaseLiability", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.", "label": "Operating Lease, Liability, Current", "terseLabel": "Other current liabilities" } } }, "localname": "OperatingLeaseLiabilityCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList": { "auth_ref": [ "r464" ], "lang": { "en-us": { "role": { "documentation": "Indicates line item in statement of financial position that includes current operating lease liability.", "label": "Operating Lease, Liability, Current, Statement of Financial Position [Extensible List]" } } }, "localname": "OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails" ], "xbrltype": "enumerationSetItemType" }, "us-gaap_OperatingLeaseLiabilityNoncurrent": { "auth_ref": [ "r463" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails": { "order": 2.0, "parentTag": "us-gaap_OperatingLeaseLiability", "weight": 1.0 }, "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.", "label": "Operating Lease, Liability, Noncurrent", "terseLabel": "LEASE LIABILITIES", "verboseLabel": "Long-term operating lease liabilities" } } }, "localname": "OperatingLeaseLiabilityNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails", "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasePayments": { "auth_ref": [ "r467", "r471" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.", "label": "Operating Lease, Payments", "terseLabel": "Cash paid for amounts included in the measurement of operating lease liabilities" } } }, "localname": "OperatingLeasePayments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseRightOfUseAsset": { "auth_ref": [ "r462" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's right to use underlying asset under operating lease.", "label": "Operating Lease, Right-of-Use Asset", "terseLabel": "LEASE RIGHT-OF-USE ASSET", "verboseLabel": "Operating lease right-of-use assets" } } }, "localname": "OperatingLeaseRightOfUseAsset", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesSummaryOfOperatingLeaseAssetsAndLiabilitiesDetails", "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": { "auth_ref": [ "r474", "r476" ], "lang": { "en-us": { "role": { "documentation": "Weighted average discount rate for operating lease calculated at point in time.", "label": "Operating Lease, Weighted Average Discount Rate, Percent", "verboseLabel": "Weighted average discount rate for operating leases" } } }, "localname": "OperatingLeaseWeightedAverageDiscountRatePercent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails" ], "xbrltype": "percentItemType" }, "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": { "auth_ref": [ "r473", "r476" ], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Operating Lease, Weighted Average Remaining Lease Term", "terseLabel": "Weighted average remaining lease term" } } }, "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails" ], "xbrltype": "durationItemType" }, "us-gaap_OperatingSegmentsMember": { "auth_ref": [ "r158", "r159", "r160", "r161", "r163", "r169" ], "lang": { "en-us": { "role": { "documentation": "Identifies components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity.", "label": "Operating" } } }, "localname": "OperatingSegmentsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails" ], "xbrltype": "domainItemType" }, "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Business and Organization" } } }, "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_OtherAssetsNoncurrent": { "auth_ref": [ "r26" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 7.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of noncurrent assets classified as other.", "label": "Other Assets, Noncurrent", "terseLabel": "OTHER NONCURRENT ASSETS" } } }, "localname": "OtherAssetsNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherCustomerMember": { "auth_ref": [ "r523", "r525", "r527", "r528", "r532", "r538" ], "lang": { "en-us": { "role": { "documentation": "Customer classified as other.", "label": "Other" } } }, "localname": "OtherCustomerMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "us-gaap_OtherLiabilitiesCurrent": { "auth_ref": [ "r8", "r9", "r31", "r480" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 6.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities classified as other, due within one year or the normal operating cycle, if longer.", "label": "Other Liabilities, Current", "terseLabel": "Other current liabilities" } } }, "localname": "OtherLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherLiabilitiesNoncurrent": { "auth_ref": [ "r35" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.", "label": "Other Liabilities, Noncurrent", "terseLabel": "OTHER LONG-TERM LIABILITIES" } } }, "localname": "OtherLiabilitiesNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherNonoperatingIncomeExpense": { "auth_ref": [ "r65" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": { "order": 4.0, "parentTag": "us-gaap_NonoperatingIncomeExpense", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of income (expense) related to nonoperating activities, classified as other.", "label": "Other Nonoperating Income (Expense)", "terseLabel": "Other" } } }, "localname": "OtherNonoperatingIncomeExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities": { "auth_ref": [ "r74" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 11.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow, not made soon after acquisition date of business combination, to settle contingent consideration liability up to amount recognized at acquisition date, including, but not limited to, measurement period adjustment and less amount paid soon after acquisition date.", "label": "Payment for Contingent Consideration Liability, Financing Activities", "negatedLabel": "Payments for contingent consideration arrangements" } } }, "localname": "PaymentForContingentConsiderationLiabilityFinancingActivities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsForRent": { "auth_ref": [ "r77" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Cash payments to lessor's for use of assets under operating leases.", "label": "Payments for Rent", "terseLabel": "Rent paid to related parties" } } }, "localname": "PaymentsForRent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsForRepurchaseOfCommonStock": { "auth_ref": [ "r72" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 7.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow to reacquire common stock during the period.", "label": "Payments for Repurchase of Common Stock", "negatedLabel": "Share repurchase", "terseLabel": "Share repurchase" } } }, "localname": "PaymentsForRepurchaseOfCommonStock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails", "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsOfDividendsCommonStock": { "auth_ref": [ "r72" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 6.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow in the form of ordinary dividends to common shareholders of the parent entity.", "label": "Payments of Ordinary Dividends, Common Stock", "negatedLabel": "Payments of dividends to stockholders" } } }, "localname": "PaymentsOfDividendsCommonStock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": { "auth_ref": [ "r72" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 8.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.", "label": "Payments Related to Tax Withholding for Share-based Compensation", "negatedLabel": "Shares received in lieu of tax withholding" } } }, "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquireBusinessesGross": { "auth_ref": [ "r67", "r406" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails": { "order": 5.0, "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price.", "label": "Payments to Acquire Businesses, Gross", "terseLabel": "Purchase price paid in cash", "verboseLabel": "Cash paid at closing" } } }, "localname": "PaymentsToAcquireBusinessesGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails", "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": { "auth_ref": [ "r67" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.", "label": "Payments to Acquire Businesses, Net of Cash Acquired", "negatedLabel": "Cash paid for acquisitions, net of cash acquired" } } }, "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquireInvestments": { "auth_ref": [ "r69" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the purchase of all investments (debt, security, other) during the period.", "label": "Payments to Acquire Investments", "negatedLabel": "Payments for investments" } } }, "localname": "PaymentsToAcquireInvestments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "auth_ref": [ "r68" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.", "label": "Payments to Acquire Property, Plant, and Equipment", "negatedLabel": "Purchases of property and equipment", "terseLabel": "Capital Expenditures" } } }, "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails", "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PendingLitigationMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Risk of loss associated with the outcome of pending litigation against the entity, for example, but not limited to, litigation in arbitration or within the trial process.", "label": "Pending Litigation" } } }, "localname": "PendingLitigationMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_PerformanceGuaranteeMember": { "auth_ref": [ "r236" ], "lang": { "en-us": { "role": { "documentation": "An agreement (contract) that requires the guarantor to make payments to a guaranteed party based on another entity's failure to perform under an obligating agreement. This may include the issuance of a performance standby letter of credit which requires the guarantor to make payments if a specified party fails to perform under a nonfinancial contractual obligation.", "label": "Obligation to perform subcontract work" } } }, "localname": "PerformanceGuaranteeMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_PlanNameAxis": { "auth_ref": [ "r367", "r369" ], "lang": { "en-us": { "role": { "documentation": "Information by plan name for share-based payment arrangement.", "label": "Plan Name [Axis]" } } }, "localname": "PlanNameAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PlanNameDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Plan name for share-based payment arrangement.", "label": "Plan Name [Domain]" } } }, "localname": "PlanNameDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails" ], "xbrltype": "domainItemType" }, "us-gaap_PortionAtFairValueFairValueDisclosureMember": { "auth_ref": [ "r444" ], "lang": { "en-us": { "role": { "documentation": "Measured at fair value for financial reporting purposes.", "label": "Portion at Fair Value Measurement [Member]" } } }, "localname": "PortionAtFairValueFairValueDisclosureMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_PreferredStockParOrStatedValuePerShare": { "auth_ref": [ "r15", "r290" ], "lang": { "en-us": { "role": { "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.", "label": "Preferred Stock, Par or Stated Value Per Share", "terseLabel": "Preferred stock, par value (in dollars per share)" } } }, "localname": "PreferredStockParOrStatedValuePerShare", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "perShareItemType" }, "us-gaap_PreferredStockSharesAuthorized": { "auth_ref": [ "r15" ], "lang": { "en-us": { "role": { "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.", "label": "Preferred Stock, Shares Authorized", "terseLabel": "Preferred stock, shares authorized" } } }, "localname": "PreferredStockSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockSharesIssued": { "auth_ref": [ "r15", "r290" ], "lang": { "en-us": { "role": { "documentation": "Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt.", "label": "Preferred Stock, Shares Issued", "terseLabel": "Preferred stock, shares issued" } } }, "localname": "PreferredStockSharesIssued", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockSharesOutstanding": { "auth_ref": [ "r15" ], "lang": { "en-us": { "role": { "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased.", "label": "Preferred Stock, Shares Outstanding", "terseLabel": "Preferred stock, shares outstanding" } } }, "localname": "PreferredStockSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockValue": { "auth_ref": [ "r15", "r480" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.", "label": "Preferred Stock, Value, Issued", "verboseLabel": "Preferred stock, $.01 par, 5,000,000 shares authorized, none issued and outstanding" } } }, "localname": "PreferredStockValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": { "auth_ref": [ "r5", "r23", "r24" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 7.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.", "label": "Prepaid Expense and Other Assets, Current", "terseLabel": "Prepaid expenses and other" } } }, "localname": "PrepaidExpenseAndOtherAssetsCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromLongTermLinesOfCredit": { "auth_ref": [ "r71" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash inflow from a contractual arrangement with the lender, including letter of credit, standby letter of credit and revolving credit arrangements, under which borrowings can be made up to a specific amount at any point in time with maturities due beyond one year or the operating cycle, if longer.", "label": "Proceeds from Long-term Lines of Credit", "terseLabel": "Proceeds from revolving credit facility" } } }, "localname": "ProceedsFromLongTermLinesOfCredit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment": { "auth_ref": [ "r66" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.", "label": "Proceeds from Sale of Property, Plant, and Equipment", "terseLabel": "Proceeds from sales of property and equipment" } } }, "localname": "ProceedsFromSaleOfPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromStockOptionsExercised": { "auth_ref": [ "r70", "r370" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 9.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement.", "label": "Proceeds from Stock Options Exercised", "terseLabel": "Proceeds from exercise of options" } } }, "localname": "ProceedsFromStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProfitLoss": { "auth_ref": [ "r2", "r47", "r48", "r52", "r75", "r88", "r98", "r106", "r107", "r153", "r159", "r163", "r166", "r169", "r180", "r240", "r241", "r242", "r245", "r246", "r247", "r249", "r251", "r253", "r254", "r411", "r414", "r415", "r418", "r419", "r430", "r447", "r509" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 18.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest.", "label": "Net Income (Loss), Including Portion Attributable to Noncontrolling Interest", "terseLabel": "Net income", "verboseLabel": "Net income" } } }, "localname": "ProfitLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails", "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows", "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentNet": { "auth_ref": [ "r10", "r11", "r218", "r480", "r510", "r517" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.", "label": "Property, Plant and Equipment, Net", "terseLabel": "PROPERTY AND EQUIPMENT, NET" } } }, "localname": "PropertyPlantAndEquipmentNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProvisionForDoubtfulAccounts": { "auth_ref": [ "r58", "r188" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 14.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable.", "label": "Provision for Doubtful Accounts", "verboseLabel": "Bad debt expense (benefit)" } } }, "localname": "ProvisionForDoubtfulAccounts", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_RepaymentsOfLongTermLinesOfCredit": { "auth_ref": [ "r73" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow for the settlement of obligation drawn from a contractual arrangement with the lender, including letter of credit, standby letter of credit and revolving credit arrangements, under which borrowings can be made up to a specific amount at any point in time with maturities due beyond one year or the operating cycle, if longer.", "label": "Repayments of Long-term Lines of Credit", "negatedLabel": "Payments on revolving credit facility" } } }, "localname": "RepaymentsOfLongTermLinesOfCredit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_RepaymentsOfOtherDebt": { "auth_ref": [ "r73" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow for the payment of debt classified as other.", "label": "Repayments of Other Debt", "negatedLabel": "Payments on other debt" } } }, "localname": "RepaymentsOfOtherDebt", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_RepaymentsOfSeniorDebt": { "auth_ref": [ "r73" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow for a long-term debt where the holder has highest claim on the entity's asset in case of bankruptcy or liquidation during the period.", "label": "Repayments of Senior Debt", "negatedLabel": "Payments on term loan", "verboseLabel": "Payments on term loan" } } }, "localname": "RepaymentsOfSeniorDebt", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails", "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "auth_ref": [ "r18", "r310", "r374", "r480", "r515", "r536", "r537" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.", "label": "Retained Earnings (Accumulated Deficit)", "terseLabel": "Retained earnings" } } }, "localname": "RetainedEarningsAccumulatedDeficit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_RetainedEarningsMember": { "auth_ref": [ "r0", "r95", "r96", "r97", "r99", "r105", "r107", "r181", "r371", "r372", "r373", "r392", "r393", "r428", "r533", "r535" ], "lang": { "en-us": { "role": { "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.", "label": "Retained Earnings" } } }, "localname": "RetainedEarningsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_RevenueFromContractWithCustomerAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Revenue from Contracts with Customers" } } }, "localname": "RevenueFromContractWithCustomerAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_RevenueFromContractWithCustomerPolicyTextBlock": { "auth_ref": [ "r84", "r330", "r331", "r332", "r333", "r334", "r335", "r336", "r337", "r351" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for revenue from contract with customer.", "label": "Revenue from Contract with Customer [Policy Text Block]", "terseLabel": "Revenue Recognition" } } }, "localname": "RevenueFromContractWithCustomerPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_RevenueFromContractWithCustomerTextBlock": { "auth_ref": [ "r320", "r321", "r322", "r323", "r324", "r325", "r328", "r329", "r342", "r351" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts.", "label": "Revenue From Contract With Customer [Text Block]", "verboseLabel": "Revenue from Contracts with Customers" } } }, "localname": "RevenueFromContractWithCustomerTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomers" ], "xbrltype": "textBlockItemType" }, "us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Revenue, Initial Application Period Cumulative Effect Transition [Line Items]" } } }, "localname": "RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable": { "auth_ref": [ "r350" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information when using transition method for cumulative effect in initial period of application for revenue from contract with customer.", "label": "Revenue, Initial Application Period Cumulative Effect Transition [Table]" } } }, "localname": "RevenueInitialApplicationPeriodCumulativeEffectTransitionTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersContractAssetsAndLiabilitiesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RevenuePracticalExpedientRemainingPerformanceObligation": { "auth_ref": [ "r329" ], "lang": { "en-us": { "role": { "documentation": "Indicates (true false) whether optional exemption was applied not to disclose amount of transaction price allocated to and explanation of expected timing of revenue recognition for remaining performance obligation, when contract has expected duration of one year or less or right to consideration corresponds directly to performance completed.", "label": "Revenue, Practical Expedient, Remaining Performance Obligation [true/false]", "terseLabel": "Practical Expedient" } } }, "localname": "RevenuePracticalExpedientRemainingPerformanceObligation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" ], "xbrltype": "booleanItemType" }, "us-gaap_RevenueRemainingPerformanceObligation": { "auth_ref": [ "r326" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue.", "label": "Revenue, Remaining Performance Obligation", "terseLabel": "Remaining performance obligations" } } }, "localname": "RevenueRemainingPerformanceObligation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]", "terseLabel": "Remaining Performance Obligations" } } }, "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": { "auth_ref": [ "r327" ], "lang": { "en-us": { "role": { "documentation": "Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period", "terseLabel": "Expected timing of performance obligations" } } }, "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" ], "xbrltype": "durationItemType" }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": { "auth_ref": [ "r327" ], "lang": { "en-us": { "role": { "documentation": "Start date of time band for expected timing of satisfaction of remaining performance obligation, in YYYY-MM-DD format.", "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]" } } }, "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about expected timing for satisfying remaining performance obligation.", "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table]" } } }, "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RevenueRemainingPerformanceObligationPercentage": { "auth_ref": [ "r327" ], "lang": { "en-us": { "role": { "documentation": "Percentage of remaining performance obligation to total remaining performance obligation not recognized as revenue.", "label": "Revenue, Remaining Performance Obligation, Percentage", "terseLabel": "Expected percentage of remaining performance obligations" } } }, "localname": "RevenueRemainingPerformanceObligationPercentage", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersRemainingPerformanceObligationsDetails" ], "xbrltype": "percentItemType" }, "us-gaap_Revenues": { "auth_ref": [ "r54", "r88", "r144", "r145", "r158", "r164", "r165", "r171", "r172", "r174", "r180", "r240", "r241", "r242", "r245", "r246", "r247", "r249", "r251", "r253", "r254", "r447", "r509" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": { "order": 1.0, "parentTag": "us-gaap_GrossProfit", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).", "label": "Revenues", "terseLabel": "REVENUE", "verboseLabel": "Revenue" } } }, "localname": "Revenues", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails", "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails", "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_RevolvingCreditFacilityMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Arrangement in which loan proceeds can continuously be obtained following repayments, but the total amount borrowed cannot exceed a specified maximum amount.", "label": "Revolving credit facility" } } }, "localname": "RevolvingCreditFacilityMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsDetails", "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "domainItemType" }, "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": { "auth_ref": [ "r472", "r476" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability.", "label": "Right-of-Use Asset Obtained in Exchange for Operating Lease Liability", "terseLabel": "Operating lease right-of-use assets obtained in exchange for lease liabilities" } } }, "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureLeasesMaturitiesOfLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": { "auth_ref": [ "r399", "r400" ], "lang": { "en-us": { "role": { "documentation": "Schedule reflecting each material business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities.", "label": "Schedule of Business Acquisitions, by Acquisition [Table]" } } }, "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsDetails", "http://www.comfortsystemsusa.com/role/DisclosureAcquisitionsOtherAcquisitionsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfDebtTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "Schedule of Debt [Table Text Block]", "terseLabel": "Schedule of components of debt obligations" } } }, "localname": "ScheduleOfDebtTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock": { "auth_ref": [ "r431", "r432" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of assets and liabilities, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3).", "label": "Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block]", "terseLabel": "Summary of fair values and levels within the fair value hierarchy in which the fair value measurements fall for assets and liabilities measured on a recurring basis" } } }, "localname": "ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureFairValueMeasurementsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfGoodwillTable": { "auth_ref": [ "r206", "r207" ], "lang": { "en-us": { "role": { "documentation": "Schedule of goodwill and the changes during the year due to acquisition, sale, impairment or for other reasons.", "label": "Schedule of Goodwill [Table]" } } }, "localname": "ScheduleOfGoodwillTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetAdditionalInformationDetails", "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfGoodwillTextBlock": { "auth_ref": [ "r206", "r207" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule.", "label": "Schedule of Goodwill [Table Text Block]", "terseLabel": "Schedule of changes in the carrying amount of goodwill" } } }, "localname": "ScheduleOfGoodwillTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock": { "auth_ref": [ "r239" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of maturity and sinking fund requirement for long-term debt.", "label": "Schedule of Maturities of Long-term Debt [Table Text Block]", "terseLabel": "Schedule of future principal payments of notes to former owners" } } }, "localname": "ScheduleOfMaturitiesOfLongTermDebtTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable": { "auth_ref": [ "r153", "r156", "r162", "r206" ], "lang": { "en-us": { "role": { "documentation": "A table disclosing the profit or loss and total assets for each reportable segment of the entity. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss.", "label": "Schedule of Segment Reporting Information, by Segment [Table]" } } }, "localname": "ScheduleOfSegmentReportingInformationBySegmentTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock": { "auth_ref": [ "r153", "r156", "r162", "r206" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss.", "label": "Schedule of Segment Reporting Information, by Segment [Table Text Block]", "terseLabel": "Summary of information about reportable segments" } } }, "localname": "ScheduleOfSegmentReportingInformationBySegmentTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": { "auth_ref": [ "r367", "r369" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about share-based payment arrangement.", "label": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]" } } }, "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock": { "auth_ref": [ "r127" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the weighted average number of shares used in calculating basic net earnings per share (or unit) and diluted earnings per share (or unit).", "label": "Schedule of Weighted Average Number of Shares [Table Text Block]", "terseLabel": "Reconciliation of number of shares outstanding with the number of shares used in computing basic and diluted earnings per share" } } }, "localname": "ScheduleOfWeightedAverageNumberOfSharesTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": { "auth_ref": [ "r211" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets.", "label": "Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]", "terseLabel": "Schedule of future amortization expense of identifiable intangible assets" } } }, "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_SegmentDomain": { "auth_ref": [ "r140", "r144", "r145", "r146", "r147", "r148", "r149", "r150", "r151", "r152", "r153", "r154", "r155", "r158", "r159", "r160", "r161", "r163", "r164", "r165", "r166", "r167", "r169", "r174", "r221", "r222", "r524" ], "lang": { "en-us": { "role": { "documentation": "Components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity.", "label": "Segments [Domain]" } } }, "localname": "SegmentDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails", "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails", "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SegmentReportingAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Segment Information" } } }, "localname": "SegmentReportingAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_SegmentReportingDisclosureTextBlock": { "auth_ref": [ "r140", "r142", "r143", "r153", "r157", "r163", "r167", "r168", "r169", "r170", "r171", "r173", "r174", "r175" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.", "label": "Segment Reporting Disclosure [Text Block]", "terseLabel": "Segment Information" } } }, "localname": "SegmentReportingDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformation" ], "xbrltype": "textBlockItemType" }, "us-gaap_SegmentReportingInformationLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Segment Reporting Information [Line Items]", "terseLabel": "Segment Information" } } }, "localname": "SegmentReportingInformationLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SelfInsuranceReserveCurrent": { "auth_ref": [], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying amount of accrued known and estimated losses incurred as of the balance sheet date for which no insurance coverage exists, and for which a claim has been made or is probable of being asserted, typically arising from workmen's compensation-type of incidents and personal injury to nonemployees from accidents on the entity's property that are expected to be paid within one year (or the normal operating cycle, if longer).", "label": "Self Insurance Reserve, Current", "terseLabel": "Accrued self-insurance" } } }, "localname": "SelfInsuranceReserveCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_SellingGeneralAndAdministrativeExpense": { "auth_ref": [ "r62" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations": { "order": 2.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc.", "label": "Selling, General and Administrative Expense", "terseLabel": "SELLING, GENERAL AND ADMINISTRATIVE EXPENSES" } } }, "localname": "SellingGeneralAndAdministrativeExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensation": { "auth_ref": [ "r79" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 9.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of noncash expense for share-based payment arrangement.", "label": "Share-based Compensation", "terseLabel": "Stock-based compensation" } } }, "localname": "ShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails", "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]", "terseLabel": "Stockholders' Equity" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement.", "label": "Shares Paid for Tax Withholding for Share Based Compensation", "negatedLabel": "Shares received in lieu of tax withholding payment on vested restricted stock (in shares)" } } }, "localname": "SharesPaidForTaxWithholdingForShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_StatementBusinessSegmentsAxis": { "auth_ref": [ "r1", "r140", "r144", "r145", "r146", "r147", "r148", "r149", "r150", "r151", "r152", "r153", "r154", "r155", "r158", "r159", "r160", "r161", "r163", "r164", "r165", "r166", "r167", "r169", "r174", "r206", "r220", "r221", "r222", "r524" ], "lang": { "en-us": { "role": { "documentation": "Information by business segments.", "label": "Segments [Axis]" } } }, "localname": "StatementBusinessSegmentsAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureGoodwillAndIdentifiableIntangibleAssetsNetChangesInCarryingAmountOfGoodwillDetails", "http://www.comfortsystemsusa.com/role/DisclosureRevenueFromContractsWithCustomersDisaggregationOfRevenueDetails", "http://www.comfortsystemsusa.com/role/DisclosureSegmentInformationDetails" ], "xbrltype": "stringItemType" }, "us-gaap_StatementEquityComponentsAxis": { "auth_ref": [ "r0", "r38", "r50", "r51", "r52", "r95", "r96", "r97", "r99", "r105", "r107", "r130", "r181", "r305", "r310", "r371", "r372", "r373", "r392", "r393", "r428", "r449", "r450", "r451", "r452", "r453", "r454", "r533", "r534", "r535", "r548" ], "lang": { "en-us": { "role": { "documentation": "Information by component of equity.", "label": "Equity Components [Axis]" } } }, "localname": "StatementEquityComponentsAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StatementLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Statement [Line Items]", "terseLabel": "Statement" } } }, "localname": "StatementLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables", "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StatementOfCashFlowsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CONSOLIDATED STATEMENTS OF CASH FLOWS" } } }, "localname": "StatementOfCashFlowsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementOfFinancialPositionAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CONSOLIDATED BALANCE SHEETS" } } }, "localname": "StatementOfFinancialPositionAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementOfStockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY" } } }, "localname": "StatementOfStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementTable": { "auth_ref": [ "r95", "r96", "r97", "r130", "r496" ], "lang": { "en-us": { "role": { "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed.", "label": "Statement [Table]" } } }, "localname": "StatementTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsTables", "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StockIssuedDuringPeriodSharebasedCompensationAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Stock Issued or Granted During Period, Share-based Compensation [Abstract]", "terseLabel": "Issuance of Stock:" } } }, "localname": "StockIssuedDuringPeriodSharebasedCompensationAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": { "auth_ref": [ "r15", "r16", "r305", "r310", "r368" ], "lang": { "en-us": { "role": { "documentation": "Number of share options (or share units) exercised during the current period.", "label": "Exercised (in shares)", "terseLabel": "Issuance of shares for options exercised (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": { "auth_ref": [ "r38", "r305", "r310" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Value of stock issued as a result of the exercise of stock options.", "label": "Stock Issued During Period, Value, Stock Options Exercised", "terseLabel": "Issuance of shares for options exercised" } } }, "localname": "StockIssuedDuringPeriodValueStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The number of shares authorized to be repurchased by an entity's Board of Directors under a stock repurchase plan.", "label": "Stock Repurchase Program, Number of Shares Authorized to be Repurchased", "terseLabel": "Number of shares of outstanding common stock authorized to be acquired under a stock repurchase program" } } }, "localname": "StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_StockholdersEquity": { "auth_ref": [ "r16", "r19", "r20", "r88", "r177", "r180", "r447", "r480" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.", "label": "Stockholders' Equity Attributable to Parent", "periodEndLabel": "BALANCE", "periodStartLabel": "BALANCE", "totalLabel": "Total stockholders' equity" } } }, "localname": "StockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets", "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Stockholders' Equity, Including Portion Attributable to Noncontrolling Interest [Abstract]", "verboseLabel": "STOCKHOLDERS' EQUITY:" } } }, "localname": "StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_StockholdersEquityNoteAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Stockholders' Equity" } } }, "localname": "StockholdersEquityNoteAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_StockholdersEquityNoteDisclosureTextBlock": { "auth_ref": [ "r86", "r291", "r294", "r295", "r296", "r297", "r298", "r299", "r300", "r301", "r302", "r303", "r304", "r310", "r313" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for shareholders' equity comprised of portions attributable to the parent entity and noncontrolling interest, including other comprehensive income. Includes, but is not limited to, balances of common stock, preferred stock, additional paid-in capital, other capital and retained earnings, accumulated balance for each classification of other comprehensive income and amount of comprehensive income.", "label": "Stockholders' Equity Note Disclosure [Text Block]", "terseLabel": "Stockholders' Equity." } } }, "localname": "StockholdersEquityNoteDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquity" ], "xbrltype": "textBlockItemType" }, "us-gaap_SubsequentEventLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Detail information of subsequent event by type. User is expected to use existing line items from elsewhere in the taxonomy as the primary line items for this disclosure, which is further associated with dimension and member elements pertaining to a subsequent event.", "label": "Subsequent Event [Line Items]", "terseLabel": "Subsequent Events" } } }, "localname": "SubsequentEventLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSubsequentEventDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SubsequentEventMember": { "auth_ref": [ "r455", "r482" ], "lang": { "en-us": { "role": { "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued.", "label": "Subsequent events" } } }, "localname": "SubsequentEventMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSubsequentEventDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SubsequentEventTable": { "auth_ref": [ "r455", "r482" ], "lang": { "en-us": { "role": { "documentation": "Discloses pertinent information about one or more 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.", "label": "Subsequent Event [Table]" } } }, "localname": "SubsequentEventTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSubsequentEventDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SubsequentEventTypeAxis": { "auth_ref": [ "r455", "r482" ], "lang": { "en-us": { "role": { "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued.", "label": "Subsequent Event Type [Axis]" } } }, "localname": "SubsequentEventTypeAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSubsequentEventDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SubsequentEventTypeDomain": { "auth_ref": [ "r455", "r482" ], "lang": { "en-us": { "role": { "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued.", "label": "Subsequent Event Type [Domain]" } } }, "localname": "SubsequentEventTypeDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSubsequentEventDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SubsequentEventsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Subsequent Events." } } }, "localname": "SubsequentEventsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_SubsequentEventsTextBlock": { "auth_ref": [ "r481", "r483" ], "lang": { "en-us": { "role": { "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.", "label": "Subsequent Events [Text Block]", "verboseLabel": "Subsequent Event" } } }, "localname": "SubsequentEventsTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSubsequentEvent" ], "xbrltype": "textBlockItemType" }, "us-gaap_SuretyBondMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "An obligation arising from a three-party agreement that legally binds together a principal who needs the bond, an obligee who requires the bond and a surety company that sells the bond.", "label": "Surety" } } }, "localname": "SuretyBondMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureCommitmentsAndContingenciesOtherAndBondsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_TaxCreditCarryforwardAxis": { "auth_ref": [ "r389" ], "lang": { "en-us": { "role": { "documentation": "Information by specific tax credit related to an unused tax credit.", "label": "Tax Credit Carryforward [Axis]" } } }, "localname": "TaxCreditCarryforwardAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_TaxCreditCarryforwardNameDomain": { "auth_ref": [ "r389" ], "lang": { "en-us": { "role": { "documentation": "The name of the tax credit carryforward.", "label": "Tax Credit Carryforward, Name [Domain]" } } }, "localname": "TaxCreditCarryforwardNameDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_TaxPeriodAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information about the period subject to enacted tax laws.", "label": "Tax Period [Axis]" } } }, "localname": "TaxPeriodAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_TaxPeriodDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Identified tax period.", "label": "Tax Period [Domain]" } } }, "localname": "TaxPeriodDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_TaxYear2016Member": { "auth_ref": [ "r382" ], "lang": { "en-us": { "role": { "documentation": "Identified as tax year 2016.", "label": "Tax Year 2016" } } }, "localname": "TaxYear2016Member", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_TaxYear2017Member": { "auth_ref": [ "r382" ], "lang": { "en-us": { "role": { "documentation": "Identified as tax year 2017.", "label": "Tax Year 2017" } } }, "localname": "TaxYear2017Member", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_TaxYear2018Member": { "auth_ref": [ "r382" ], "lang": { "en-us": { "role": { "documentation": "Identified as tax year 2018.", "label": "Tax Year 2018" } } }, "localname": "TaxYear2018Member", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_TreasuryStockAcquiredAverageCostPerShare": { "auth_ref": [ "r311" ], "lang": { "en-us": { "role": { "documentation": "Total cost of shares repurchased divided by the total number of shares repurchased.", "label": "Treasury Stock Acquired, Average Cost Per Share", "terseLabel": "Average price (in dollars per share)" } } }, "localname": "TreasuryStockAcquiredAverageCostPerShare", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_TreasuryStockMember": { "auth_ref": [ "r37", "r311" ], "lang": { "en-us": { "role": { "documentation": "Shares of an entity that have been repurchased by the entity. This stock has no voting rights and receives no dividends. Note that treasury stock may be recorded at its total cost or separately as par (or stated) value and additional paid in capital. Classified within stockholders' equity if nonredeemable or redeemable solely at the option of the issuer. Classified within temporary equity if redemption is outside the control of the issuer.", "label": "Treasury Stock" } } }, "localname": "TreasuryStockMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_TreasuryStockShares": { "auth_ref": [ "r37", "r311" ], "lang": { "en-us": { "role": { "documentation": "Number of common and preferred shares that were previously issued and that were repurchased by the issuing entity and held in treasury on the financial statement date. This stock has no voting rights and receives no dividends.", "label": "Treasury Stock, Shares", "periodEndLabel": "BALANCE (in shares)", "periodStartLabel": "BALANCE (in shares)", "terseLabel": "Treasury stock, shares" } } }, "localname": "TreasuryStockShares", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheetsParenthetical", "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_TreasuryStockSharesAcquired": { "auth_ref": [ "r16", "r305", "r310" ], "lang": { "en-us": { "role": { "documentation": "Number of shares that have been repurchased during the period and are being held in treasury.", "label": "Treasury Stock, Shares, Acquired", "negatedLabel": "Share repurchase (in shares)", "verboseLabel": "Share repurchase (in shares)" } } }, "localname": "TreasuryStockSharesAcquired", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityIncentiveAndOtherDetails", "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_TreasuryStockValue": { "auth_ref": [ "r37", "r311", "r312" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_StockholdersEquity", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury.", "label": "Treasury Stock, Value", "negatedLabel": "Treasury stock, at cost, 5,170,410 and 5,032,311 shares, respectively" } } }, "localname": "TreasuryStockValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_TreasuryStockValueAcquiredCostMethod": { "auth_ref": [ "r305", "r310", "r311" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Equity impact of the cost of common and preferred stock that were repurchased during the period. Recorded using the cost method.", "label": "Treasury Stock, Value, Acquired, Cost Method", "negatedLabel": "Share repurchase" } } }, "localname": "TreasuryStockValueAcquiredCostMethod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnbilledContractsReceivable": { "auth_ref": [ "r39", "r495" ], "calculation": { "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Unbilled amounts due for services rendered or to be rendered, actions taken or to be taken, or a promise to refrain from taking certain actions in accordance with the terms of a legally binding agreement between the entity and, at a minimum, one other party. An example would be amounts associated with contracts or programs where the recognized revenue for performance thereunder exceeds the amounts billed under the terms thereof as of the date of the balance sheet.", "label": "Unbilled Contracts Receivable", "terseLabel": "Unbilled accounts receivable, less allowance for credit losses of $751 and $715, respectively" } } }, "localname": "UnbilledContractsReceivable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities": { "auth_ref": [ "r385" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of decrease in unrecognized tax benefits resulting from settlements with taxing authorities.", "label": "Unrecognized Tax Benefits, Decrease Resulting from Settlements with Taxing Authorities", "terseLabel": "Reduced provision for income taxes" } } }, "localname": "UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions": { "auth_ref": [ "r384" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.", "label": "Unrecognized Tax Benefits, Increase Resulting from Prior Period Tax Positions", "terseLabel": "Additions based on tax positions related to prior years" } } }, "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UseOfEstimates": { "auth_ref": [ "r132", "r133", "r134", "r135", "r136", "r137", "r138" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.", "label": "Use of Estimates, Policy [Policy Text Block]", "terseLabel": "Use of Estimates" } } }, "localname": "UseOfEstimates", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureSummaryOfSignificantAccountingPoliciesAndEstimatesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_VariableRateAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by type of variable rate.", "label": "Variable Rate [Axis]" } } }, "localname": "VariableRateAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "stringItemType" }, "us-gaap_VariableRateDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Interest rate that fluctuates over time as a result of an underlying benchmark interest rate or index.", "label": "Variable Rate [Domain]" } } }, "localname": "VariableRateDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureDebtObligationsOtherDetails" ], "xbrltype": "domainItemType" }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "auth_ref": [ "r109", "r125" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "lang": { "en-us": { "role": { "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.", "label": "Weighted Average Number of Shares Outstanding, Diluted", "terseLabel": "Diluted", "totalLabel": "Shares used in computing earnings per share-diluted" } } }, "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails", "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "sharesItemType" }, "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Weighted Average Number of Shares Outstanding, Diluted [Abstract]", "terseLabel": "SHARES USED IN COMPUTING INCOME PER SHARE:" } } }, "localname": "WeightedAverageNumberOfSharesOutstandingAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "stringItemType" }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "auth_ref": [ "r108", "r125" ], "calculation": { "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails": { "order": 3.0, "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.", "label": "Weighted Average Number of Shares Outstanding, Basic", "terseLabel": "Basic", "verboseLabel": "Shares used in computing earnings per share-basic" } } }, "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails", "http://www.comfortsystemsusa.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "sharesItemType" }, "us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Weighted Average Number of Shares Outstanding Reconciliation [Abstract]", "terseLabel": "Reconciliation of the number of shares outstanding with the number of shares used in computing basic and diluted earnings per share" } } }, "localname": "WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.comfortsystemsusa.com/role/DisclosureStockholdersEquityNumberOfSharesDetails" ], "xbrltype": "stringItemType" } }, "unitCount": 8 } }, "std_ref": { "r0": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "105", "URI": "http://asc.fasb.org/extlink&oid=124434974&loc=SL124442142-165695" }, "r1": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "205", "URI": "http://asc.fasb.org/extlink&oid=109222650&loc=d3e1361-107760" }, "r10": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(13))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r100": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794" }, "r101": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794" }, "r102": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22583-107794" }, "r103": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22595-107794" }, "r104": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794" }, "r105": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794" }, "r106": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22658-107794" }, "r107": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22663-107794" }, "r108": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1448-109256" }, "r109": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1505-109256" }, "r11": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(14))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r110": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1252-109256" }, "r111": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1707-109256" }, "r112": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1757-109256" }, "r113": { "Name": "Accounting Standards Codification", "Paragraph": "26", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1828-109256" }, "r114": { "Name": "Accounting Standards Codification", "Paragraph": "28A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1500-109256" }, "r115": { "Name": "Accounting Standards Codification", "Paragraph": "44", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e2062-109256" }, "r116": { "Name": "Accounting Standards Codification", "Paragraph": "48", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e2538-109256" }, "r117": { "Name": "Accounting Standards Codification", "Paragraph": "48", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e2538-109256" }, "r118": { "Name": "Accounting Standards Codification", "Paragraph": "51", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e2574-109256" }, "r119": { "Name": "Accounting Standards Codification", "Paragraph": "52", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e2597-109256" }, "r12": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(19))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r120": { "Name": "Accounting Standards Codification", "Paragraph": "53", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e2600-109256" }, "r121": { "Name": "Accounting Standards Codification", "Paragraph": "54", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e2603-109256" }, "r122": { "Name": "Accounting Standards Codification", "Paragraph": "60B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=SL5780133-109256" }, "r123": { "Name": "Accounting Standards Codification", "Paragraph": "60B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=SL5780133-109256" }, "r124": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1337-109256" }, "r125": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257" }, "r126": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257" }, "r127": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257" }, "r128": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125512782&loc=d3e3842-109258" }, "r129": { "Name": "Accounting Standards Codification", "Paragraph": "52", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125512782&loc=d3e4984-109258" }, "r13": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(20))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r130": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "272", "URI": "http://asc.fasb.org/extlink&oid=125520817&loc=d3e70191-108054" }, "r131": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r132": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r133": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r134": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6161-108592" }, "r135": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6191-108592" }, "r136": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6061-108592" }, "r137": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6132-108592" }, "r138": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6143-108592" }, "r139": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "275", "URI": "http://asc.fasb.org/topic&trid=2134479" }, "r14": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(22))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r140": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8657-108599" }, "r141": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8672-108599" }, "r142": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8721-108599" }, "r143": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8721-108599" }, "r144": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r145": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r146": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r147": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r148": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r149": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r15": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(28))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r150": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r151": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r152": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(j)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r153": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r154": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8813-108599" }, "r155": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8813-108599" }, "r156": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8813-108599" }, "r157": { "Name": "Accounting Standards Codification", "Paragraph": "26", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8844-108599" }, "r158": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599" }, "r159": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599" }, "r16": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(29))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r160": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599" }, "r161": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599" }, "r162": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599" }, "r163": { "Name": "Accounting Standards Codification", "Paragraph": "31", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8924-108599" }, "r164": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r165": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r166": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r167": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r168": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r169": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r17": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(1))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r170": { "Name": "Accounting Standards Codification", "Paragraph": "34", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8981-108599" }, "r171": { "Name": "Accounting Standards Codification", "Paragraph": "40", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9031-108599" }, "r172": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9038-108599" }, "r173": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9038-108599" }, "r174": { "Name": "Accounting Standards Codification", "Paragraph": "42", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9054-108599" }, "r175": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "280", "URI": "http://asc.fasb.org/topic&trid=2134510" }, "r176": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=d3e5074-111524" }, "r177": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 4.E)", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=122038336&loc=d3e74512-122707" }, "r178": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "321", "URI": "http://asc.fasb.org/extlink&oid=123583765&loc=SL75117539-209714" }, "r179": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "321", "URI": "http://asc.fasb.org/extlink&oid=123583765&loc=SL75117539-209714" }, "r18": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(3))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r180": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "323", "URI": "http://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571" }, "r181": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437" }, "r182": { "Name": "Accounting Standards Codification", "Paragraph": "4A", "Publisher": "FASB", "Section": "30", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124256539&loc=SL120269210-210444" }, "r183": { "Name": "Accounting Standards Codification", "Paragraph": "5A", "Publisher": "FASB", "Section": "30", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124256539&loc=SL120254536-210444" }, "r184": { "Name": "Accounting Standards Codification", "Paragraph": "8A", "Publisher": "FASB", "Section": "35", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124266218&loc=SL120267834-210445" }, "r185": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255206&loc=SL82895884-210446" }, "r186": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255206&loc=SL120267845-210446" }, "r187": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919244-210447" }, "r188": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447" }, "r189": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919253-210447" }, "r19": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r190": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919260-210447" }, "r191": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919272-210447" }, "r192": { "Name": "Accounting Standards Codification", "Paragraph": "3C", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL120267966-210447" }, "r193": { "Name": "Accounting Standards Codification", "Paragraph": "3D", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL120267969-210447" }, "r194": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "20", "Subparagraph": "(SAB Topic 6.M.Q4)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=122651532&loc=SL122037091-237805" }, "r195": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "30", "SubTopic": "30", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124268681&loc=SL120267897-210452" }, "r196": { "Name": "Accounting Standards Codification", "Paragraph": "13A", "Publisher": "FASB", "Section": "35", "SubTopic": "30", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=125515542&loc=SL120267917-210453" }, "r197": { "Name": "Accounting Standards Codification", "Paragraph": "7A", "Publisher": "FASB", "Section": "35", "SubTopic": "30", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=125515542&loc=SL120269220-210453" }, "r198": { "Name": "Accounting Standards Codification", "Paragraph": "3A", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124269663&loc=SL120267853-210455" }, "r199": { "Name": "Accounting Standards Codification", "Paragraph": "3C", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124269663&loc=SL120267859-210455" }, "r2": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "205", "URI": "http://asc.fasb.org/extlink&oid=109222650&loc=SL51721683-107760" }, "r20": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(31))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r200": { "Name": "Accounting Standards Codification", "Paragraph": "3D", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124269663&loc=SL120267862-210455" }, "r201": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124269663&loc=SL82922895-210455" }, "r202": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=99380562&loc=d3e13770-109266" }, "r203": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=120320667&loc=SL49117168-202975" }, "r204": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267" }, "r205": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267" }, "r206": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267" }, "r207": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13854-109267" }, "r208": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=6388964&loc=d3e16212-109274" }, "r209": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=6388964&loc=d3e16225-109274" }, "r21": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(32))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r210": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "((a)(1),(b))", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r211": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r212": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(1)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r213": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(2)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r214": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(3)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r215": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "350", "URI": "http://asc.fasb.org/topic&trid=2144416" }, "r216": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=123351718&loc=d3e2443-110228" }, "r217": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r218": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r219": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230" }, "r22": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(4)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r220": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230" }, "r221": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "420", "URI": "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869" }, "r222": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 5.P.4(d))", "Topic": "420", "URI": "http://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747" }, "r223": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "440", "URI": "http://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308" }, "r224": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "440", "URI": "http://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308" }, "r225": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "440", "URI": "http://asc.fasb.org/topic&trid=2144648" }, "r226": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14326-108349" }, "r227": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14615-108349" }, "r228": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14394-108349" }, "r229": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14435-108349" }, "r23": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(7))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r230": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14435-108349" }, "r231": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14453-108349" }, "r232": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14472-108349" }, "r233": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14557-108349" }, "r234": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14557-108349" }, "r235": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "450", "URI": "http://asc.fasb.org/topic&trid=2127136" }, "r236": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "15", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=123389529&loc=d3e10037-110241" }, "r237": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=124440162&loc=d3e12021-110248" }, "r238": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=124440162&loc=d3e12053-110248" }, "r239": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123465755&loc=d3e1835-112601" }, "r24": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(8))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r240": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(i))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r241": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(ii))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r242": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r243": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(B))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r244": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r245": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iv))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r246": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(5))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r247": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(i))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r248": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r249": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r25": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.1)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r250": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r251": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r252": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(C))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r253": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iv))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r254": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(5))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r255": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611" }, "r256": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611" }, "r257": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611" }, "r258": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611" }, "r259": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611" }, "r26": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.17)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r260": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(f)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611" }, "r261": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611" }, "r262": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(h)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611" }, "r263": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(i)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611" }, "r264": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611" }, "r265": { "Name": "Accounting Standards Codification", "Paragraph": "1C", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495334-112611" }, "r266": { "Name": "Accounting Standards Codification", "Paragraph": "1C", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495334-112611" }, "r267": { "Name": "Accounting Standards Codification", "Paragraph": "1C", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495334-112611" }, "r268": { "Name": "Accounting Standards Codification", "Paragraph": "1D", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611" }, "r269": { "Name": "Accounting Standards Codification", "Paragraph": "1D", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611" }, "r27": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19(a))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r270": { "Name": "Accounting Standards Codification", "Paragraph": "1D", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611" }, "r271": { "Name": "Accounting Standards Codification", "Paragraph": "1E", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611" }, "r272": { "Name": "Accounting Standards Codification", "Paragraph": "1E", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611" }, "r273": { "Name": "Accounting Standards Codification", "Paragraph": "1E", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611" }, "r274": { "Name": "Accounting Standards Codification", "Paragraph": "1E", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611" }, "r275": { "Name": "Accounting Standards Codification", "Paragraph": "1F", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611" }, "r276": { "Name": "Accounting Standards Codification", "Paragraph": "1F", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611" }, "r277": { "Name": "Accounting Standards Codification", "Paragraph": "1F", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(1)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611" }, "r278": { "Name": "Accounting Standards Codification", "Paragraph": "1F", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611" }, "r279": { "Name": "Accounting Standards Codification", "Paragraph": "1I", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611" }, "r28": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19(b),22(b))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r280": { "Name": "Accounting Standards Codification", "Paragraph": "1I", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611" }, "r281": { "Name": "Accounting Standards Codification", "Paragraph": "1I", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611" }, "r282": { "Name": "Accounting Standards Codification", "Paragraph": "1I", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611" }, "r283": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466204&loc=SL6031897-161870" }, "r284": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(3)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466204&loc=SL6031897-161870" }, "r285": { "Name": "Accounting Standards Codification", "Paragraph": "69B", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466577&loc=SL123495735-112612" }, "r286": { "Name": "Accounting Standards Codification", "Paragraph": "69C", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466577&loc=SL123495737-112612" }, "r287": { "Name": "Accounting Standards Codification", "Paragraph": "69E", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466577&loc=SL123495743-112612" }, "r288": { "Name": "Accounting Standards Codification", "Paragraph": "69F", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466577&loc=SL123495745-112612" }, "r289": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "470", "URI": "http://asc.fasb.org/topic&trid=2208564" }, "r29": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19,20)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r290": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r291": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r292": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r293": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r294": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r295": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r296": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(i)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r297": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r298": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496171-112644" }, "r299": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496171-112644" }, "r3": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r30": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19-26)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r300": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496171-112644" }, "r301": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496180-112644" }, "r302": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496189-112644" }, "r303": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496189-112644" }, "r304": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496189-112644" }, "r305": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21463-112644" }, "r306": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21475-112644" }, "r307": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21506-112644" }, "r308": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21521-112644" }, "r309": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21538-112644" }, "r31": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.20)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r310": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.3-04)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770" }, "r311": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=6405813&loc=d3e23239-112655" }, "r312": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=6405834&loc=d3e23315-112656" }, "r313": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "505", "URI": "http://asc.fasb.org/topic&trid=2208762" }, "r314": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123360276&loc=SL49130531-203044" }, "r315": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123360276&loc=SL49130532-203044" }, "r316": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123360276&loc=SL49130533-203044" }, "r317": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123360276&loc=SL49130534-203044" }, "r318": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130551-203045" }, "r319": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130551-203045" }, "r32": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.21)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r320": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130551-203045" }, "r321": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045" }, "r322": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045" }, "r323": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045" }, "r324": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045" }, "r325": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045" }, "r326": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130556-203045" }, "r327": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(1)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130556-203045" }, "r328": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(2)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130556-203045" }, "r329": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130558-203045" }, "r33": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.22(a)(1))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r330": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130561-203045" }, "r331": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130563-203045" }, "r332": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130563-203045" }, "r333": { "Name": "Accounting Standards Codification", "Paragraph": "19", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130564-203045" }, "r334": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130566-203045" }, "r335": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130566-203045" }, "r336": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130566-203045" }, "r337": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130566-203045" }, "r338": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130543-203045" }, "r339": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130545-203045" }, "r34": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.22)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r340": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130549-203045" }, "r341": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130549-203045" }, "r342": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130550-203045" }, "r343": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r344": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r345": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r346": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r347": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r348": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r349": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r35": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.24)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r350": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(i)(1)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123338486&loc=SL49131195-203048" }, "r351": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "606", "URI": "http://asc.fasb.org/topic&trid=49130388" }, "r352": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(i)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r353": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(ii)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r354": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(01)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r355": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r356": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(A)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r357": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(B)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r358": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(C)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r359": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(03)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r36": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.25)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r360": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123450688&loc=d3e4179-114921" }, "r361": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(a)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450702-114947" }, "r362": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(d)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947" }, "r363": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(a)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450673-114947" }, "r364": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "55", "SubTopic": "80", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=35742348&loc=SL14450788-114948" }, "r365": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "35", "SubTopic": "10", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=123468992&loc=d3e4534-113899" }, "r366": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901" }, "r367": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901" }, "r368": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r369": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r37": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.29,30)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r370": { "Name": "Accounting Standards Codification", "Paragraph": "2A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=SL79508275-113901" }, "r371": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r372": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(f)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r373": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(f)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r374": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(g)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r375": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=122142933&loc=d3e11149-113907" }, "r376": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=122142933&loc=d3e11178-113907" }, "r377": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e32247-109318" }, "r378": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e32280-109318" }, "r379": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e31917-109318" }, "r38": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.29-31)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r380": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e31931-109318" }, "r381": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32672-109319" }, "r382": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319" }, "r383": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319" }, "r384": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319" }, "r385": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(3)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319" }, "r386": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32809-109319" }, "r387": { "Name": "Accounting Standards Codification", "Paragraph": "19", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32840-109319" }, "r388": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32847-109319" }, "r389": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32559-109319" }, "r39": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.3(c)(3))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r390": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319" }, "r391": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319" }, "r392": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)(2)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123459177&loc=SL121830611-158277" }, "r393": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)(3)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123459177&loc=SL121830611-158277" }, "r394": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB TOPIC 6.I.7)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r395": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.7)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r396": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.1)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r397": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.2)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r398": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123586238&loc=d3e38679-109324" }, "r399": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463" }, "r4": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r40": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.3(c))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r400": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1486-128463" }, "r401": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=123413009&loc=d3e4845-128472" }, "r402": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "25", "SubTopic": "30", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=6911189&loc=d3e6405-128476" }, "r403": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "30", "SubTopic": "30", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=116859721&loc=d3e6578-128477" }, "r404": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "30", "SubTopic": "30", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=116859721&loc=d3e6613-128477" }, "r405": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479" }, "r406": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)(1)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479" }, "r407": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)(2)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479" }, "r408": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)(3)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479" }, "r409": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(1)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e7008-128479" }, "r41": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.6(a))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r410": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "805", "URI": "http://asc.fasb.org/topic&trid=2303972" }, "r411": { "Name": "Accounting Standards Codification", "Paragraph": "19", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=123454820&loc=SL4569616-111683" }, "r412": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988" }, "r413": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988" }, "r414": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684" }, "r415": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684" }, "r416": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bb)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685" }, "r417": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685" }, "r418": { "Name": "Accounting Standards Codification", "Paragraph": "4J", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=120409616&loc=SL4591551-111686" }, "r419": { "Name": "Accounting Standards Codification", "Paragraph": "4K", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=120409616&loc=SL4591552-111686" }, "r42": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.8)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r420": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=d3e41620-113959" }, "r421": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=d3e41620-113959" }, "r422": { "Name": "Accounting Standards Codification", "Paragraph": "4A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5618551-113959" }, "r423": { "Name": "Accounting Standards Codification", "Paragraph": "4B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624163-113959" }, "r424": { "Name": "Accounting Standards Codification", "Paragraph": "4C", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624171-113959" }, "r425": { "Name": "Accounting Standards Codification", "Paragraph": "4D", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624177-113959" }, "r426": { "Name": "Accounting Standards Codification", "Paragraph": "4D", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624177-113959" }, "r427": { "Name": "Accounting Standards Codification", "Paragraph": "4E", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624181-113959" }, "r428": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(3)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r429": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(4)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r43": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.9)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r430": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r431": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258" }, "r432": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258" }, "r433": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bb)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258" }, "r434": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bbb)(1)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258" }, "r435": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bbb)(2)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258" }, "r436": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258" }, "r437": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258" }, "r438": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258" }, "r439": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258" }, "r44": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226024-175313" }, "r440": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19279-110258" }, "r441": { "Name": "Accounting Standards Codification", "Paragraph": "6A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=SL6742756-110258" }, "r442": { "Name": "Accounting Standards Codification", "Paragraph": "6A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=SL6742756-110258" }, "r443": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "60", "SubTopic": "10", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=7493716&loc=d3e21868-110260" }, "r444": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123594809&loc=d3e13220-108610" }, "r445": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13279-108611" }, "r446": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13433-108611" }, "r447": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612" }, "r448": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "230", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=123444420&loc=d3e33268-110906" }, "r449": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32136-110900" }, "r45": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226049-175313" }, "r450": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r451": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r452": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(c)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r453": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r454": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=6450520&loc=d3e32583-110901" }, "r455": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=6450520&loc=d3e32618-110901" }, "r456": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "835", "URI": "http://asc.fasb.org/extlink&oid=6450988&loc=d3e26243-108391" }, "r457": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "835", "URI": "http://asc.fasb.org/extlink&oid=124435984&loc=d3e28541-108399" }, "r458": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "835", "URI": "http://asc.fasb.org/extlink&oid=124435984&loc=d3e28551-108399" }, "r459": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "835", "URI": "http://asc.fasb.org/extlink&oid=124435984&loc=d3e28555-108399" }, "r46": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226052-175313" }, "r460": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "835", "URI": "http://asc.fasb.org/extlink&oid=124429444&loc=SL124452920-239629" }, "r461": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "55", "SubTopic": "30", "Topic": "835", "URI": "http://asc.fasb.org/extlink&oid=114775985&loc=d3e28878-108400" }, "r462": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977" }, "r463": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977" }, "r464": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918631-209977" }, "r465": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918638-209977" }, "r466": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918643-209977" }, "r467": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918643-209977" }, "r468": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918666-209980" }, "r469": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(3)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918673-209980" }, "r47": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669619-108580" }, "r470": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918673-209980" }, "r471": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(1)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r472": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(2)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r473": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(3)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r474": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(4)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r475": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918701-209980" }, "r476": { "Name": "Accounting Standards Codification", "Paragraph": "53", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123414884&loc=SL77918982-209971" }, "r477": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "20", "Topic": "842", "URI": "http://asc.fasb.org/subtopic&trid=77888251" }, "r478": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "852", "URI": "http://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765" }, "r479": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "852", "URI": "http://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765" }, "r48": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669625-108580" }, "r480": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "852", "URI": "http://asc.fasb.org/extlink&oid=84165509&loc=d3e56426-112766" }, "r481": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "855", "URI": "http://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662" }, "r482": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "855", "URI": "http://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662" }, "r483": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "855", "URI": "http://asc.fasb.org/topic&trid=2122774" }, "r484": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(1)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r485": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(2)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r486": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(3)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r487": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(1)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r488": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(2)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r489": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(3)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r49": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL116659661-227067" }, "r490": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(1)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719" }, "r491": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719" }, "r492": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(3)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719" }, "r493": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "910", "URI": "http://asc.fasb.org/extlink&oid=123353855&loc=SL119991595-234733" }, "r494": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "310", "Subparagraph": "(b)", "Topic": "912", "URI": "http://asc.fasb.org/extlink&oid=123371682&loc=d3e55415-109406" }, "r495": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "310", "Topic": "912", "URI": "http://asc.fasb.org/extlink&oid=123371682&loc=d3e55302-109406" }, "r496": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.L)", "Topic": "924", "URI": "http://asc.fasb.org/extlink&oid=6472922&loc=d3e499488-122856" }, "r497": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "926", "URI": "http://asc.fasb.org/extlink&oid=120154696&loc=d3e54445-107959" }, "r498": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "25", "SubTopic": "20", "Topic": "940", "URI": "http://asc.fasb.org/extlink&oid=123384075&loc=d3e41242-110953" }, "r499": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(10)(1))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r5": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r50": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124442407-227067" }, "r500": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(11))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r501": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(13))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r502": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(16))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r503": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(23))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r504": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03.17)", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r505": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(15))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r506": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(22))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r507": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(27))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r508": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04.9)", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r509": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "235", "Subparagraph": "(SX 210.9-05(b)(2))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399901&loc=d3e537907-122884" }, "r51": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124442411-227067" }, "r510": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=124429447&loc=SL124453093-239630" }, "r511": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "470", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=123599511&loc=d3e64711-112823" }, "r512": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(16))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r513": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(12))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r514": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(16))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r515": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r516": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(25))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r517": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(8))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r518": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03.(a),19)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r519": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(18))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r52": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124452729-227067" }, "r520": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(23))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r521": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(8))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r522": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(9))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r523": { "Name": "Accounting Standards Codification", "Paragraph": "2B", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124505477&loc=SL117422543-158416" }, "r524": { "Name": "Accounting Standards Codification", "Paragraph": "4H", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=116884468&loc=SL65671331-158438" }, "r525": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124506351&loc=d3e14931-158439" }, "r526": { "Name": "Accounting Standards Codification", "Paragraph": "7A", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Subparagraph": "(d)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124506351&loc=SL117782755-158439" }, "r527": { "Name": "Accounting Standards Codification", "Paragraph": "7A", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124506351&loc=SL117782755-158439" }, "r528": { "Name": "Accounting Standards Codification", "Paragraph": "7B", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124506351&loc=SL117782768-158439" }, "r529": { "Name": "Accounting Standards Codification", "Paragraph": "13H", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Subparagraph": "(a)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117783719-158441" }, "r53": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(210.5-03(11))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r530": { "Name": "Accounting Standards Codification", "Paragraph": "13H", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Subparagraph": "(c)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117783719-158441" }, "r531": { "Name": "Accounting Standards Codification", "Paragraph": "29F", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117819544-158441" }, "r532": { "Name": "Accounting Standards Codification", "Paragraph": "9C", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Subparagraph": "(d)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=122147696&loc=SL65671395-207642" }, "r533": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r534": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)(1)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r535": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)(2)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r536": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(i)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r537": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(h)(2)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r538": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124508989&loc=SL117422267-158473" }, "r539": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "440", "Subparagraph": "(a)", "Topic": "954", "URI": "http://asc.fasb.org/extlink&oid=6491277&loc=d3e6429-115629" }, "r54": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(1))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r540": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Subparagraph": "(c)", "Topic": "976", "URI": "http://asc.fasb.org/extlink&oid=6497875&loc=d3e22274-108663" }, "r541": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Subparagraph": "(b)", "Topic": "978", "URI": "http://asc.fasb.org/extlink&oid=123360121&loc=d3e27327-108691" }, "r542": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b" }, "r543": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b-2" }, "r544": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "d1-1" }, "r545": { "Name": "Form 10-Q", "Number": "240", "Publisher": "SEC", "Section": "308", "Subsection": "a" }, "r546": { "Name": "Forms 10-K, 10-Q, 20-F", "Number": "240", "Publisher": "SEC", "Section": "13", "Subsection": "a-1" }, "r547": { "Name": "Regulation S-T", "Number": "232", "Publisher": "SEC", "Section": "405" }, "r548": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)(3)(iii)(03)", "Topic": "848" }, "r55": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(10))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r56": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(20))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r57": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(25))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r58": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(5))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r59": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(8))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r6": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6801-107765" }, "r60": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.1,2)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r61": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.2)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r62": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.4)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r63": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.7(b))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r64": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.7)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r65": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.9)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r66": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3179-108585" }, "r67": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3213-108585" }, "r68": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3213-108585" }, "r69": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3213-108585" }, "r7": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6812-107765" }, "r70": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3255-108585" }, "r71": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3255-108585" }, "r72": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3291-108585" }, "r73": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3291-108585" }, "r74": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3291-108585" }, "r75": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3000-108585" }, "r76": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3521-108585" }, "r77": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3536-108585" }, "r78": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3536-108585" }, "r79": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585" }, "r8": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6904-107765" }, "r80": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585" }, "r81": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585" }, "r82": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3044-108585" }, "r83": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=SL98516268-108586" }, "r84": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18823-107790" }, "r85": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(c))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r86": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(e)(1))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r87": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(f))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r88": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r89": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r9": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6911-107765" }, "r90": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r91": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(m)(1)(iii))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r92": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(m)(2)(ii))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r93": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-04(a))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24072-122690" }, "r94": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "235", "URI": "http://asc.fasb.org/topic&trid=2122369" }, "r95": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793" }, "r96": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793" }, "r97": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793" }, "r98": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(2)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794" }, "r99": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(3)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794" } }, "version": "2.1" } ZIP 67 0001558370-22-006108-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0001558370-22-006108-xbrl.zip M4$L#!!0 ( ,F"FU0:H5]/,!, ,') 0 9FEX+3(P,C(P,S,Q+GAS M9.U=6W/CN+%^3]7Y#SQ^R:8JLBQ[;G;M;$J6Y1U5;&N.K-G9/*5@$I*0H0@M M -I6?GT:($%2O("D+C-B#E]F+**[@>ZO<6OW%D.M?TE]H1E,XP$=JP7(A;6 ME*Y6R+/N,6/$=:UK1IPYMJS+TW>G'WJ]R]/SWKOW;ZU.)Y1TC3AP4L]2(L]/ M>U'*()1*O2OK3??\???\[/S<^G#5>WMU\=;Z?!\1WD,I9Z24\I4[5]Q>X"6R M!&)S+![0$O,5LO''DX40JZMN]^7EY=2FRQEE@J^YP$ON]$PL) MP*4LCED M=-;K_GY_]ZA*&A$_,=<1$;W\J:G?=H/$B-3=$)LDO>C^?D>\;YK2A;\-M#+Y M"=")!:?IPR+W+B\ONRI5DU:P4:P7,92!>%P@SX[+P$FYT3II+IOZGF#K3?-Q M;)_.Z7,W3)0(]S0#^/LL5YKD\*B6?B5&W M@$FEY#!Y>"[K1:'5+KN2LQN2:2[.1%$!HZ22888$-#F\3ZN2TBKF*I>CEH-7#-M5/#:FC%U=E+NYB',B^>6'!%6P M/]Z<0$=@6:HK0)Y'A?(]]4U_7:V(-Z/A)_@HF[4KF=,4/,Z2?WR9C"I4"56X M&\)MEW*?X4=HD!S$G+[G#'PNZ++_2O@-72+BA>TC/[$(F*@>2U1.75('SXA' ME%;0*I^=61TKE@@_M% +I%J!6$O*M0+!EI;\CP ME#5E#Q-RAR0F3ANYMN]NP1B7K)@O_*K1VQ.H8$*A^O&Z&\'$*_]T/'Z:/UOC6&G\>3OK3$1"T8&X/Y@#Q MQ:U+7ZIB&=.;H7Q3!\I!__&3=7LW_MI"6:EW])=+Q-;CV2.9>S!!L)$G^K8: MFZS&WEF*!_ [7X?:8?#7*RZ,Q*Y&7% MF5DZ-R .,K1^"K/\BZ4R;3VC@F?T[3]\PE4A-&)IT/-(S'B^/>NE\4P*B8%J M(:H T:^4.B_$=6%$.7) ?Z@+"&9W(["$-Y?SO#[G,-AYP*(DN0#?O[ ML_.T<^@26#!VMI*96'$N5I#-7RW("%BJ4+5N5L?-@D8T:N'#(9@W5]\#LX*' MW('%B0M%Q47-Q=9RS&[S(>LV8;._T5E$V06IH3\HQTIDV;K&%JYQCX3/E/G& M,_6EJB]482P#_Z(0_%BZQ#] O85Z^S@*M;\MJ.M@QH?098OU@[]\P@R&? O$ M"H&NRF:$&>;CF3J>%/QG*Q -GP/I:G2HY+U!+,_-N+4BUNDE1+5I[ MBYO)WI$+ OT8S@Z,ZDLP8WR>Q;A&K$SUO3JGU@4JN, $/V//Q[>,+J&I%0S9 M@G\E8A&L[4'CFD:\G,$,\$46X%"D-0.95B0TV X4B6W1K(#F+2+L-^3Z^![F MB?!;=99I!/.)S*B]R:(FQ5A*CI44U.)4,RQMBD>7H%(2B&ZAV&OX>?O <@F, M[[(PU@T9MU!7@/H&/XGQDTOF*+?BI9/-H+W/@B8%6 D)+2B5@Z_YD=42"#YD M(0CX6L-7,/R +I=$J#Y;;A&C:BB-/3F.3J-A(C5#=)F%*"%,M6X;XEKDM@IB ME\>KS3CUSG*F73FAZ1:>2K/J)X[_\$'S(AONX<\(DDFJ.5F].SRT):A#^LG_;V-3N\E"C*58^_ZL9"0S83[Q=E%=O6W M4D3$^BD0WT*\=6@D'U83J1G*-UDH"\(D+7B'F:3G(UJ;WPSSNRS,M?=XM?AO M/W//!SF?R(SD^RR2Z5E\BU3]Z7P^0!MI9ER*=T2U:.PT4\Q'II#.B!+,&C,H MY6YH:C$[Z$QEY($8/$6OQ?O7]B'3Y MO]KEP*_<_J^PME7^[^6V_UN^>_B_],L#P:+OL9S-1^6,_&B?'UMBY446R9%VT9>Y%T8?Y6H@";$X?6 MC[ZK'ZFK!P[F3AO2?Z!7A25IO6OW\%^!KQAIS__T>L=W! K[(J>D ,;:&-K*_E!/)\4R+V/D$<.4< MS%ZSAPU=UGK1+NL1!5Y10&5&N<*^PA:L7N5)'2DFL.4%&<8[4,HOR&CO1=E+ MFUO>V)8<&:G6RK;H;(5.P?ZY(CKS_KE>SOZYO/[P_\_V.?F/?#1D@F>6>A+D M2K[4\/&$D^7*E0]RJ&\+]>C"C+QV],L1_P1M3U^7KJ:0X@WO@BB8TP8*\]4B M$+,S4C(OEH 0NL),;AOIZK*?6-U]:05(U-4J!=X1*@5>4E>I3<0H9ZE*:,R]_L*6H%&6$2HL@=*KE"YCVI'3Q!?LDX@GH.>C%G!*-/.0X"*\#,6A#A2Z9?&?57'T_4\V97!$A.+ 2IJ+Y*W;-Y ?8+VB01F4^;3FL[G,VP+<:S M+Z#T_"LF\P4T[?UGT'"N M_4"R[O'?M""I)/(9Z$=M^.-:5(TDQ#R+MQK<(S8GX9&\*7X5URZUOVECU&'(-4%(ZX/ <6 4-->&/;QW3?BR+/((F@/G!U%Y@J&%B F4>KX(%93]HV&-35",W5&," M;'/,CJ(>3[!-/9NX)#S7,T1,[DOFUWA&&=8*3M'KC7IW+R#K>TY_"=U_> OK ME,IG-=19KGZ(D+;7X<2;FLEJM:?(JP[?6,0>=$N@KH#:KJXV/%8QWT5-''LT MPEX:CCLLA+P^?Z!ZWUN,^6?,Y/H==("Q?F:J=).Q"M(J*[871>("C6=Z^/-U M0>S%)\0G&(9!4'2U]!QK58/E*%1,MMT325S<>262F]%IJ0*;.JL-@A_?2570 M9B)W#8\]G)ZIE!(V1[OI"ZVF78*P0=HM&*Z(W@9I+P@#[1K]R#=" M$,[9CT'KRFI&V.@.QL%ZI']-&:,OH/ K9!-H*FT;?JFA4U65;C\+RY977FW>?2Y8/Z M0WI5;;WU4']+LT7L)8'*'<@OM/LMWP M9' 2X)>M*Z-+PCEE:WG(0P]'PS:Z*G5S'4+U*!.\\IF]0!R#?G.&EL#\/F6* MN7'TJUKT297,-\8C9,X$1 M/G)=?H_D)$4&6>4AAGOJ$4%E'YBJ!G4XFFN8H>,'75[*'3*?FZOB1.ULEP-M M).=YZ@S34"Y,P&=/4FZJ7IV\N2:Y]UU!;M&2N&O0#G0EZM Y1^%W??CE8.<1>X0RJ%'4?99#CV"9$,E59;'>;)%J<32W<0HQ MAK'WO[ M>.[())/87'5'GN/+. 1R/P?[H=>ZH=C4O )=4;CCRJ2AR"&,&IAG![]N::;. OU;&@9ZS7XP9T MN4*>O/?;#C:=1 .O2J0'W<86!]-WC=N$&H2;\*94#8>BP$U1:D/VZ#WZJU7P M:>,^L0EVY3&3*0WN/$EOO:O-U8P==<4;D95">5=-EVU(KLYXU!N3BRU3S17* MS+2EE$;93"_^!"[A.8\+RH2<-JD/ \JCZE6)LMF3T*$+PR@F3_F'H MA[;X!-N8/$ME^JY+7V3]DTLFJNFY2^PWW(*OV5OJY%@<>M7A*^#.Q[-KT$:& M@_*UQ7%C6INMV6;*'%#FT(6$G6@44C/3-&A-,[E8&QU33\"M[^)7W_-6>*LP M-<@>-R#U.8@&8N718R_^%.\(-!,U?'@5ZQ+O!GV@08^I]_NG#6&@_%[-P:Y; MLL%U,1ZOU$#:FZOPA8Z!K?6&SQL?]V<"LW]@Q.1IG6AO]I;,S6XJ;^4U5:#G M,W;2CS\D#RX/7U?8X_F&VTW$CS'?O@;SZ%6JPL_/>N^F%/[]D!K6%ZUONG3A'4&D9-MX&M).8'4U6YZAEVKR%EKG' MJW!5>D!/1YZ=5KDH_3AUR;KPWR'9M[^MLWJ5TS9%QY$'CN:A*BJF2(]1P]$S M7B>++G<"K*&VI=4KHSM&W2:8PWC"7D!S<8.?L4M7,A&&&<'\'3[WWE_>8&?S M.$.\%7,;[F.T@SRZ=(^$SV!LGG\]539UBUT V;. WT6;O/L]\M*/$1E=3CGN MS;G4HR#YV#7)N<"C(/GH-9N[E2#-7V;#"3!\='TYE-3/2&9O\OQ. MV>X4IJAQ\4?F6HW\.$;Q6$C=-0<]_/ 5+4.[Z*OJ@K0P+/. $W>%U.,ZL"WR M?##?&#HF5FB-6RS7V-U(O6OLX1F)!T!<#Y!B4]1@:8X=H/2;<&Z@GY_:*.UT MT.U2!MW.>^DFM9CBF%O41+0@/),WA+(LY8[%6\ITBS:$EDZLC5<<5^ ^2K2# M-P&"R[=_^0]02P,$% @ R8*;5&_0RA-9$ $?8 !0 !F:7@M,C R M,C S,S%?8V%L+GAM;.5=6W/B.!9^WZK]#U[F87>KEG!)YUK=,T6 ]*0J"130 MV[-/78XM$FT;BY7L),RO7\D7L,&R)0.Q;+],9XQNW_F.CX^.CJ3/O[TO+.T5 M8 *1_:71.6DW-& ;R(3V\Y>&2YHZ,2!L_/;K7__R^6_-YA\WDWO-1(:[ +:C M&1CH#C"U-^B\:#.T7.JV]@ PAI:EW6!H/@--NSHY/[GL=*Y.NIWSBS.MV0Q: MNM$)K8ELS6NR>])9_](/6D7VM?:IU;UH==O=KG9YW3F[/CW3Q@_K@@]TE'.8 M6=*"]L]K]I\GVJ5&X=KD^IW +XT7QUE>MUIO;V\G;ZK"+5WY^P%39PVEKWQ2W!_J\9%FNR1\U. MMWG:.7DG9B,8(OM9H).P./L5II2/8/'+[[0?R*!S=775\GYM4.EIVF>,+# ! M<\U[=NVLEN!+@\#%TF)M><]>,)A_:Y,1T#[U@?PR=2B/3%'ZR";(@B:C M]4:WV#"F+P XI*&QQK]-[F(#,=!BCK!#5H16)R[1V9,6*]D2:=+#)R2YUC$ MKA^2T7RT!-C3E@,AY;6M$.2^3EYN+?1V!,21IC\.\ 2PT+$Q6#J+A8Z7HWF M4_AL4\-CZ+;3,PSDV@XUEF,Z8@,"<@]HMV0 '!U:I*];1E=:$(?HL@@!]8S_ MN9! 3R>#T>R!/;&U(F!]1F503*0_ZDP7N;&I/GR']JT<(-3R/ MP,GX>7^9''XH10C4U]>U;@>&S'[VGOM#I #OZ=BA1?D'!U"F_%T6)Z 'W7&Q M-YC1W'MR!(D(]5&(L760\?,%62;U3(?4$#BK1W?Q!# UA2\Z/H0 A'N0AF]0 M$^Q:WK?YGOX60&;=']3-B0@7O#O -H&Y?@H=UAGU9MMMK:FMFZ-_]T>/T]'] MW: W&PZTF]Y][[$_U*:_#X>SJ014#RB%:B$C-A"+><<(QVEFS1':GM?67"=/ M7H-T;O&LZTOFLW=:P')(^(2I1*?9[@3^\"_!XQ_^:QHV;>E/P/)F*+$?6\6- MK.]B3&6<.L"@S(_STXO+\_/+B]/3[MG9Y>59YRPR](C^]' &YA(Z'K1D?>E60WL# M\/G%\7XIA!?F,%*SSOYA;_BK;C%'LN?T=8Q7U/K_6[=$,^6<,M7@VXY> '%73&* MNP51_,U^BJ$B&U@9F( KK.E*,KM"K?H?/2=XF#%@![ M$J!(TE](@9K5(# MH($"7"CWTH\Q6@+LK,86BT/;)ILM+%E<@6^STZJHRG(REY(X1/SF0DB,QSXG M;#"C^;<@"LIA,;5.F6B4!U(.MSA<&.#P%_Y<)JI2QZRP&[NSUC)\-RR7Y5-D MD"12M4P$YL:CK-,[ '- /]OFG6U09VZFOZ^!<2CE5R@3D9(HRN&_1GPQ.H4V M4CW6Q+)E8E <@+*^9V1ADKI?NXMW'.JRJQ6-)GO@,:+.VPIHFB@941W, J3L M*E)DX.D3V]V"2C.7.+A4WM)0E6,IZ![9SS. %P/PE!&F2BBI-)MI8TP@51"= M'*M%?B;AVO%852,\#4<2_*I[R[6^/6/@[L4(5 MB)9$IZR+)1P2WRVH-(W" 69!7'()S<6EV@3VQT.5ME$AH60<=U\0Q3I\_%JTP&=PM6B$-!<)D^;[,H&GNF M"?W!C'5(G;J^OH2.;D5TD[=N%RZM]# _) MAH^SJ3:ZU4;CX:0WNZ,%&FIOG68'0GCSV'M$> DG6V4*RIX,!W!+59NM'O*3I: MC^I9B$0UB*=L?JPTE/7:UR&_S-4&&J&F)35B*^8#GF, MT9SK,T1*J*9EE<0;'3D9VP( M5%:/XOR6\>OP6[PW+"4O9V#@[OH(X+$[B@\B<:R<75T]#Y/A)FD=+(%76/PM' MG?[B;Y6J(IG9 -7]7M^X!-J D#Y:/%'KQ<;E6[SG(&P*S<#J]3#6Z5,OV;T%VTHPFG.JK'.A.ASE^*#>XYQ\JH#2%2DX=5?QO%P=6<\DO5+U5"<' M7F47\-8N6##Z&SJ7XD?@.*45I%@L$"^&1.C;L\EHNBA^52YZD+_(HMPGF46Y M?F_ZNW9[/_JN^J(RQA]$2HX!)90EI[+$## _K_T M__WS-8;OAO=S8'"W3GWP((J9RP*'C7R,T2O]!IHWJV^$)?:NY_D] MPX&O:9OQQ1M0S]84HV:QV>Y^TE-X?K0M%N_3N]DND'G(@T0+ZBG6GK0F?O3V MDD:)%"5U"Z>PLJ2V4DN%D9>(PL&U;7!;&_O9@H)A8#>V]5M8=T0:JZ4*Y1:, MLJ'\++N:NG8C5KF6FB(LB,SI=6$!%3$+FG8TJ$0+<=F,RQL-*(-%9+_% M^ ]]KLQ;6T2JUE(;!,40*,6E>DKA7;KG70K=1PMFXSRA\G+)$@O7@'@)X '5 M5\I-1VJX(EU)72Q2DF&HKZV<=F]2 *>Z!4;SV,41ZULC,A,ETRK70+?V$$2H M&OPP<'&;D!<(._!/W<\*O:4OC6U0Z;"4<.Z]IBE5:J 'TO!#]M6+Y^X<*"24 MTI!1JP8JD$<"H1:H%XOUY$+H8&X1'B#WR9F[5NB[&'Y)_ MP&RFG8O*Z8,?H2>S=8O0-HUI12M,GS3LD#;U3M8:@"4&!DR;D$:+5)A48;@A MF>H=6AKW*+;O*!+RPK8KU8#P' ((54"]JV3\_9HI>_HW!6I ;0;8D$9^R+"P M'6K)DO#WWNR1U9?0@'IJH&Q6GZCTE,V[&>LK+U U0SV#B@R#,,[EG?OJ)R\' MOY@\^R'1A'JJM2>Q"19F7W%D)O85%M'9@;;9^CLY+ZXEP W50D_V$H6XR M'D=2ZZAW7HNI:GXA9#>\JN6?^%_6\J,?%77K(K*>>$NU) M8?HG25P&RFY$F8!E8#Q'ETVCO>2XCVO,M'IN-5U('WTP+NF:HPA%<22G>2^2@M' MI-:I >_R^-7=HS%>:_ ,O'8)LF^X""]4@TT((< U-U;$8*Y19A:-!?3B0\! M+,M25 WX%6ND"I)"4'>K10@HN"-ZAF;Z.]N)QJZ)H *B.*7R[O,V5R/5.8AH MU-VF$8O1LA=BY(V-#-\!-B#A+XEEU:N#BN22P>'W<21FLX5IEEY,U3^XEN,Y M9I2N,)%YD&?O5"CZXT!-4]8F#/$0]%YMQ@5X5275.9Y\9/8['.W(MP$DAH6( MB\&4216O1O,I?+;A'!IL3<9/UZ58QLB"!D7B3;?(@%T\99$^[;[;B!'*.0KN M4[O;OM":VJ8[=BZX>">'65[A[G@.&45L]TR)(F<.-XZONO]J73J=+X9IOTA69O*SO@ MP*!%_=V!>?29UU:U%.1P(I"[#OGT [\D$0\K_%((?B3.VIWMCT2TL8WU5]SN M)^^PW?@*,ZS;Q'='Y;8[\YHXP#Q"HL.-!\1NGARYV^_[OLVI]\KG(32<>!Q< M$N7X<$C CAS0=F<;+N8GZ.[7:'7TZHCRD/NNE$"[O$7! YA9OYV8S"[:]=*A M%!&(9%'MH3;[?K*^(_R3[3_W[\7NF?]U_=3E_;Y)8+R6TF\:M51D;T0B]Q%7KP.)(AF @ST;,,_@7EG4M1P#O7UMLIP3\Q7 MA,PW:+$;!"-?7UK&70#SD7LRY]%Z*^9NS4G#0AY'3W M/V"B'X$:EHZ%;VX"B91ZHCLS=@O8('.G-^ M24F5VZ-1]2R3&-U;R7*'EL"1HQ")#K\WR,4)COX>K959)XX! MO1Q! SG4',W9K[$R*\X1D!\Y:E"8WLQH_[Q5W9RMQ>77J8GF\*&7(WJ0 _$; M.ISBO*&:J@T'>#G"#7)X)V"A0SI1PNR<34(990(XB HEMEP_A1(70^;V@L*F MZG[ZU#K'*YZ $""/!2SDIN27NU/R(&$KEN:U[M;_-9AK>Y/V2->EF78?) %* MK>2M/EL8Y";PI%=2SS)D$"20N94&K1SK\!Q@C\A?!);E>E.OBG1GH,LYS?TP M^_Z@.R[V;.AH'@.6PZ"?<@WZIA=FTWU+7D;S7>WL7*'AR?B.^1M4SU(<+853 M7@[E^(J("DPP(I^WN1IJDJ@4CAR"38S'BP+(BL3G:J<:NG!8^.6(IXKBS8C MRS83EUB72NRBA IS4/3E"*+*0$V+O$NW4U^-X<,O1PA5"BLWXB[92HW5A0-> MW8"HMX^?G?$ ,&$'4M*YO[MX8OZZ=]R#W'2YT]Z-?T8[^+OF=T$?^[UX>UZ] M?DHS6_[N,0;,WBM5B&<02FL +9<^]<&,7("\4=*M%'?1+=-OW0J. MD/$&UG,<#)]ELB!OW_#ZMF8G(JQ(RY[ZY?;1-'ZK]54S29F4(_.)([P=J='7"QIRICNYC4KJS_X2R#D_ M3_*'/K=\D@*?X-?_ U!+ P04 " #)@IM4EQV8% "TR,#(R,#,S,5]D968N>&UL[7U;<]LXD^C[J3K_02?[L'NJUG&(%5UY;.7I)+*D!]!U H]'X MY3]?U\'D&1'JX_#7-R=OW[V9H-#%GA\N?WT3TR.'NK[_YC__XW__KU_^S]'1 M?Y_=7T\\[,9K%$83ER G0M[DQ8]6DP?\].2$DQM$B!\$DS/B>TLTF7QZ^]/; MGT]./KU]?_+3QQ\G1T?;GLX_'#\_N/Q^W?O MWT]^_GSRX^2$+GHS8?"?:?+E-7:=*.%5 MH?GK(PFR#CX]Q#H$BQP_:<**; MX<=@W#UZ1F&,+@E>,_6-B.-&] _F=L]C&C$$"66@SG))4"KDV6+;H#W/6H\, MDEW9MZ>4HHA+_-IW'OW C_PN]*R;X4$R[I[-@7[(K041QH@UGR@*SF4 WIEB ML)_L6SAQ$$'@8AF1,9AYZ?CD=R>(T0UR^.=DFF[/&G6W8Q!ZZK+5!O4[,B!A M;V.3-8M6B/1'I[S[,0C_@K'WPC9!S*]?>4R[V$J#K[FN0K:L7OKLK]3MWZ+H M?,6^X:N,0#;/&TS5?C,P661?MV=0',K"9>NIYB1(XP568N#;^84A&JA$ ML*5HSPQ9AP"(2WQ!YQ26>P5 YBUFVY,'?,GT"Y'92\A7XET3K1IC#!9&0Z]#HBU'FF4P$ M]L)V MWMS)/B.&7T*?H[9AA-V0:E@XV.K$-KXA+\ M'>)F1&[_K"*%Z-IYBV*"G_A_263U&%&T.-["'[_X3+V.0K:$PB^(O-$R2X1A M0$C>'Q_P:/N!AH82U.Z#G$XTXCV36>OOKT O-M MXW9W2"W,V[BO,JI8!CL\?0U0B'EJ[]I&+-),K&P:Y]&/:E@WH,?1L>> MO\[5Q F"9KI6."#@)Q$_)GQ(>NL *_8W9P\.C[Q$V!VB6.^Z"WR3KH[6:/W8 MU';%R);[[0#3%4.*N/$C.LH9T2&^PMZ[U8?4[/M1B*SO+<;LLQ_ZJ66&W[:] M:!!.S<0+G$07)0;$.3QR-3IJ?KS1$\/A\DI MV>G>*2G3Q&PBZVM!\-J,B5@Z8DQ9G_@IC3MD\%N[:^KX4A)W)'Q6H#AYP!,) M:IBP9 MV8>L\PGK?9)V/^']9U:>CY"K=Z)DUCI.D?MVB9\9P_Q$O?_^@?]YE/Z9^D#D M_WF-EDXP9;N::,.1J.BT **FTQ*8XT'03\>\*"T7"K@7?Q8B7@4H8VUACFI. M8?%H+:U0.CW6+%&(';=!$58[ VPKP]S-4A(57"S[5'6O[*L_\^R*.=MF.\SV M!0HIA:M)5PDY,&';T;^&] FY21:24&.5L&("5="-==F$R=@ @<'46X$P5W(M MHF-I_'F\C@.'1Y2FBP5RHSO$,/1FBU,OY9K$ $R:"=7%M"$L+DAMQ:QA(TYT M9$66DL*VR UJ86;$9 9G3D0/UF>]K,^]1QKI/QM$JV;+=.FND M,!UY ZD*J9M HUUI.ZHFEO1W:$E&,L'F" UN32H"BJ:D0QR"13'LT@E3840E M&*G>U* $*6TC@J4GK .;4#&4JP<=G!-KZ!95&X!>D#T^9P@SX^2;+$%)B\\ MO*;4;3&\2AWD+8 1KITA-*WLF-#Q/&$B&FR%TACV(R.A8DLZU,>*'-SSY$M) M>"#_3;CS+?TZ M(WI4.#*MKIKW+$=[^WVI>+6(2%PPRZPRZ@E6VC*^A \.57 M'&,G.'UZ"OST>F,ZXU1W_ _$"=,$:^5.H$EGBE5RT^[VB9^:W46S[CKD::>[ MDI;Z@;LA9(3=3#/"RSN=Y@2/-;/=$>S%;C0C?59*]F*#T0=5TY68U?>I]\41J%J(E4772,(',BNGS^P,946HFIB MP %QH];V8R@7;([2X-:D)J%H3#K4(=A6?GW_;%.XP'])DDM KBCET:*E5,\, MVP)@BP@]I=T9M-2S1=VVM17:B0Y;(SBX31H15#1-0T* 66C^YV\^(HQ=J\TU M>D:!F9$J&IO8J:8Y /X4"Y#4L;4V6FD?5N:K[*5+0S83K\:6E=B.:=5*ZG2& MK:0*F(EG=STVYX%#5=L^91L3@Q:W L"$PG67K1"]67B/W)@0/UR>.=2G7T/\ M2!%Y3BN&/,41^QF'+FN5!'&KQ)G9?E_CZH71Y\A=^ABEHHE<2Y^$C>F.1(P0 M>J$^&0#,'1*_2GF3@%C1W:#U:_F,S1 :W&1GB19-1(3SZ9?\O""^)\[3R74<4 MZ57""C-%E- #$YD>-Q<1D5_\E\&*B51!=W/Q7\%L;(#$.)?_ZTCG!0!4R$*8 M+RXY0>C:?T9>M4HPVZ$WE7>*%,@6H"JA(>Q&!0J%1:Z,R<$-Z.[8Z M)=^Q&1(C)/74D2ZG\LB1A6 5USA<1HBL.9X\R4AA%R)0J:;(@.%0JK0,,; Q MM1U:A8;KV 2)P:U"C'2I-*$460A6\;M#DDY*X=.-^:OK1JJ?16"*TBA8]=<.6#NRJ"\'BUN@/9IDMR.6FVY+,?FS['#^C MT FC>SZ:PG9K<%(E%$+VAK+2M@209FAW:!LJQF'M\(/KM@#=HNY*T.Q7-]/+ MS_XSNA OH+3P6J$+6_1.BI'N"EK8D=.#+JL8+-!I"3JCZ;8 ?9&.2]"&L*-( M2Z/ET?3L^7)M)3]A"^DJ7-,&'/D&Q?PD;6Q9T'DY/YU@:O7\%"B-5-!/0D*] MHI\"]=$*//,G,1%YHJ)NW(H.ET2E+"\BICTF-.X MK9!^J];M*C>K18(;X#-LL68A_GE5*1N\(4Q,UYC2TF.$9PS)*"9HMMA]K;K. M:=Z!(GQJTP447FUQU,21I2T,N5%KTT%$N8' L#%^(P2;S>DIAZ"5=( P3D9I M^@8LGX)C58J""%2N8A)@.)2JK4H(;$QME[:DYCHV06)X@Q$B77XX2H8L!*NX M"YQ04P:]""*_\E(!&I\BI=:7@;14=:CE$FYBU:"#:W49R=)%FQIR$+3XE,T\ MGA_$/%XQYQ?[DLM^TUQX0F/JT1ZYI9,K)C0Q]&0[ =58-[DEZY4'1,)M2/%V )*0Y\ M+R'RBC_I* VQB E0189Z-BT2:,J,E!#^CJ+F6AXC/4(#!PD$2.&FW"#IFEEPH]ZP]8QA(2MLA]K@$X:>E.(<84(" M4!O47&M0M+"Q/!B7'&J(:6\Z*%J8D]_QG0G?-W5+*)G&_;A"5,G^$)P_$19%T'L\7(M#"8Y<8N1 M-WM"*=FJ/=0P@YLF$_4X_(AW!FW0U5\I;-:;_,9A\_ZZ3O3J7_EP)W2/G4W6 M&Y]*]RJ;\P>"4RVAK[V.8]C*S(@ZNVK3/RO,/8W1I1NKENVO,QL+2V;VHU^? M,29%:IF]7(WI[7UQ[4*D"JQ9.(C (=%KD'Y=![>@N?.Y6,%_Y?OIHT^.=<35 M[Z;#LI0[@ME<&FUX(@6?TJ=_Q_Y3,M7K-M<&+>6)+&9M ;)%N^DV:&G/EHXW MX7:BP]8(#I\@9$)0*6_(C! (%GJ/ K;Z]NYXCGGRYJCC)BO?LTWQ%X6AFG<@ M54R[+F#P2FFE=4 CVCNTP492P3JT!K<\&S**!BA&'X*]G?('ZS5S7PE&?KY? MA1KQ_<0D>\FAR./Y34S(Z0J?$/Y2>G)V?+;9P=PYF^1LCN._(R+TC')9^QA* MRN*^!FN??R#1$-P_[L/G)Y1I+;T=V1.-$!R%F+;D6[I=[?\3>5]#AND\PNZW M62(23@LC>OJ*B.M3=$=\%]US;BC<30\C65I4Z['V4DQU,IL_;O9O*BXJAY28FAP=% MLMHGR>!MR.[2/VB%@ U1&=Y29:B7K$V%\O@)_\B;AI'L,I$*5),47P<>GT*# MQ/\JL#&5G2?_2[E=2_\7(3'2!8 JTO4K ")D(\DO?U-%.'#%SJ1%4- M8%&MG#WD#:PH[W#^,) $-D5F\!E$CGQQ"E$C#<%ZBFD@!N6N9.!2'5(U@$6U MTGKD#:PH[]!Z#"2!39$9_J4K*?*EIZZ42/=3&_&&UQ?A1[OJDHA5L)H6J #[ MPE=9][ .:(1SAU4.%3S#NL$'KVE81[98RE",9%4C?SFNL.J:?4Q_*7^WQ:9$ MS,O+RUL7KQ>81'1#^=W+F#K\F^.$I#R/K[A R[^DLT42 %CA@*%$^9%HM'E3 M$A-ZC5#H(:_"BG?O/KQ[-SF:Y%VQO\]GM_/9]=7%Z70H>I.KU)#; M[HRR!UXB6+;7K@ =CXII*C\>\\&AYCJKIDU.AY']&AO8BK4D;OR(CG)3*YJ# M,'H@%$,I9* FI>(21I%0!3/E$D("VY-$"BYO.Y"A.%2Z5I2.A!P(4F%(K7E- M).8 E=>;!7!]22/ASM%Z.XI:%$JE*M^GJ>$/@?T/)-GU;/0"$$(.*H+W+44@ MI ""$';Y_'>.[UV%Y\Z3'SF!4AR:-H,*YD-+P6AH@2"B>Q0QY)&75:91RD8& M/*A0?F@I%!D1$*2QJY[,,$QJG>A66 7 GJ3@!('QO%U#6[B4VBZVJMLIAH 7 M?>9WF3H;O? TR1]^N;B,1C+8FO0I=[7'2!TO^OPOH^YQX' MP24F/.E$(D+K7B#,26:2MB;MB?A)+GNB83 ,4;9QK1EB'1#"^JVACI;MM4X: M.$$5EI]I"L(5I3&2V9P4&H)M=2 R*7W@Y%9:LZ:XFJS/,T@(R\ .Y"6D#9RL M[@A>^!&O@2T141$ PEJP \D420(GD(2:U+0O8L++=B&&HIO=$=\-T(>O]^ R *3=7)NS=LD M=Q^^D/H$WEFO$-;/K9U 9]P81P]2U>Q<$2R['=,!=&PD&IVP9 RX>:)0!G9[ M>_(!/SBO?_C1BB^A&)ULX23.]I?&[EOT.*CB_-3;BK(5#\#I2*KC_/2"8=U. M.9IU!6$]T8&AU&X:63,"G&H4N/* )2==XKGW'C%#HCY_%IL\^RY*W>D]7<%-GEH\>PRVC_K1Y+!^MR52I>U^>/?Q MW8?)T637%__ NIL4^IO\6]KC_SUDZ'8UZS$.7X5L%QI+GL%0 >Y3+JX(?PC. MK8R7ONZQ%!Q(&JY32*)+10\0K?F0H^R&_Z<"&Y9$6AK%/*2:;6QPA8=:: M34,($XI.C?)PE"%-$$SCD-"V#PEM%O#A LP57J(2:!X;R&1OSFTQ>RB8P MC@.,9*BD ]PZ>H?N]O:7C^AL<8W#Y0,BZP;2,^T&0L*-K41-:>O[N"9':!>% MN7'(TM\NKF7"LFP+(?%&+2%+@@#LA>;Q>NV0S6PQ]Y=A4INF&V=?GCW_MU)=>NT'7V"%Y/"^),= I,,@XD3 M>I,^FK\Z:KV^8"%6[+P7\.$$.YS4-E2KV8!48 M.-LO+?-+,8PR%1!FQAPEY=ZK!@5DRR54'2''(=UQ9$C] SF$N:Z?U%?LZG 0 M-EP2E:FPO8HY+,9_-&3\QU$8+UF:6S'^(TS&_VS(^)]'8;QD!6W%^)\[8;QP M2;P=A+)1/CU@SFMI!$<."F'!JV"H&OE>>?H3'TNBH6I0"&G=YCRM( ]NM\Y0 M/2>(;7/.'4(VB_143[TXE,&/L%"47U.R6BC** (K(&T 7]L*SJ)2K7Y:2?4; MU;]'E!FRNV+[YPOTC *L&R +41/TRS]>, M4 AV)O(9NA,!39OQ#@>,B!$^,E;WF'M[9/ U)&D^V#^1QR@[0R$30T2SS!:> M%AT'/$9UR7@W1U&4TD)YLB.#9S]D#YCYTIN?'8\!8>=CK3L=\P#<$JG $)Y_ MB+8$ZGU"&1K"YJJ-7RA3 TY*$BW,\MG*6GC'L4]7\'PICVDB#DLCM^P:PEZP M*]NV)+WGTRL155=L>B*(1NEO6^V]156KM6\.8?MI+$9[\L#9=9IR.D?N]IR4 MSQHXCNZ1X_G!Y@(Q0CA5;*ERZ?@D37)<\\,GB3&WZ _(]1\["VY!;\]F>XD8 MH4Z04[1U+OEF@6:;"8'-6K0%#$C,]C&C$T"66@SG))4)J_/%ML&]B=[G^HG^YO M^YEPID[RH2^]CY$YNG+\PR2=7B3<7 <$Y?K/QY2)*QF(]/];@*;D%C*2>7 $+P)/+ ME2CCNP+_/@(T7LQ+D#@!LU*F3M$F&U/J:/1-QO;K6FW9!6!TI/3MWYEC=)3G MDS6(L;VY,7-KF/?,R]EBP::,L]A/BF%HU5@-/N:1@!67U63TS/+?D!-$*]:48*7-**S! ,DB--*TDC3(9W<\= MM^B%/S89$4U2J 0.0M:G4!VR^4&"=]^;6"9.GFB2;T),6&S2"$+.G9+?)D3T M?3]\6V6/X+_81D0>'I; 04A]4[)8@O,*PB%/*RO&S1=8,9ES"O MXZMCM5%C"*EG)OPW(@;<6D>R'+C6)(_KFXV7/VY*4KF2HVI5M+=9Y%LR9%+< M_0QA'FDBMQT%/;N[.[;.9L)UEBA'K)C24LQH$?@[J]80)AP;65@3N ]92=FW MIY2B))!S[3N/?I!D(=JF)KUOFIJ4_31)L4BJD!3PV)L$I2V]5UQX3G#Z]!3X MZ;E'FF]]'J_C@'U^1M/%@BUA'H@3ING7JA2FMIV.=!W#%EM%S*%I9W 2I[I1 MC/*=CV8\@; 6L\==&?)HWAV0Z$@[8VFG%9#*P+"=A1LG[R)\93,,V1K-E]CW M^#[C*DQQ/T-LVD,/^,EW?WJGKA?3ID,($9ZVAE)ZTK,%+R H1V,7JMOB=='Q M>)O [M@BV&XTGJ_V=B-YOG+"):-;M*!/%J>:5S MVD/8BO:C/19, !!,&-9VT_YU>G.>;(7^G6/7.0_ M<\^9WAWCKP5OKWMR R4T\:&F6F34&P3GT[FN&%'><_S,2H<3!ES$;+W%FF55 M;']GB,;T:^CNOA)$VGH:!T),KI%>],@3>#Y$P: L;+9IL5 1] %!+X9?K @8 M 4\95'@/L&CI8"SH"Q>I3>DFI YXLU_ZEG'QP5^C!7'6J/"0[>[MICG[ERY\ MY&TM^CZO7M)$[]J/"7TQU%[_VO-H+_0PF>QO]9MTHZ80\C%ZFO*,Z-\+B1LO M=P N$"0UA$90@WUW^PWQX/S*/[A'G(G_^2+06M4X^JCT8:YI\E.,Q*2!2?FEVO]*/U(SE 5$W M0A[;"C"0V2)=]#NN81I2Z\['/#QNCOP\/* M.EY+N5GY?>QB+P+1YQ6,RIB.5S?J506;$@#8*!N.\ H 6 8QA&.&]NT/41@V*O0 ZG1]3(8HL MV4_54/$GC1>=]#4WY=T#.O>".D?EO.J]Z%2(7OA\N+UZ7;QUO20H?:&'OT8O M2!"S: OHU*MCB5LR JK3N..A2UX,ES/ \QG";987]KT!.@_KUR78L^:[B+0O MG#B( 7HB%'F*AAU@H$"V"NW<] MQ$(/L=!#+/00"SW$0@^QT$,L]! +[3<6FC^/?(,<_CE1:+O(Y@_U)U9YKY.D MVTFQW[V)3^X>C194>=Q2Y,W">_[^-*_BRP!N,7]4/OUXYE"?JD*4'?8_3G%@ M-H<])TGX5TG5;B[=>Y]^4R3[JIO 2=WM7/2E:L)*)D"8-'889@<2#VQ,93E! M=1,@)0---%8L*1%1$"25O>I][T1H_N(\*0O[R8 A5!(P4;ERS48Q+1"$DGN/ MLTUAXKLDZ.\8A>Y&X1^-6L(Y NK531KQ I2X16@JG:912R"^TT*IA5)4D0A5 MBC377*5?-6L*PA7:>^A"^V MM ^C"$TW678IM \@A7:VV14Q"QRJ M>II4TV:$M8[D1&^HM8Z("Z"$JR8[H?-KB!\I(DE5WT19>76BT&6MDD.'*I%F MRZ+^QH6WE)*;CU!K^F--/[66&5+\,7@<\@>P28) (9-<^C"C>5-0*ZN^#:98 M2=F,/:#\22F@DW##.D)9:#7"A"%)"!@A.EG@ P01WV&2\#_*L';*,?)AR5*ZXY>! /*Q:+]52@11.O,51AAGR M3ND6V5UNP)2M ?':=_D/:F?:J"<(/E6GFD5A-B+R4%NNZATEY6Q[\8Z'*Y6' M*Y6'*Y6'*Y7C1QE:>+5KS:W*CL<8[V)E+\P21BW:SS'#7Z\41C-%*9ULG9)@ M=;K&<5BM;V_:"-0Q8]?Z8,J$GF\G[5"X1,_8I,2#^X MRT?G#ETQ OE_T[]CAF=0.G+=!5TDCMVB/80[A[V[;PM^@-2%.2.47Q^2!M\4 M>F#0%L(MQ$%TP( 7/7ONL^VK>\D[?.G+&Y+3KQU#HC,GX)??YBN$DN+S @_? M4;\0KAOV.A-TQ*>>M>3:7_#%14SXL'EML]N8LV^VF*Z? KQ!B)[C9T1JSU U MZ0#"LT2]RMV6(:,(^-)QD73MK6\"X?VA$8189,$>S-ZS18D,XYF[UFY0<7\" M,VO7^-"SJ?Z!_.6*Q^V99W"63.UH-%N<.T]^)'PI70T^;%#QW0@VJJ8?G'UV MF.MT[@1N\K@:#N]Q$%QB\N(0V1N1 XP[K*Z-'IGKCY%PE;:0IL-+\-;HHV4" MZ7V%K]O4O*0OG:)V.Q:$(]S!;%]W>:@#?GXW.BHA\XK2&&G/,;H="U0D>Q]T M5,//[UU'YRB*TO.;@12U-""H(/X>:VN)J=^[RGYALN7G(5>A&\0>\J["J4-X MS:V!-%@U/JB3B3U6:!6/ =10*T1B+4NG_5@OG5;L;&_JI=94?$63EY()8543_6+$993-["9$WCQ^I[_D. M268JR7W$EOU!V+P;*V46F&Q),U!#K,7&]#9X#2%CSX24HMG9.]F]?<8@(_ < MKQ_]]&I!Z6#Z@3@A72#"EJ"GCS0Y ],(WZHG"%$/6^UH1"BXO=V=LTDK8N.M M)\O(0O0+80MXB93US2#YZP9:7;IPJB46G%@M*)]%*T1D[PPTZ >2+;<4? /J M!TKE,L#H#TR^L0WW]ACTU/LKIM%VVJDNS3KI%4(LL*7<.^/%/ON#0M3I*N3! MG5JR5U>=0@BV#>\IA*R XS9VF8D\8C>+6_H+07<0,G^'=10")@PO.54R78;_&:QVXC)USZ.7 :TV7T?,'8>_$#44;2 MP.-#2"'N1Z7ZY-H^SU(=+%B'7JM*4I"'GX$Z7:;V)WH3U<^466@"MRBR#U9T M.RJD17&+P$:W3 &G?)*)K/XST*!&'Y92U(C]FC*ZX,:P_@)LT*1OQ>J-G\!R M#)+H4)ND@Q^420='DV2 0R;"(1/AD(EPR$3XWC(1;M 3/T+GH5;\ENUCI2D& M,D!(RS;CW $9,7WPUUTY(7\'-;O?B,E_L;DW=K]M%+S6-X*TJK'@NYZP861P M%7J^$SI6(JBT ;K_M)= A:[N!7#UC#;%@==/3KBY#N3.1M< TNF&,>MU1 VC M^%\C9V6E]<4&D(X76JE\D2BP^^Y#6M@A+6Q? _+#)X)!C+Q_'QE@'<6^ATSU M.B3X=+*@$+C,D>K!L\[3= MWL^+"H=:Q9.O:A[/+8K.5[RJ.'-%YPXA&U[ )JE$-EMD7=B=+OU4O]*:=31Q M0F]2Q&:R0V>2XO/O$X81:[)%:N*'DPRM28K7!"]V'>[?J52&NMGA4P5Z%'I>BI.TP;B>9-0,*6-NIHF")Y]BY'R(*D" ^30R$C)2M(H MD]%G)'&.R+/O<@_IL84\,3G$D#6!<'0D5))ZY%!&0O>41>-%<"-%X*5(BV.NU8\_]Z&5S,Z]*4;A9 0+,9(VR M]BH+5*$Z>Y*YF>]WMDE]%S$O(W2'&)XZ*Q W@60.AF(1$P)65,EN^2IT"6+; ML@N4_J^1E:0-A,,!2V%)*-FKT,&IY_DI=Q$-LPP4?.@@7[!"9%# Y MA >,<:?(?;O$STRU_ 3MOW_@?QZE?R:XLH]_7J.E$TR9/**-8/,OA-BKK;Z0 M@NY_CZSR-OWQ5*D?&SC&\/Q>V=X!LB#Z_;[$9^I/*V64FIQCV- MN8*3:4Q>S+XI49!6"H?=Y]!O*[+%H\L&<)8,P[R8)U.>Z:N+*.7/(:1!>5'= M]0;M(2VVA7)K0!/8=3>L':EF-6T4"0"Q;+Y C]'L,?"7:;%[NV7PQ_JI&>]O M4NAP;U:S'/'=NZ*JE:P0'L_#0%RK[_O9X]3"E],1$@-OR73*[#UUTS<\6\MS5=L?\G_3K-,D2=\1->V,80[%I8NT80LD,+!!)2-Y)KZA M9(IDP M:)TDIMI'K]]K(=591[!#!/D2P#Q'L0P3[$,'^WB/8I^MDMIBCD$UQ M-@*P;0PO;B0/Q=K0U?-]<-@G#"U#WE7<>^;E]W7<8!3&:7_< &]C@GBL:;9( MS5$Y.8A!X45;U'."F H(HOC=(4F^]SU3(L5"M@XVPC+6:$J0+F/K)$#COW+Y M*@($LG"5Z9",^Y 6K&=LW\MQ4CJA*A"$):E<<4H%-2J80V#Y-";8PT'@$"73 MZV 0UI]F;*_CW@/C*8D*3&>?J@QG7_UYSVM["!Q[Y;<1O+G1PK/FS2MXC\I6 MH?K6?AW920N5H,3)L57TAG%E':^EW*S\/J;SE8@^8V<%T]$8ZKRJ&5K^?4RW MJF-H&=/N]Y/) 0Y^1J$31O<\@BYPE0JX$=RFT9ZQYC85- S 5.'"5@DYLM/4 MJH:4I_U=OJL-E=C-+)3'/+0MQG2E!HHB97*5CJ&8_?""+9E=:#&FFVW-[ (= M@S&;M;#5[5*;,<.H[1E>I&0HEE_B6+PG,VLR9NRT-<.+A$#8)1_RL_P9Y04/:$@3MAND=/V_< 9HOT#%B1%RH#AG<6J+0K&1G@A%/4 M+0,'"/&XS]C! 63_]W<=HGUV]=Y>ATA/EFFF;K,XHI$3>GEI<>6QNJK9OF5D M:PF")SK!.N@>+?C#$[S2TQE: M8,*K]B&"*-O O%Z@)X+<%(SYD]/T>DWZA@&^18Q\%Z]1]8'MPL*RMY$&58!/ MK=:@O?$ G"NX(WCALPE(_F97 6#LJ&W/1E!ZU*M -CBAI>@S.J>O3RBDZ R% M3""R&5<*/79<>$!Q2GD 3K;SE4,03Y[Q^$NJ#%='$ #0 8\=@!Y0LC(6]#P? MER>2]#ZZSU]B3:.[5#'!FC<=UM^^:S5EFE,UJ&0R7>-94VG,B-[&BG,&HY9C MSX.VRB>6D8) <%Y1COETL4!NY#^C7>%&B>VU[&M8H7=]M&%,)G#1,T_OTSF; M-!QO%A93(F7OUYDWAY!;VTK/Y=)7D=WW,4?I L(E0G1'@.A80PD^K(B:'SCI M*0%G9J)XQ]_]TA<:TC6UVG-!'-'L.1N!+C5I! MF/5LE"YSKT;$@3.O[Z*"GJVXU!2!DQ$GZP_D+U<1\DZ?$6&.NK@04ZPSE:T@ MI& TE9R6.)!"%"^DDT=(/>WZQ:8#".D:;41K2B>\4D:)2WG EYBLV13P$B)B M79*_]C*5H+!1,LPDPI-TH$DZTJ'2T:'2T:'2T:'2T:&N2!=5C 8K8RX]-;AQ MHIA/;Q?BBA1RL+VI2"$GH7^.*J_BB0"!W,23:86,GST^5K\=Y1_((:K;=Q(X M"*=6DD&,G+33@:+]7Y8I# M*2_(R0 A7(NSXVC/=^$.A4L.A4L.A4L&G?D/A4OVMW#)X4+Q_^\7B@M!Y;-- M-E%;G .+&D$XPFIX "PB!]S1QWZ=,1H<"=[T<_T)Z+2;O3E,ND:4HI3V"T1=XB=L5QTJ*5L';9W MA^W=R(4 1'Y*M\W3MAIONV=(4+D(@,)7[^WV;]\>EI7E*]K+L_<'9H4!_^QF M1C)L5@PD>>>$?\&?P!0$_TT:0=@'6$C!E"QPF[L96^0YD1\N$R0K&9/9 Z=\ M/[/=R4ALR;X;$!F(]F9F3RAPD6^OEQO)-8>%4&2JM?!R:L!)*"6MC"UW)/S& M0*@,9!HTA%!MJO%Z14U:SY-==FUC>_7X =^C$+T()C@9((0Z49:3FHP4<#:C M=,QY&:1<;627;^V[@5 EJNN)3$@H.)'?;4LX7O)7"Z5+DQH4A*I.#016HP.< M/$0N>OKJTPBQC4GF0A[P-(DT6\Q@BCY U!OI:#93D G@Z&!W(9@?6?$YE^'- ML/51^CHW^_(,AY[EX<*G^N%"8:")$WJ3TE#YD]W\EV2\_3F%P)26:%$>0$B M!XL_GO-]#")/#HDV//M=<@PA!@-T(J%D>A:B%%,QVKD$>HJ)N^)!A"5!2:RM MBJ P,]VR+8 S#962Y<<;YA3U<8N=1GB-Y'FL58#1#S9L=6=W.;U,"+S%1=62 MSQ@U$9LRT@U@^O5&<>O.I@,XUV/T#JP)?? $NL55>5=/V0+(=3U[-97+L$(A M!*'=(<*6BFM^TO E=HC#/(OZ.5A5 QA96UHM+&W"%.1 D,^<81]M^,)8*94Z M&(A3+SM9U(F ((%KQKOT&C[/ (NI:D82@L*YI6$Q]P@I@2@.]00C 88RMRA4 M2R4-6!-(\M# #D7-["&!!C%U*%6K/&M(R#A<&#-\LM5L'W](*CPD%1Z2"@]) MA0#VL\Q%U0X = &):Q"IA%HRE$&'T1((Q:5\RSN*K, MOZ<11E]#+ZDY]A1' M2%IAW;H'>!LIF0P;D0<\+KBY<-;.$M$YCI>KZ'$\)5DDE)P MMMG!;#-J3E\+PH77=L*9VH=^?Q M]O8&\6ZS-%L(LNET3PJ9-X<0*.Q'C@$E[0TSA:,:S_B;P' M?(9VP+(K#2W[A+ M36*DE-I1W[/03,Q=J>>YZ>#-!-]ISU#W%OSC"U&CRR^9M 00@&$-G(UH1&<1$_#R/?\(.;' M%'/D\OJ:/J+35S>(/>1=,N;P56P<)8O8V6+J$'Z%F68Z>KKF-V$D0N^H;PC% M%=KH14=L@'"6EFXMK\(D7Y]W:7=T=B(X.DN[G!3ZW,^MAA0'OI=@D>Q0I3=7Q8 @S[YL1;:[V"HFDT)LZ1KZKA/, M$7GV742O0B]FJ]>-_&$I;1,(\52ADN2O2VE)Z#DF.@V0&Q$KMNN;0(AB*MFN M)P'3$9#Y;(G95 T 6:BUV M%5W@S/8>/:,P1C(9[7Z&<"C05"([*L#Q_PO!E-X1O/!ET< 2!(08?E,IE @! M)X@L"OV MT<+#%.VM8@V/.&1OZ7-T].?UOK:CB8=0 C9-Q6C#9W@I'Q**9). M2-F/$ +G3:63T0 AZAT_4O1WS*B8/O.5KE7(^[T@Y)WW-TDZW)]X=YD1RH"V M$'2D\CUE5-B JNB/#!I0#%LAAG(M'PDI$!R8 #EU>$<.#R74H]8SC60@1;$K MZ&FJ7@EA002$="JF$ FD('86.DR6*33EI=R!2:$!!:X-'9B4%*A22=>1:D=F MT Z(0]/HG4Y2%:*Z#ZF>1GRA[KM9D/$Z<*6Q5 4L!%=EK$Q98%5!#P3CJ%BX M-G J!1\Q6*HA036?@ZK7(M"M;1QI2B-_S5_4O<0DRT.<,JVJO>[6O!L0\4\# M23:GL-$&]9?CE+W;W=Q__ ]02P,$% @ R8*;5/(;!T11=P 95<' !0 M !F:7@M,C R,C S,S%?;&%B+GAM;.2]>W/K-K8G^O^MFN^ VS,UO5,E)]D[ MGNEM7Y8>"W\V_]YW0;DF<:)'X7__J?W7W[])T)#-_+\\/'?_[1/SIS$ M]?T__9___=_^GW_[?\_._G9^=TV\R-UO:9@2-Z9.2CWRXJ=/9!WM=DY(/M(X M]H. G,>^]T@)^>'+OW[Y_?OW/WSYX?U?O_N6G)UEE,Z=A/6,0L))?OCR??[- M148U"G\D?_GJPW=???CZPP?R_8_OO_WQFV_)[<>\X4\_PO\\ M,):$J1LF/[XF_K__Z2E-=S]^]=7+R\N7+]]\&<6/K/_7[[_ZV\?K>_>);ITS M/TQ2)W3IGPAK_V/"/[R.7"?EMBIU?WV( TG@FZ]R7LH6\*\SV>P,/CI[_^'L MF_=?OB;>GS(1X6L-)K+YZU'[3*?W/_SPPU?\V[PI(^2E>=LRW6^_$E_^B1F. MD'^+HX#>T0WAW7],WW;TW_^4^-M= &SY9T\QW=1+&<3Q5]#_JY ^PN\):OX M:K[_*ZCYW[./KYT'&OR)0,M/=TNEPC]4:&6=N#I:-OIJ-'W6+)1H+Z7*/6UI MEAYKE795)NVK@PA4Z'S-_JJH0E]3&GK4D\H JP;27!+N\IPRT([<"L$ PCB* MCXV3R(A(J/OE8_3\E4=]P)7W?_P%_CP3?W+;L'_^XR)BV#E_2-+8<5-)C>OP M[W^J^[ZC34!R(#:/J^([L2N9L3];K)&U^,J-&);MTK,@^WUX]TT<;>M%%>RB MFB__$3ST^'VE+A5%8II$^]BEG7[8LOPJ6^QG"9S9[6C&K- M(';P-=((4BDBTX7R=PBC12EB7R>2Q A0&]F1_G/OQ"QP@K<[NHOBNB14W7(" M[J50[]#3#IHA=SJ5M"?[7TZ8",HC^^(MC?W(6X3>)0/5!OT/VTW #VM5._3" M2B/D/E@OZ\D>*,@21I< X;%'U=@)$Q\6Z%K1L*;I!-Q0I>#1R'O0#KDS*L4] M?43.*8\+B8LP]=.W*S^@-_OM XUKE*]I@M@#50I)SSO\'JG'*<7LZVF"( &* M1) N-LZ\9<13/TGE:O6-7;JFU0>YQ"U!.]KJ!*@.RHGK<, MW2AFB,KWP_@T^B+:AVG\=A%Y:D=LZX7>+[74KKII8Q?47JLG^8E.7&$R(YP- MB6*2L2+ :U3/7CNO2X\E#_[&%[N]+4.XNCUZ;VY1M>K'BL:H/;A-YA-]EY$G M5?HVDH"YYS'+)=E_8''TO=(@]6W1.VJ#BE4GK6F(VD&;Y#W1.3.:,_D'X0OX MJW!<-#U6\$,'8WR8IG-^T'7.#Q-SS@_#.N?Z);+AG!?LSU6\CE["-E-46D[% M,8_5JW7+HMD4G+)&6E,N":0A P7B-MR1I\"K^#:.GOW054^FE,VGXI@*16N] M\Z#M%%Q4);(I/\VG2I*##6>]C9+4"?ZOOVN<]RL:3\51:Y6L==-*RRDX:;W MIEQ44">,_)CS> #P>4P=A4L>?(W8">L4R0]EEKY#ZFBU(O8^DLD=BU$;TY/@ MP']P^Q2%ZGVI92S+[>Q0D23G'<)9Q[ZNYCYMKO/SRL M_?3H@*^B"6(/4RDD/>SP>Z0>IA2SKX=Q*B3:D/W2Z*. MHM4I:'U;I)ZI)?*)T]",.LG)$T%_Y(,2*84[9/XSO712)Y-):1%E<_2NVJSH MX9F(NK:H7;5%Y)-/0>34X>2L(WUW]/.*\863TLL>L5>OXX&+> M!+4;UDMJX/AB3"3547WN?NL$P?D^\4.:J ?PPU;H?:Y6K:K/59J@]KEZ24_T M.4Z42*JC^MQB2^-'E@[\%$;)3[1 M-R5Q(JB3C/RXP/A$@Z#--P\:H7?).J4.4+'4 K4#U@IZ*B8"32O>QGANX8QO MY/Y^_^0P:ZWV*=0_@J4E]>RMN1-Z;]11^F"*W= #M;=J"7[J=)OS()S)C @V MI,1G7(=FDZ?8"9:A1U__@ZH1]+@=?K>M5^W 4ZN-<#NG0M93_5&0)9PN881' MOHYZY2>N$_R=.O$5^Z1N_)-5$&8 &7"25MQ M1G$_6\\=JVTGXY U*M:[9*GA))RR3EY3;IG=VQ_3,;,%SB+@U(4C&IHB=LLV M!?.#7(IV2)VR5=S>![RRW9HR4HY<2&+.8L+C$1P^\1>U^M*M+E*E\B M];-Z&?LZ5TZ- #D,-?56FRL_=$+79\@>B1H5BE*B';LB= MJ;+#5EL@=DV%H+VAEI-K*)YK1*'6:I&FM;J_QQ!%69*D%4S';2<14PH5CT/K MH"'Z"%/)>UJ@S?)C3C@BSK26%Y_N[A8W:R("\$>+$7CA)$_ST(/_+/[8^\]. MP/1,YNF%$\=O?OCXBQ/L#Z>O7?LBC]!.)BA'K%9'Q!'<3?[>OL[($X?->?D? M)48SXJ1$\B*[KN8(RD:034A ?)&"?:?P0-8?LX,HZK@NUNA(2Y[1G M)("B'DX01"_PB!+91#&\&.7Y*0DBEB]CM1](T'2'B_P M6T?J4=3M'_K???M>!/YW[[]%$_8WW%8>+8%D_7T-K0[(@[Y=V7+,JULC#GD- MH?N&@"1=BO-B*FXGX@?4=I4^T;@4Y(EFE/_EA^]%E'_[]3=HHGP9/C.;1/'; M#57%]4$3Y)%FQ.;$88.3L!.8A"/K4Y"[Z-Z<[QO<7K MCH8)G8<>1X;*RI_"&'H]D4=:!_7+ :C1#7%<=I&^KW=G/$C&A \:8M Y6.6V M$\ECFH *)@FW001\;*YY9[.'7_WTZ6*?I-$V4YM!6G.\Z_5$'N\=U*^L=K=W M0QSO7:3OO<*;\1#/ATLN,Q'M?,BV'/'C&"%)19C3)/6W_.%SZL2A'SXFQ \9 M$KB09+-$&J;;\*EFVOWM-]FBVE_0)-TZ*<+$DH'687\J [S9<6R4 3M*G4![ M+_KT&DO CKC9/KO#:5M-PJ,=C=.W6Z9.RI(1V(G;P=DR]82VI0OR2--1N)IO MJ]LCCD,ML?NGEX+XC'#R?(#(&5B<) ^K]-WJ=G&W_CN9WUR2Q7]^6MY^7-RL MF;:+M<7X73&%':A'=$V9E'?^XU.ZVGQB\PH %H69VOH@CV MEO%_'Y![I8__;P^6UVQS@MQ',S6 MEOI8/W( Y$DL?^,]+(S83CY^BB+OA4U'%*8I?8TC.ER[@1\6NRDA,+JV88(_@.J=I\Z<3JV<@_TT0]AG0!4 M?*/.T1+A.*AOS@=7J\M?E]?7M@#=>#!9W=Y,F>S^0R"&HX3ET8M7-]A#"8X6 M\-;LBAS8NQB@NDW:W@_Q@-!)_/Z[D)))OC'#^)!W.2D.7->G[STQ+^%'<4;$\O+^F&QC'UX&75+5T[K[DE%#9K[( \V-N5 M+8>XNC7BP-80NG<=B(PT$;3Y@Z:EN+8U' ^I\>)J<7>WN"3K^=^(]4M]I6WD M&^;KC;LCJK;( [11Q M[;.^.]FXEX0_TJI*'&]$(HZE P%/VWJT>?O5T%;CD(KH;9T:4L3ZKB__X>75]N;B[_S/?@UW_'0<>Z-72 M:.PPG9C7J*JA;CV-N#9=>:)$&D^1C0'UE=EX*8)MEMNXCL+'-8VWE_2AY:AQ M?4OLL:E6KQ*4Q\TP1V.#M+W#D";)61Y__"6O*+04? .H)Q7;.BF\JN>+([P! MXW3&Y-D2C_&RM0XWV,_I-O^:8\[\LQO,M\X;7&QL.:"L:HP<:YJ5K*P4U+9$ MC#@M O=>29 7VS.ZEF\C#*WE3M"U&(>+[2Z(WBB]HP'<@SA.F'/#JU M52\':FLGQ#&K+WM?QY87CE653'>Z:S&VWA)J$#(RQ?BGB@ M(=WX5I?CZJY521.\-4>Z9E?DP=[% &U7"@_[(0[Y3N*;OE28,T)XI]"X$>XU*JK:J)G&"LT7@WG&8[]T X1DI[D;(O9Z/^5Z/_7TLDXJO M;GXZ6R_N/I++Q7G]+7L;.U<&-10H5&S.9?M7,,/V^&\='A^:MU98(%]::#]: MKM$/.4QIJZXN,E#3"3%XZ1C;0+;7!5T7KV,:"V_&Y<,9/"$:XE7=N7 M?/ '9(TZBH5$Q"%7)Z6!I4/K*X:F)NDH4M>+:+OU4RAG"-=NX 2ZYIZ*H# MJ;D'\L#24+=ZJ$79'''@Z4C=_PA+3EL\!%FF/DR%+HUC*P/JN_KX<;F&HISB MMMC%ZF:]O/EI<7-A=\ [OB#'DG.QBGLKUOSF:1K[#_L4SLVN(\@ X'1/Q _? M+$-F5)JT72TSS@0Y.@QCU,J)&:,<$&/00(KV/I=3$N?/V977&C(112(G/S2%>]-FG25X2A:W!6],, M>>2J%#N<=I3;((Y9I:BG3##80(PI6H?2\2A.WW_]8?;#7W^8_?#^0UVD_N7] M[/V';V;?_/5;'JBE?V:-112C>5)G'5,GV<=OK5%PO[[_FH^<@.]M1?B M$.\@?.\;(3D+ CS@FE?&94;*@[NEB^JC&@#>RSQC!G %%XN!?D=3QP^IM\CN MU,U==[_=\QN^EW3CN[YJ#5"K(_) UU>^'.CMO1 '>@?A^_JY9$$D#_*NQ(5D M;"R561]3?PSW5(]6 [67#?&'KUJYYJ5UQ.'9(*S))>ZC]>Q;9[!#*5H/Z0R@ M]_G\>GYSL;#Y@L[$M&H][#" /N+,0U+Q4C6[($557\2XU M=A&CK;;H9FOJ6C^I-(RR1\>7N,K(0GLN7R"_BN++:/^0;O:!K"9V1UWJ/VM4 MT^M( WG0]S))9>6C"P'$<-!/C][+ 9(;8>R(Y$?RTG8%QT'O1&OLGY(@2A(&-N_\D'A1$#AQ-&GOV6X\")W#P<( M>2TZ S_NZ8/L$R7.%GC!W=VF>(A"LL^D*\70,$, D$2"[G9!92&7(8+7BMRM9'U(^OQ\^C:2C\*2$'A!'/(Q*QC M=^1Y65]M>D_F=%.R(F38GYL CGJ$CX1%$S\?0GQQ'],3V1L40@YHRDLBBPJL M!]51997H!UD[]>7)=Y^(G[ V<(R$?95&Y &(!X'X-Y28933@<">\OTZ8D, ] MC.*M$Y3J*+AO+B0&OGC2@<;C)HYC_WZ<']A6<"2K#9$\9VJ<'[L,DCW+U!?@ MK3KC0VZP"623U9/6MTZ\BN]34(Z?_[JE\3TR1,&Z$L[.3-XYNBNQ,Y(Z9XID;H(0)A U XC D'G3@ M^B?S_,2UEAUK.DT*#51*JU'@L,=DHE\IN+&H%QQ(P0)#I ^H=A;A1W<5D(6T MN#[2P5AYAPF&MU:%UQ6@H;;,;.7QT M%1$ZS-5&S3M'4U>S.]Z:]5ID:R"5VA1"7X5=ZELBQ]<&]93E4D0SQ+C:)*VI M@BF"K#TT'4)'9$@Z915;4710'ZU@J$7P%.]2\"DV'!9KJ6JK;HT<1%O4+ .I MHBEB,&V3N'\!YYO[U?7R7)+[-?N/*.:\NB*KV\7=?+UD#:P69GFFX5XY MVI>^1NZ=AXI42ZF([Q#[WY&(_+NE^6%U2:UV0VGC<8@.M:O,V:A,\HO'_Q$0QH[P3STYM[6#WV8+$ QU<7KCH:):I35 M[HP<.KH9H5(D3:LG8L#IJ$#O8FJ"S8QDC/C%F"HKDO&R,\J/98?%]?7RYB=F MA\4-FRQ?\S>0YI?G*1H#Q^L_>T#C?//;%4]']A^\^4- M6=V0^_GU N8)\_O[Q=KJP[WR9JM84*PIUM/<$GG8-ZA7>:/WN!GB$&^2MG?E M@OR&<_:@M@AR.Q.+817T.5&+,7<3A5%5PRS_:-F)T>F'/!ZU52]'9VLGQ+&J M+WM?QRYSR(,W8_+%T"_OM2;>P^LO7MA>WERL/BZ8XB*[_L+F8WK+\)DF_(%5 MH;%\/5"YE:=LCCR:VQ2M;K'6MT457C9X,]E**I"K3:*+K(B M]]M[A6''XXX\^$?^&%I,:$PJ#*W<7QY&9'9URWL"Q7%SJ(],_M#X#]R M*2P=E/I7M.R8R[!0.%0Y5U8MD[5U0CY\Z2E=6:=M[(%XL- 4_+2ZLXTK079@ M8PR],:[D=ET-PQ^LG>)TBB$ZG)=:B,NV'9:AH_[0)[2%?,H44& MLF=J9QM";-P_IYLHIJ+=VGFER>(UC9TH]EBB$[\M4[I-F+UXK>&('R-I7= = MDB-RG!C!W,N(@2$+F0,U(5:N!E M\3:41&UFL>%UOKA:W2WD]M=Z_C>K!\MR0V2CR3D-J?K\N;KU)#!.J>8Q/ATU M18\M:HE/Q 5&6!X%)>\RVI8F)T-I>AM'SWX"BVE0YSU+A5) !ULGVP?3]&[U MR_)^N;IA/^7B9G&U7']!&!YA@:,;FK8>:SML@QQZ:E6J3+W*#1##3+V7!OS*>_VV99971?K+, LAM8B>^M"5N=K.;K6T!QYP+4I6HX]55O$8=@J M4L5&NQP5\;-2K>&HG*,WHS*D@BL)+/]BGRCJ0ZM83B\0#-9MB M,6LZH6@\E/B4>/0$+1F7SH;%R1F;(J(.35,&R.A8#,]?J?_XQ$28L[FS\TAO M]G#U;+4Y*C??DM7V((,\H/L:IASI76D@AH#>JO0-#X(*[79,RXD&7":,-:B_+BJ9K_S/N%9)X$WE/?\0$K^:FV>;IX] M6)X]*2R3C7:Z+UYUIS)-\&PSBP9\JDA,#T!;-1DW,T,%HH/99E!EVS97QE:V M"Y!ZUF>Z>85@-K! ^>FG*/"8^T!IEO2M97JKVQ67B7Z2"$Q4UBDKAUR[U2JIGC]3#1"[)5J M6?L7^"Y>/,/R6%2C&]:W1.Z(#>HI'XM"[XQ-TO8N!U)Y+,JB0\X]CY>5=(); MQ_>6X86S\]DLM]$UV_H@=U(ME/JR=W7A0OJ!,B?+4.2,;#Z)D_* MT@SJR?,"C7ZL;(S<@9N5K+[>4]<2L M$;F+@N JBE^<6'5.JSL5Y$[=TRP'%YRZD$ %"%.=#WDF.7\"",*@V0X\&Q,N50+[Y%',4U0AJ[5 1E M.F4=^]LH%O6R#NX9C7J!N2UD#1NCOHCG6.[+?.%+1:O-';]1'EEI0^=:8)-NVDT@$9-9'H@HZ&+$8 Y0!7.=B8BB&2<29PZ+2OQ9U0-+FJ.*%#L,FPV Q!!)RZCB1>X>SGSQ?'T8KSA] MQ^[Q,>:%RXLRU E/86(:0#ES6#,J9.$O(9:DR=(=+D]"?)$8>2(Q@OK6.ZZ0 MX2"?BJ>]!P1"?-[0UGNI4+U&2Q1 M9[L-19JVH3X3=$:_&Z';,63[K6T=IY_=5/GV ?F1GT*LJ+#U47@163MM,H(AU>#)JK M>I"O-SG$BQ8FM.I_"##G3>Z*6014UBWQYW-ZU5:,K0>:;)HMN[@94Y?ZS^+R M9N#3/0 :5%YZ*9ENY[SQUSFCD,##F*SQ(>397%_E>L#Q3V:KTW"L)RGD ':* M@2JKK#WH((:LD]0Y,>B *PQH_^RX5&>\==:/'D%/A2R7M@\Q0;)$CX%B&5^1Y@_!$C*RCJ6XB8V29 MXL$M$L":3$KUX1V8)&>RDDQ8N>):$M?.'AIZ^_/)>&94MV&$&Q&;+_UGWZ.A MEY2N?5XXR9/"Q W-D6-AFZ)E#%.U18P]K2+W+^J3$8;'@HM[O.Q?C+JMU&QX M;;'<4^; ,W<9/,4 64GZD:9/D>JHC&97Y*':Q0#*J\V*?HA#N)/X9BX_Y\?I M)"<(\B0E@IFMZ![%$&*V&=,=4^")?8(EX,4$4"JL8Z&C'E,*[WIUE5%=;3Z5 M8%9(;2J&Y?:59( B;@WK?!BN@Y_8T[B)A$5?.X5\\E0I?Q> NH&CQBS-KLC! MJXL!%!6 E/T0PUDG\4W4"8+2J?G$(W\[BGV:,;,5\Z,8(J=,WJD?_[!3/11F M65=!])+H%PVMZX(\RG445I0(/6J/.*JUQ!Z@(.C%_/YG^=NGA'K+,'O4.7RBQ#R .AOG(-'2#M201PL)RASROUT MX$DD4_+P1MY]$B6GOR Y:U+PMGZYUH*9"C@A5W>KCV1UN[B;\V=@YA?KY2_+ M]7)Q;_.R;65? C850MSD@IW9Q.(M%.SY)]]V M76V68B.H9/?=-;UH GRR*U3J')2H?0]XJBL M%;/WZEB)F)UP&TP=0E_A4%"OS->%!Q,VXM<1TX: MU&;$K0S9(^E9\UO:K8[Z["?,Q:^B^#+:/Z2;?3!W77#!AGJI35V00E(7A0]J MJBK;(Q[7M<3NZ\PY<7X[1)(GDK[%^J/#Z7SN>,2C#ZE,!,B[!QK2C9_:W/Z[ MI!L:Q[#* %/]M?.Z$,*="]&425);+^0QK*EV-1UO[((XDG4E[Y_E"OIRB0XN M@"VDCY\K?'RLD!Y->;C"MUCL+J ME;!J>\3QK"6VJ?6@G#P_/8QB#6Q@C?D8OB*.]HP)]HP#8R,TU%@>7 M?K*+$E_&A&1*.%>2LQWR./*Z#17&M PS0\*8@"VLS[B[UW^8:H4'_1H.DZO2 M,%!Y@<$+P6@7O1U(27S7;(\?3SH10!ZVW8W1_-*8JC?B\.ZA M1.^*;?7O9Q7'7S*&UL^^C&@3L4Z>@!U*!U3XF,WK)@:^\^ '_+#*C)]K84,Z MW6RHR[Z'T=T5Y0)XG6QH[_E0@<5/]['=TRT-)A0[#/U1YJC_=$&FWA2:&%/M M/$V(4>@P&,((?I@!QK!%WDE67Q O8\8L@@L9Y)[%'2\U!4=YM,U6VW5R>* V M0#,4'/>;% HTB&\8 "0G4K"R=35Y%#,4I$36@"K>JOTB<:- MQ]9[$YMFN8!GK-FD",K?7NR3--IF!M$V;A.%R4%-JSF:\479 M?5*@TJ[%R4AR6:E_ZL2A'S[R14SZ MZM*$+TT^^/S!>=%X'\(_X2T8.1.+E3,QNZN4 (('BS'ZBSCUG2>'+$U&:%F< MK.DY*3QI5,#TLB0?< \7)_&@R""V$$J'S"WQ)AJYSM?%[DO__8IZ(M,#!0VC M:.Y:-C&%MXY5L@W,WX]9Y@^R&S=S8)_&>@6]AD,YK MPRW$)@6J4P.=[3,TGW=)"Z&Z-?O5K$*-%#B1'KTPZ#$E'J!$TH,;)-M*H@XH,, M. *3F"A]W4QHFA"B81P-*&F@,CU(T5%F(&C)66,JWFK!3(>EKYM,E;\I5O! M++^B/A-WU&=\WC_*1?4FW!C3*-ES4GSI8R> MO'*%/ZZ[&Z/?NBWBF.^AQ(CKM*BV@(:R"1_6]\(,&4I@W_[)2Z:>NOW33&B: M\*%A' T8:: R/3C1468@6"D*#N/?_AG23(?;/U?+F_G-!:+MG]**S744/JYI MO+V&V1:;9['ICO+M )U^R'%$6W75ZF5M)\0HH2^[F36YZ_P<%N?"%Q@X'_N+ MDV.H']/G*'CFQ<;)QW-K#O".&^QW=99.CU:9+N.OT0Q[NVJJ7P[VU$^)P MUY>]?SDMR0%B>Z1PUU]D&-X ^4I#%*(/]WL:^E%\21]T8KS2>$*!?:RD*IJ+ MEA,)X1J!S<2M($R ,H9(-:AG.3S%>?#(&::0NL831C9UM 0Y_#B^)N*4VTX( M<(Y45.%-WG B<',LKQFT$5[-QN$8X\Y>/Q& WAC9R%*9CPQ3E$ 3^@!?@39B3.J=N] M/6%140M =D<#_@9DM'9>H60(0*P?/C(C='K]\ 1R$P&]OH:J@\*NM"8 D+U5 M.ADV,\Z0),"#Z"7F'%''>:VQ.YZ.;C!.5E8O%F>J I_N89R!)]5?"AF0'';@ MF+O:\:/>BU<:NWZBOG^AT0\[T.BJKKRJ5=<),W1HRV[H6A;P(!D3DG.Q?]1A M#.5I1A?"/1*L^H3YQG^%T/WP]3=9X+(/_B%??)@7=S,4JYCMK9$&J:::$)HM M32T'I!>Y>Y"C+IG3E;RO1TK:Y4L\1*[T?SE('-;ASVAJEHA;6YBU^IO:G]^P M= H*(K*DAOV#_97X'J\B%(5Y3<2:LZ7-J5MOFDBQS:C):J8[_0AB3ER,Z'7B MQ(=/;@K^I") 499T5GO.V_+DQZ[EQ$J;6YC.K9C.B6-XV-HV@.F?A%?8NA,! MY-#4W1C]+I(@!IT>2HQX<035?;2A;')4DO#=7MIDD]L$Q>TTL K\/]3R>'8" ML=Z4I+'O,H#FM_-#K_I!J>4MC?W(.RX*ZP9[6!U:O+I/ )!W#.P7FPU5WFP; M70CD(&;G1RD#X;@2( 932X8XI03&3$!R28X9*4047T)!G-$V;+Y5& U(Q2> M6]X0H<2 ]KE/G3B=I(4>Z*,?PM,G:CN-B/&K^-$)_7_RI0U8:8D"W^/_8.:Y M93^/W I8;;)9DQ,PTZ=B^:.E=(4IVL@QWZ@)R]AOA##B,<"L?KV?+,IJTW&P M+XMD *SC6J%HZXA\GA1*U=9E#MJA=B3&X3M/5?@)/E1[YPH M^6U-7U-RSESO=UL%6,QKBC$ LY<1V2A]RU#);2_3U-@!>4"V*UL.3'5KQ &J M(73O^ZX0I*3@2R5+4=\Y>P+.Y_'ON)'X"E9V+,98- MN27IC\T%P,-Q1V'@$TDBCQ 3!BO'T"GT$$>9$;5Z#R/ 7)15+]CSD&L+2_NC MJE7#31# [N@S#?<4#D?6O6?:,E;K]T8.2QW-4"ULH-45,=ATU:!_\0/.1QR3 ME9R2ZC._B&.A;>#NT'W:T= X(.OVG6X\F!LO9$!?$C5*M_.,&>7OJ)&T0)/,;4,D2V=$&.!#H*5XJ(-+1''/%:8OB^B[8,?BO7CEI&HI0OR -91N+(PU- >T_+Q)@5.W@TK\2F-6@@&K9$,@23L?XHB[\4/@GGH+<.4J>(_ M!'2>)#1-"JU;QK"N-)"#0"^3E+&@$P'$D-!/C[X!(;GQ5?BEQU(Y?^,[C",I MF!/!G3\'B3UHVL;,SD0^A[!I'$.[49AZX)@;2JJ1*@;Q&X?X6)AY2L'@+_T;&=*U8U;!O?U*TGY:.-(Y:B MZ62\U!S0%F_K<(>U/] ,I2BB>.1EQML6&(\:(8^^>J7*05=M@3C6%(+V#C%. MSJJ_L42)9D>CPTJ/U52_#^_@OD9R1G(-YOP+!1 M-;CFEB,7JCC[XHUY-O'*BP_!H4?M*4=7&LCCNI=)*E>7NQ! '/7]].A]<[3@ MQN?D%7[8(Z1MK.M,Y'.(D<:QL!N%J4>)N1&C,4QPK>AALHQ% +DOO= "5^W3 MMYLH;1M36SLA!P@]I?X0V%X7! 28X1KQ[!KDJ%+XF+! 'V'DO:.[*(91MVUX4S?''O0MBE9B M7-$6;@4,T.XY=6SXDYL>Z8U=YM0JX]""QG7IXS M038^C6@")(&^?TCH'WLFT.)9HW)70W/L(=VB:"6.%6TQ!V^;R/V+ $C"1%"V MFD4=:-DZTGYB_-@\\JL83\EB3=2L.7!;%K>/Q]+5?0.B@*LF;^%_-4D'M MG9&';CF).*@[*G!R29^"T4P4HWDCOV7_M9Y,CFV+KII80N<12R M/UUQE[O+N-N##/)P[6N8ZN-/W6@@#OG>JO1_].BE4B:NPA(?0HQNGSOJTH-* M>A6N>*N&Z2%*9R+(\:2?43K4$9L.EO14Q&@)K6H%+3PX8LDV#$VBQ]"WG/=? MQ-3ST^LH2?*B_,LP26/^:K0>;'0D@1PT^ABD<@*P0W_$@-%+C=YGW#@S MSR M!VR=@!0,1P,+C17!42V3Y1H)H 7UG_E-7C@%. ^"Z(4QI^)=X,)^5F2^[BP($T89WW1B!*6M!F=>G*[T_DX! M7-F426$;W;[(P[:3"6KK,#9U1!S0W>0W4* PVM2.XPA7$48R39TQ+(*!.%IY M3]U]S!^OA@E/M$_OJ./YP=LEA9OM3&26;N3VT1O3C1!&#B/FC%?&F-.I(@8@ M@\KU#<'L>'4A U^/8$*03 I2%H.4P P-5B&PXC)\IDEJ&[[$_65QS5@/EYI[ M( <<#76/+^37-D<,$3I2GWH57U[ QQ+0P^IL^1+^I9\XCX\Q?_ M3ZW%E#3[(@_<3B:H%%K2Z8@XF+O)W[LV484+3#KDXOIOG)/] !_'#O?N$_7V M 9]V>4>,!F%LV*F,-ZZTF2.JKX*5@HROY0H%F92K33X; M$I5/2Y9A$F9O:7BK\ XF5K$?/O+#F5IX9)H')-U _9]!GDRK&3962#6HOR0 MI$^TU((\^31FX?GT1MAW+T^^^W388EMZ"8A]'@1\0[@>BV5C_L,Y+"^4/]T# MJ(QA:TK\1*H?Y5,8/20TYKO@RW '"U^ 64P[GNNV8;5Y+LC1>B"SUFZ,F6&! M&+&'TO3TS;84;*@A$N&:F*A@:ZL5FZ/#K&59.Q3P[P.,N(>86NE% G M#L]@BR$J"BBS'DY*]@DE2>EY[GWYY_%!G82\NX:Q@7SS!8HD6CXMH)\2U_5 M#ID:ZM:GJT?-$4.9CM0F@B5_C (+LHREN/O$:+!\*TOH7">.WP"*G2TJ/D:I]"-=0M%-;X)\>OQ>N.AHG>*KYA%A/!#I,& MK0,;$_0G@$Y&U30R,^;BG'%YZI[3$3*1LE DDPH= J(S[D88SRD;CV;&8U_[ MY:>,_,+V8J)K^8V8XDC7_-57W9VN;8@A3?UGSRQMG2RVCK^*&622K-)^6?QXJJO;1H.QE?K1'9D,?."- FOPGJO3QW MX[^"-W[X^IO,%]D'4#LGBCUX4Y8"QWGHW;*?ST^2*.851#_2[0.-#Y3OU!&I M?W97'CQ5OY=EG_4BE_L-'Z5[_WPG>_'ZR4\(#?C:-XGI3A1228@7;6F2^BZ) M8E@,I_YC2))")(]XX/ZP-K[+Q2(AD^M+" M=LX;Y\PF>8'_Q][W*DM"D*ZD;W].RDOQ!^R2C#AC&4&:[L@1:XN"M--Q3>-MCQC7)C.9N.]FF'HLT*,Q"7SHJ(J)Z"E8 MPK^.'AS%AB46+)0M&K&\+'3]G1.0+"?C!@ME$K$12434.XFHG]SDBL\]CU?Q M<(*/3OSHA\TGQ[KV10H8O4R0SW)T.V*?Z'36H_=3Y\SSR8QA0J1<0L:X=/853>PY_LVVGJ M6\_YQ9 L:=>[?-6/$E+L-6">MD?06\@@GO>>HLVI=[0/GDN?%7>N9G)*C.?V ME0U#E=%G6UDC$ AT(NRT)&[W^]U.[+E G9S\,:0[&L"FR3K*WI+7S^)Z$D0* M*^:,=9S?]:$VF63O).7,9GY)210V#\YE87-I+@Q,HGFH6P:GQV0+ M?$@WLM6*?8URLN4\P*W,F,O #90(QBBJIR]>'2CCR&^Q@G *DS:U1PXPK:K6 M%E _;(P8)-IE/KV:."G1SN+25"'+V[[KDFC5><3EN-17/4U]H.6@R!>\S='VE['\GW%DQYX%_9Y.< M#U^__VOMA9:F=OB]L%ZU S^L-L+MB0I93_%%($F )@HO_$[3"[^;GA=^I^.% MWTW("P]E->&%WZ'PPN\UO?#[Z7GA]SI>^/V$O/!05A->^+VQK>=,S@0 =ATI M7:NE*5+OTE%0;@2KVB'?XFT5N_=,.*L)03WB)"1ESO<&SI=&L+,&51"!XQDP M''>;=C"%UUPS&65)H=\0L?8#B/[AO4ZL'3:=1JS5*E@3:Y5VTXFU>K&'C+4? M>%9@+=;,*EP3:T(_N]F5>.GS @J*,:N_.''+:INR/=(8U5;U(.NJ;XP[^VJ1 M^90L+'L0MDP;Q5+=LTW1E9MKU;1TF9I;&ZQ>A=0BW6:,=W)Z62[./WW_UP2;V]"P.R,E?J20:I8Y]J&)EC]:&!//\Z2:7> MQWG^I[/=_:]+GI6Y(C;@ [\TY.L9H0Q]L;-S:P:HP048 S@1')>R#;YK_V0 M+E.Z5>5Q;7V0XD0GE=LV_/,.B <_/;E-;_P#!\)9V$SN/H50&OTQ]/])/2;B M.0WIQD^32\H0"0XS,S#8!W#R< MZL-EV3L8WRFOL_?L)P".L#+E"]QDZ9#5*Q4*4S%4KS'5+50:%$<3BC[V?OMW#,V@\8X8T.H*'SQS/#]XN*92'9$9Z"&CQAAH/ M&,68=@H]I.!LS%3E%+$W,<1YX>DZ]0TSP9D4K/F<-N(/$G+FI,R]^B ME\!. M FC/8,OPF2$2O\Y7O#1H+*>[HAZ-H1A"AK199INOTR=R';\&GKOT10H8O4P@ M4SGMCLCSN.YZF$GB:K:NQ)U,<'V,JWL-8 M;>[H,PWWM.G.?TL7I&C41>'*FVT-[1%/K;3$[NO"5>('$^$GC+GX(A9^E(+7GBMO:XO=(M8H';GG<$+=O-LAKV$%-GQ/^2.')=]]U M LE#>1:XH2E2U]-14,XG5.V0SRE:Q>[K?P7ADO<)VL,4XE+-%L;4T%A8+0+J MIK%66#4T11Q6;0K*L%*U0QY6K6+WGZ[["=ER6H37J4SXPB!_>#7G29*,Z;CS M\L&4+@B?%&F&)J_W[%?GA_G.]XD?TB3)2O*7S9U0)B+ M=9.[=TG&C)C]&XF9)(WW#P_;8/?1.I4J/EEN@-D':^4\W>=,I_XW].4BXF_E M-=\!5+5#ZD^MJLG4I+81\KRD66;#24E(7XA;XC9N-C*,JHPJ*9,UE_&S$0$. MT9[O_0"*CVN%EE8GQ'&FKW0^'VCM@3P".RA@.!QIQID\9*PM!N<(5I LB.0Q M3-QF$Y+;./HO-DE13]-5[1!'9Z-J^2--=8V0QV"SS(;#+IN+P]TLSFWDEY,& M436C2B19T]%TX01!\M&!#>O083XZ#[V/4>@S&BR.VT),KS/^N.M@A(-@U.@Y MC0CMHLA 8>N""#.R+83@.RK;7 PK\3R&86207P@+?#RP0,%OY/W.C\Y_1?'% M/DFC+8WK%MV4C9#&?+-2'B M'FES>^3)C;;X?5TSG_%Z-/$?0W$K^BG:)Y3X.6_Y?CM.\*AX[XZZ M-$G@]2CVR\F+UW*?,>\G#@OG].@?>Y\7NAK[ZNC UBP8F%OL\_:NT[RR=]0" MCD]8\&QVFS8M"-?&6P;^EJ: M(PX;'45E##6U11Y06J*;&^IVL;]U8KA,*P!O?5%$9$8<;^N'/@/^[&E)-Z#5PS4S/FS"&OH^2"U$\J!V%<3S MM7-S*WP_4R=(GUPGIO?438NL7!G?K1T01[B>LC+&FULCCW)-X?LO1@%1"&%^ MU(W9/=KR[#3)=GG8-_ 8LQ/"M7H:/CJ/HNS)4R[7F2P1)$& .&[J/_,K[>-& M[L"V*L@;B]J?HF<:A_#[M\9K0U/$D=JFH(Q153ODT=DJ=N]Q(GYD(?=/,1], MGYR4L&P70O21B=+L/V3_'C;G!+% 0-EA\/77\X(ZRV<(^ M=D)^/60!ES?9QYQ30[UUW9Z(8[&C^D55=:UNR".UJQ:&M[UBSGY&XD( GN;2 ML@@C%U,?QR!WF>9W!YHOFC3O?V\*2B9>.5LV3V'Z,)X^?V?("=37IUI[( YI M377SRU3-S9&'L*[TAD-W"VS)AO/EGAL7G,<=:XT11^@XL:U^NT-(WJW%B6TI[RQ'/"6,J.P-.*1YN)#">V+*$QCQTVAS*)$ MIII!MEMOI)';TPPR3^S0%7G.V$>34TI^[7)^X-EQ%M:\(+2;\10/;KCR(->X M*>28]KBMV.*N; O)CP!#(CF.7Q/,GCDT7(.\<]A46;K4%Q8SG\PTR]"'JJ%#_,X ] \YVH8?N]FJL"7$"N<\NYM25)OK2^JSBSM Q^]Z1 M=\*I?$.Q=^$$[IX?.?D4>C3.1N^?]KX'EZB6H1#ZG&ZBF*ZCG>_^]>N_-BX; MGT00>?R=;JQR!/:GAC@C5^[)+SIKL@7<^2Y;O6NN9)0M/Y M0\*_4*%FA_[( [&S*2I#HFYGQ&'578?> Q[G!*/:167-4W*;$CZFW#&5EQXMH^Y"]JZBR[0!\ ML"/,4*:M()%I)I@1:S!=3X[C.CPKO4K]3DKV!3]=5H1_)AU@HY2/E 2TA(/X M["Q&$(]-DM*(.,!+OE7]%?'\9!LB\+/.X)+YPV[YL="R-?"I.79"1"2%*1/687QW=\<5)I$N.U[[SX =^^G;"LF,=#:3#SDDFT5U^/"* .>/M MI<=PRY Y3]1+D0-81MI#DO:M/@K4J/0(ZY(F>&&'H"%-W#9-/YD19D@;5%_3 MF5@NV6>U5HG WE-?M;^EF]C9TEL:,U?8PM+&ZB'PQ2VN>_:_R<:G M7K8Y?D?=Z#'T_TF]/C^5 9Y3AEQ3)M>&WE,93A6"C>D](!07B6HNY8R4Y"2% MH"27=)8?(RN$'7MN/(U? .D\6;6F<--^*D>OZP3Q464 K1WPFVDU49BR?='I%C0PT33COVN,3_16+<D_I9OR5.'5\ODR1U]A><7>+UJ/PC@TQD)>,':2BAD6_@!"P6\:Y\] M\L I;H_TWA:9^G;(N(O]>#<_QK5#4&QZ8$OZQZSH@4A@AI( 4JRX.@.-O)-N69YB5# MK8:B;<:9?.XQ7FM4H[%>X? YQWR]HO9C?T:X9 1$L_/&^1V<+*B)VL/OD 9; MK0KRS?+\"X2N72]?;X_DAW#L.5!M];+C;[$[T7%=L8.O,#N2J>>0A"L9KZ*G MY4P?&9IN]UNE.QU^C]BA:E61+E7Y$JE3U06UL?W)>F_WIX'O,_E2G M2NY/Y2^Q^E.MC+W]25";\J3I6J_$H!D&2#U[.&,:G2A=3Z?TH$DE[4^0$#PX MA,JNS>9$ORY\BHD_$Q#KC4]3AY[Q4 4Q3AB$@%U)]V@Z$%"\,G2*'2M4/@=8 M.#9+9X H2$P=*FHT&2$5*;@B!A"#ILE3K\,WX2:.,$VYF*A__7ZH5*\@_SE@ M4@=#&IUM9;2GCF)=5+0_TYIEM>$18]\8!LVME.96,@B#M843[VA(7^ (P#V- MGWV7?F0F2&D(_.:/,:50P"Y9TWA[8+NN?9%"4B\3R**%VAV1%R+LKD?O,ZI/ ME+!PW(JA/N-*$L&6; N^Q,D9P]VD-^J,_1;L>$;).9&,%2GQ(@4S MS&?P76 MCG= J0%M#WDG703!,["W<%S2=YT P-SSF7RGK$KUH(84:0V9J2;7ZTH*?VK7 M6Z.3,[F<,\E9MZ=WY+J4[A1^HD^YAZJ_".NOLX9C9A#6ZB,);_/'<2/VDZ(6V2/G*8,F[*,G 9 M(XX8RLSKV#=&01+"12$97YXU\+K]@AF_%5_FCN!8]"6;4S[S5]*68<+P%62^ M\Y/?&PXYMW1!'G$Z"I>#J*D]XKC0$KNOJQ?$24'=_GO0A5CR5M.:\6Q\\[FE MRV1\6:UPO2\?MY^$+S>(;<"7\VM["-Y77K()*+-C>N>D]/[%V36^G:QLC-Q_ MFY6LOCI>UQ*QS[8(W-=;)5D"= D0QC /.'\K93Q7,?UC3T/WK2&%T.N)W'L[ MJ%^;E:N[(?;K+M+W/O=:$"8Y9?OI1:YZG>*-689>SZFX>[OZM>ZN[C8%=]>0 M_O2)XXPH7-]^/E)GB"2?V39F)YI=)^C^*@.T^?]AOXD%@%+\_NO"BD^$*5!RW"W3Q.."._ULI_: M'E/Q?K6ZM;Y^W'P*GMT@=5\__L]]! ?M/CKQ[S0EM['OTH0L0S)W^8JC^#SA M%8^7'HLHOL6_SM$F=;3YT]O3&;OXIW758/<*J*'Z\2_*1??\#FU]]T]NMOINS7WW3SZV\FZ=>'4IOP MZT]AI/+I;U#X]/E;\;A3X"2)WI2UML]4_+I)9<4$];C#%'R[4>Z^WEV4FN)G[PX-IC=Y'9#O5$)J:-/7AN503*<0VH/K M;F R_O!&CL#BA%EY[5TA.(;!%&:S(?97XGML^@_*E4I U"9J';LB#<,^!I 7 MA73[(;\GU%F-_ML..R8_O]H!]T#\D)_2.&DH]KMYU3R+E,845LD-W$^A5.UGS#?1C%$UCS-=<__ MN/03-XA X,;UC6X4D+M[#W.47;]#=\1AT$>+WA>4!"]X!Z?^'@3Y37"R&22+ M[$'"U:9WE'0D@3Q,^ABD'"==^B,.E%YJG/1^DL4@^)EZCRPUNZ2)_RART(:\ M1]D8N6,W*UEVX?J6B)VU1>"^;IF1)26Z]K.:8UT;5^\:FD_.7]5K9:JVD_)9 M0RM3M5YK_Y3(391*B:@W3S(IBZMR"^82T=9WX8OF?*,?)>3>?H)YRH'0@PSB M&#E%F[[APWB2@BEQ$B(#JN [(Y(S_Y)B2.1-7/J^;JE,;IH'\I@8X3S+?1/DQKEOFU.B'%HVY*RYVO]A[(][PZ*&#@HKM?%&T(,R;$X5S& MW8\:5^M2J0K)A @NXU>[&T'SF^HO.P DW=#T.DJ255A\U*AJ??M) %&#JL<8 M5--X,O#3)'M?3Q0.#>460YJ2@)$GAAY O3)*B3% MQS9A9PB%;^2O6_E)+5_\)_%'WLF3U"YM%2L[2MRS2[]D<)8;U.4 MYV[:G1'/R[KKT/OP"V/!YT_\CQ*S67EOM&!H9QYEP1XN_$$+9I:1X9[-"&G( M@$JUX]=@.9V^$T $;1,*Q6$1*SYT )+M_HI2_GEZ3-9FB MBQ00C)M.SHB,$$4^W'G:GA,+.4@I3$(*6SSA5!RECOP$%1\6-P M:0B(,_[T#X<5!S@<7CLC7F MZDP ,<#W,X9$\FZ]D4-V3V4,W3().1_ 82HY,9#EK#($#BHI$X/KP'??."9S M0<<%WI&-Q=/%G%]>D3+N/3H:'TRG&IUG8L!U?[@M^*9)#&G8-/9AI\ ]7:X6I3L8[V@LMQ/Z20 MV%GUYO7"@TZ36BM4R6YRG1#\OHH"6)8(!]%^J/7 7ZG_^ 2G:5FJY#PRT$K2 MU>;"V?FI4X=P+*>+$:CS=31R=;S\OSP6=U=0&)%5A9Z0D+OD- M!":9Q+8/U*/]):I,Y.[6)M_SXNC=O*D@*O/L$TJ24B7'??G7\A%6M@:YW2* &V)*A9B/U!V#RDCU"'9420-6GZ!NM,%VM_]1;A@LGA@1]).AMY/^OA<3M/\6 P*QF_J^#TQHV0 G;(#=Y!Y)_0:3L4)%= M2O]9I,L#_CAS[[_V22KNB*11:=W=(LS?NT_4VP=TM:FYTY"65#&$!;PZJX+,6AZ>*O<'_J-,[993J_&- TU M@=6MD8=&BYKE"% T1>SH;1(;O?)FO3!PG;;P9TQI8X5@G7X3].):U=O\N=)I M8IY=+[M)'Y\1R<3\ U?S;4K=WW^. L^-K@.WK%CH+=/DUZ_Y3LP/92A>O3J5'E*/-V8J>?3U)&+(S\::T41" I24JBCGODUJX]!7=< ^QU2\'DEBY(0::+PBTC:MY^6H/I ML=AF<\5KVQ6#!]6Y/+5#$*\7Q=."E7H.Z]@)DPV-8^K-'Q)^=Z_%6MTH322Z M>YBG+N@[D)D %O31YF2(*#&='=1-*?%E,\V,LV7L&--&56ND!8^9R?+3<&,0+ @!8\9 MX5SL!/OPNC.1G]A?9!?[<)?=\?E&%)3A&D3C9QH_1)9UOA UQIBF3DJ@JB"; M#4XC45JE3S1^?_K D--!CG2]3=,S11)$$&-A?UU&2H]FA/.UA1WCVX>3D85C M=LX;[)P9+Q^JH.P5 ;1JL#IT;YJZ9'+*. BDDL5?YTZ;Y M?CWP,D=I#YSY8.E^]#*$0UA'14.-$44*]V:-UC-MK*'X>>2038J-EE"6*QU( M*= OO0UAN5OF\7Z21/$;O)%&5=DFPEQ["&O<,!,DQ(<[61X_!!K%6RA)^A*R MG]%&!EX4D89SKJO]B:EW'3FD(&S*4#V2[2-:GT^6K5;M]/2ZKC9)5G5_BOFU M>5-U3*Q+!>1! L)$0)U1FS?8(DG]+7^SN[T*CGS?84B4OLN?\UMZ4*=WX\-8 MF;W0*]:5O>I+O>P[%KK>D@5O^.CGC<7U!:;"3U'DO?B!IN4'Y3^M<6#XGZ)A MX!B.^?1&FA%L\B,.9S=A'&3ORF/&;$2>3%_9PH/:64SK@ ^_*6!^K M$!N[?@I6"$S*$LM'VN>YP0]>:\_$GI%"\*S/C.2R$RD\BF$1\6]3,?U1+$QC M6'@]A]A8(-\ER6J@_B.964MQ9GJW. MU-DN/"V/\"PPJE^A9&]Q0H8_!.J732_RVM)TCMD[*-G;$5+9/&@\D)7'_4W_ M9?%[1-S^U\/K:> TFFD "I.+;%D3=XTMT7^D.[BZ"L=XHB^7H:N\.JYLB!2^ MVI63J]/UK9 O([<(/>CU[(^+6Y(Q9_CP)5].''===R#M2XJ9VP3[2-GT-_1= M)Y!O(4;Q?S +[]W?WQJB3:,3ZLC35;J(PK8>Z"-26X%!H[.\X\*R>BD"V>;R MY2]$1S$446"TO'WP*$K=04$YN'$$XPYO%@7YF8.Q8WQP>Q8L2,$CM]B@"+ , M/=\)G4X <-AG8O%?JW)3^%ZBV(G?2)(ZFPT_ M>!UM=T[X9C_@S9JP/MXS'L;"??E,W\JZ<%->!^K4NK4#XD#74U9&>7-KY"&N M*?RH\J.710^'E[JVT]F@&D1W\ 0 ^=FU<-, M:83)%FL2OH(#LM@:: :R26FHD1S8'X]]+P+7!NXBH&X:=PIV1!ZZV^(,'+LTEL1VX@]ND8% $KF1A,4N4H_]U2X':NG9(([I5M7).>-0( M<3:HEK6O4Q:YW[7M0K/#*8<@NNZB(+B*XA'F= E61D+4>:204O6%+ZR =O/N*[3AR_P1COY)?E'O%$HSR_=+F'I\!N M^4OA+;92=)E(?#8I7!>H=>TG$+&-8I\:NK/B6J&@3VYKGY@?-X8'4;EJC>5RG5GDK(NWM*"10X(=]^@2"T>8W#9>C&E(E[2<5_6VRHZC.1X&Y4N2ZZ M:SM,(+R;Y3X]OD5]3,F O),LCOQZW! ?1NWE=N>X?&!.Q.H1B2EKYH3^/_E$ M'<7&Q94?^BF]]I^/KS/K[65H$$ >Y=V-4;_CT=8;;_U]:)1K%"YTE-3-*3F MQ@X. +C:I_N8SK=1G&8#^N)U1\.$MES-/I'D= %#VV":0-)*;YH HZ_6,,## M0XY-Q4L"D$R"&1NQ$]A>^3MU8O+188+ZZ9OUB\]VC!Q=;\94 MP:?!:#7FNJ/PQ*Q'8\@0P07 [K_'!TH3Q?GNII/$^YTR4X3]3IK-Q3XU>-> M+HN8MN0@B [P1K,C'&DA[^*R76!;XHW1MKE*V]0 PBY"!"D"G@EG'C,DODE0V>C91+'9R9H2^RLZ!DKA40!>T8^SW,>_"UZ-A MZ95]% 31"Z^F R_K,9E+WW[)L VDY*?(&0%_RX5SPG /)=/YT=:$O#S1,/]> M?NC$P'_'=(='G9CCYO29\*EXBY=9I]!]%Y7>7R'OV"\<\-/JNUT<.>[3%^/> M/;/I.X(W49WSJ!M[")? U@!DVV#K)QI3[N$X,UUUN>;63DC'H&Y*:V:HN&L@ M:PH^X!D+.X6(!]:;UQ,^.6P3ZG[Y&#U_Y5&?1^P??X$_S\2?/$S9/_]Q31^= M8!&F?OHV?_4/-^_J6R -P 9U(-IJOD886DU2]O4G3H\(@N0W('GZ>6 ][Q(\ M+R/8X*Y1].!KQ'Y5IXATJO)W2#VJ5L3>)0(R1Q+DS!7B^=4)?J?Q^E76<8;: MU//06Z;)KT\L\WU;O834NV>9ON_Y3NS31%GFHS\EI"YHP#QR;MN3#/)Y[:E: M#5I>3@A'UG_+2Y2+PNM\XNBG,%L$&<_@I76/SV6EE.-.\&P94? UAB.WE-F# MN#F9*0&D4S% ME^.OV8QKE*O<+9(FOR#OG(0XTJ5L'@V]I _I,DS2F$=;T^W6^I9(L5)#O?*" M34TSA(F_CK0F;J!>1^'C&0NJ+0%.I&"%X?;I'7V.@F=X;B:FGI]>.2Z\QU1? M(5"W#W(GUE*Y[,Z-'1 [MI[<_5/[C#IQ.7DVA@OZQA+5-8N9Z\@)E?/8HP9( M/4^MC,PEJ]\B3Q85P@XZ1^3X&3"F9,NYCIL*&M9X+95!DZEHA\!\YZ-B\+ O5MQ)X@Y/A0G+KO#7, M'11-D8=BDX+E.*QKAS@(&\7MZY>-=B)Y0!T#7A.P_.QT4?GR M^V$J!&H T)@ZVZQ2#]D6K(;!9([A[?U3%*?PMWBPG'KB!&Q#"JC5&3DZ=3/" MX02EO2=B_.JHP"E)_:RT[ II%.?%_SDCDAT1_.S-:$:P!3\K!P5_0]??P7'Q MX536 +J1E-;(+:VMM'P*L]/]U+OT$Q?TO8WIUM^#07A3EC*"Q!=1TG0,^'2J M$\!) V93K_!T)HD<64UH9FC%:$9*(A I WF72?$%AV31)Y.$<%$&.+/\@S!> M2!^=E'KZ:TSCV_":)LG9OF0W#PSD2P.YP, U$!1F#9%X "J>#P79'QA)WZ X*K=N)PS /&H=T]#/XJ[ M[+!W[HPTQ/H906Z&ZO=$OE':0Y'>)8[5.Z=/4#F4"T(2+@F)55OWX^ZJCFB> MN:8!;(ZO%*9"JXW0O_$ CJ(I4C#04; R[M:TPSS^-HG;/Q<$HOS )R=KT2]_ M<6)>6?B.Y<\U5^ :FB'W1Y5B95\\;(/8#Y6B]O5!29 15/WXLSX8>V-N<:& M$_+%XUMTZE83\4=#-^L.//*$"W:&?/*K:8;<[52*E1WOL UBUU.*VOM:<4Z0Q#U= ML':Q A9;+J)G&CIA>@<3R)HDKZD=4K=J54VN-M0V0KZPT"RSB36$AS?B^9L- MY>678O@L@;I*@>_R 3B-Q *:FPDQ\DW<8?3G&Q*2+.%T3TA[]8*M-I-M;CFE M@#O.91N:32WH#&6U/\71?L=O-59"2D0=^U]XD=MR>!G2M#; 3)?).!+^#BRX M"NN3=+T>4PJY>G65H5=M/K405$AOX"J2XZ;^,]1QB6G@9/41>2R2*.37.I,= M=?V-+[>29-A:CE3#!KF(PB0*?(];0.RH+4/0EWHA7,5F1A$+E$0NV),Y?U:< M-5^<+]>7\Q_)-6_XY(3D_9=??SUPG*]?HHYQ7NXQN3@_4KY^8,8B+.(;JAX?LOO^M5/KY+E$.=^ZYQ7NDSO4@_5KDEUHL.TXSV M&OF'C7=@B#WB#1K%3,Q_]RTT_/#EMT./[%#VMV/(5[I,+N*/%6X.^*+])..] M1OQ!PQT*FR./=H,F,1'L$.0DBLEC3!V[A;.O_9#*$Q?Y22'GU=_NM^=1'//B M]!?.CGVCO-O8D012]#C%()4S-QWZ(]YTZ:5&[S,ZOE@(.(B;&B3A!PO[OX/ H'+SEA8H2^5*UPX9*_F[)N-G$J(:1,)@9X^$H_ED. M5C4=DL1! RWQPD"30JJ!?2(#]W #<_;"4NEZJ/T!V>QE5QE\5B^*\;/+B52P M)%_C_7Z-;MAC45/QX\/NZCZ88U97]-,.P2>E4"[QF%F]O3^F[MG ZF3/PZG! MR_($_(YNQ:VC4Z;@C42PQW\OH[1-P]44,&-#/T6,C_@Y3]23\0$MDUG$>7;\ MH*Z"7._)^!V%B&#B\]G9:K-P8M @.:>;**9+>-J1)NG:>;V$Q5A7-)N'7OEE MOW5T0]-EZ$9;.G](TMAQ#Y.#83DAQ9,1S"M7 P9B@WSA8&BM^P9K^)4SZCH! M5CM4Y2*K#9&2$2$:D;(1)API2T>8>-7G3M,(BHH0(2+Y30HY!P] MW H"FT))!9_+873?MRC 2$ZL ,9HA;O-Z<,5CVOE5CH'B6>(;W)\32\_)S;[A.(=>S\E$JJA8&C'K#A$G*J,(3Y,D. RW+9QH.%:Q1CV. 0UO+DB%^3SG@1 MP9$9 M?8R5*NP7)#BO9:Y&[M/*J+:#:$. M(G7?R<2-A@K]+TV7!YNM$S_Z8<&U@T-=,T)?H5M"/5+V80(T/3@%!MW%76WH73YGG?)SUO[!.>O#4V-.=7%M M!FP\NN$5ZGU!7FX!6SI.-N2/$,R(E3M8VCD8U@U#; M*R@;F\E=[+?[P($U);&0RV PVNZSS_ M"GG4]H8]@;.2)T5&*HW5S!T/KBQX@6N:_!BJ&VJ$"MCTZZCUEN>5G_ MADI#,Z2!W*98^3#;81ODDY-&D7OO$C,?J^X^^#-4:YI%7#GDL 65R8K:!V%E MNJ"V)/]WZL1-9;15[1"'5:-J,JIJ&R$/JF:9#1R@R$/IC7& DMCCAM,P^N6! M!&0)HTM^$Y0MW 491D,([D& H:GNMJK=1(!!66.[MM&$@&&0>MI58$A?(GO M8$Z_*C PNDB P9R&++B_&088&DMUJUM.!1S49;D5S:8$$,.4X#Z "&!B$20, MZG@ $[R>.!*@,*@E"_>_# (5C16^E0TG A3J:M[UK28$$\-4[JZB!%3KM@<2 M!C6L8@001@(1!G5D4=[K!9 !#@*>OTD=.QP!K.V$%&>Z*:TZ]G?< _'6F:;@ MIH[Z7?F)ZP0B7O/HQ73:;P ;7.T904IV>9V(G?.VY; <;4B0&PA65:U6&DT2 M2J\I$_F2)F[L\ZO>:SBXK#);8P_L(=ZN;K6TJ+(YYN#6D+K_Y1N@/2.<^HR4 MZ)/?. >;-Y?K%;_V0[I,Z?9PRUB_UR2=^DCM=L?.NTS.N8\E'\+!@0OA;,QM M#\%%0'[F* MT BVERP$;G"=[PMC9V "G,:?H8ZIO? =^KJC86:%(Y?+OK1936@EO9%;X.!H M+=SY@3B"4W/9>3G%4-2##%),/M4PY=2B*PW$N49O57K?#G0#Y?9P,GMXTA[\_"D,.X=##1J<60C@TS)ET792B'&@ MHAH6LH:3B?U#>8T%>$;8S@K8T#I6!GSKZP)5;2$!@LMR8>.*MDY'Y!&JK_SQ M D%3+\2QVT'X4Y<)C@(:^/#"&1DG6T/S*#: \.:I?0/ MFB".:)6D?7U2TN,Y\MU0BW6ML6A:+2!"=H[OB=$ZX+?!=TZ<^E:7W.JF/8M7 M/TDI\V*9NJRCQ2O[X+ :5E\:R*.SETG:U@*4!!!'=C\]C*\0Y"R+K!YB2+ E MOZ7Q'DI#!LGQ49J1SL6-:J:*-:+<&I13MP@D'*+! 53---^:8BV@^_MO9#'NZ;:ZCG\41?$D:XKN;$9>L[">HB/IWKU M$!D+ZA_Q1?4%G%73/-U3TVF:,7V@M$9(9SVF%]&'@IL/Z!G)>* *9V-Z\TK5 MKJ"&>X#.5.9%Z6"98[7)GWZ]C1+^MA*?KR0^'(3TCPY5#T!^TO#0W9#Z0*)/ M>[*0TT/% <$I*T_)#VFSS+MXLEF*1'XKA"(@EM$Q MH+,/,P##XV,]!N#3*^_S5\\B=3:-X\"O.85OQ9$.\HL3[/E*H-BZO$:<DBPP#F26[M@_O M4.2+BDA6'>KV47+$E+80IR \.%8EBB1 C80.&S/:!)%#RNG&:MNQU*.&&&X, M*&5\+[,TV9 2S$@N@YAMY*4_\&QGCF0V.,I,WHG;M;PR^1,5M=K(-@K3IX30 M$&[=?F1Q\D2^>3\CT,'J^W\ZMF+P?4-?T_4+#9[I1Z[(*::O)__5V[%W=B1?M>GV5MUQX[QM0;$](ZV?:$RY"TT@ESMQ ,.+UGT-T2=G M^PQRM?%S-#M'DT:SASBK)/!1TL6*!Y]*8^;BU65-Q<#:QX8-M*:,%&TFTH8- M%:&I8DBK/D,"2IDY$=R)8&\677X01@KI(]SG[XTO@]KJK'I84)89-38KO-_O M=@$_+>T$R^*)\3M1XV =<543Q8&_7@20XD5_8\@)8+?>R&=^/97I718+GK'? M^*$XH>\\.WX );;'G7V-K'.9'2GQ(QE#J P@6%H[Y6C;*G[)*G%A%3ZI1W3) M4F:"BM%#V1@I%.HIJ3[C+%LB3GY:!#9V94,U1[!Q.-F8EA=.\B2J(<%:F\.3 M'?XYWC!C'=U!";;7YE%!>$&+UD#I^2+UER!*Y M)V8=>A7%W>YHG481.2(8,%<9-DX@AQA;3&C5NU 9\#Z+-F>,.^'LB>0/<2DE MX(&K7.^U U8VS798RB&69MS+LBT)B4IVI&4[8L*SZRA)H.0U4X6&+I.E\7%# M56/D*-2L9/7)TKJ6B+&C1>#>*PF,+*G0Q?" X:&NYV\W<,&)BJKMXN.W^:NO M/''?A<#4?+K5&(U^KNP])=]O5\)0/+P1P8C-LQEU/#&1Z7\9P7T=+:L=]IB4 MU]>JJW;S2O/)^'6]U*8<>99[LF!@TY=O:W*ULI$*ULC=B/-83NG7\7)WK2B.P$(Y+L']SL^1;R$L6_6_3E>Q93Z=MY M%'J-'ES3#+G?JA0K>^MA&\0^JA2U_W(T$#3G>4FO0X]A'_[C@FXDQ M%!AGP\66UN3 #ER;8N!QJC8(/:Y5U-ZKJR6B!*@:STJU?/".[IB9GIA( M\\>8\F7<0W5K\]*N?1%[:V<32!?6[HC4K[O+;]#93TA<:T\X7.R3--K2N';@ MKFV U"75RL@3"-5OD9\P4 C;_XF._*6THUUC7HXB(F[&<=Q3!8;UE.1L+E+X M:9:M0ZG%?=*T1%??%&F$Z2A868^H:8<0TK7$[;T"D1,E@BJ"1;0#/9O7SU2- M)^:C#:MFM2TGY*>FULJ./17#(ED(U9(*V5I6R%2MD7MKBYK5M;':IHC]M4WB MWG5"!5U2$$:S,P&OI?@A7:9TJ[T[5^Z W%W;E6WHVTC5-4ZC@MV3SYS#]!.7\+OUDMT^I M>&*X9B;2G0+2,#W!'/EM[6[=D<^E^VISPF58PB_EE5XD#SA3^,OG; E]I>X^ M.[&MVM*!B]VLDR>D@V9I]H0MZ^20 )#$+>W3>_M8UI9D;?W(&_E^]LAV/M[> M%2S):D,$4\*YDHSMC C&%BYECVV90V^K.!*:/.GMTMDZCS2YC_:/3RF_PZ4U M/M7W0PK'G55O.--QW&DR.523[.8 (&-"!)>9N!>((:4:0GVIK!LX_I;V>B%5 M)Y<2F[P-EQS;VB,-3&U5%5E1M3'"0-27V=A)04'?ZHV\837N?^*A-M1N*5.= M9:Z/=+4YWR=LTI4DOS[Y[M//3G)'_]C[,?7@O,;A,D+7OHA#L+,)9#AJ=T0^ M/>FNAX%=P&R.D#&&3/$A8TU>@#=YDY$]^[B+8[&B8\SN9Q#%>0^++3^5O1 M)KOF.7]Q8J_I]H])^DC!=S!35DY'FB*.,+\:3L?>V4DF"40OYW,&G\.::R$- M*8M#'MXJ#3.1")<)P2VH6V8(Q1E/11/DP5:G4&5_K_0]8I>O%;/WJ,/Z#7.6 ML[>_-1Z*.&HT$9]3'X*HMIB WQDZ]%#R/-,'*^_3R/V]."IZ&T>/L;-E_+]3 M'K74Z(+4T[HHG!>$:FF/?-:F+7Y?WRS7/*KN_,#<33P4!NQ( I*PS%R*0G9" MEI'+0PUM#\Z %!Q(QH(;P>9,I"WG4Z5\URU'1(P01@H8YHU7F72<3!7Q$&A0 MN=ZAJ#&U:)E97-L^\8+!C(!H3U'@,5G_3!9_[&NJRXP(9% ],X@27E*@YHZ+ MJLQEC^[(0:FK(?9E['B^A[ 3]X,PL9:2@-H#YFI=\.I.=Y,I0?RU/.8;LY%Q+ M9Y&S$#X*TR(>/9B].2%A6K(YR9\3#7)B5)8+R7LA0P-AODJ2M=.,-CRK/YN" MHZ7(K&Q"Y*\4JLKGHT,USUP52PV7H#CU_O_NCG8W3ACV*GD I+W -*GKF%3I MI$G37J#'I2L:.Z[ =>O;+Y^0@SB$D!*SOZWQU]F.XR3V4*$59S$S9Q/1D",/ MDG&5:$;).)@1A\G( H8ZMV:C3^,F^T6#%[95Y$915J5T\]3')DAT.-(*4QV_ M,3/91IKURS]E]VR'NK9RJ(4,IQR6$2D+TE&)%QCU1//"[ MS7R"/.CY"&R&,A<\X@#EQ?::)AVB\Q/#GJE(DYFA)DU V4+F:33("#V+8J=L MHA#M4")_>J*%&.+#B(QBI9)TQF'#L2#UX95JT0<+ 2B0'R*LD2C2\T J6.!^ MP-^!L352IR:/*C4I( ?:]N9I"E7EO6X$53))VW1 31U)TRMHJ?$D3)T>SD6C MAJN:>KGKNJ8\LKWTL:(_ZNFM0.,]%;".14&,-(3'5YZ9K*W'BCBEBRA<^"N# MGH7;F$5,+OC)Y!==<1I27P^&'I(EB80F7T0SIKY'' 7?49V#;A@V1K,0R1_;5Q>FJOJXV%I5E::A M!/W)]<9V0W7#.34>XGU^4__T;!VQ !/R4+9"/4 ["%\TB$/6&FFBM'B0B$E/ MEAAT,_$"2T%$[^3@.:GKW-95>1+\R!H_-*L+ $3J%?/"#?.Z;% (;=J#V?!" MJX%6/OI+,[5K*A\XI,L!NBN;M(_@@N!V8Y?1!FQ9+#/]V(MO%]J(N4PJ?+?. ML1%/FRG"V $UY748F@6%-CX:A$?NQ M!]/K'XH.R/4N-%$E;!-IFT':%I!VTX'LQY:^7!D7^>M#F>? MPB%V3">[X2W+-5(BL")HZSF6DQ%T=/B$H7=FI2,Q78:J0'=DJV..HYDKQYR^ M,ZA%7&>34!?\_LP6;AT* N_+=",5E #C35]2&HGL+"A!L/LR6[B89 7<[SK&4E<6>44+?O)[J JPYZT+%JF]>8FH;R:#@,CO'\_S M'>&6<0FVN-7DB::?D^G HT9SWHP6[:%P9%ZJ:^@CH5A%R79.9;C M[1K35UZWDC7>4JC']8C>%ZWH:/.=K[97FK==R4(?/7VM&]T9(Q?MEBRA*! - M4M=6[*[IG0[;E M*LEPJ:A"1.4:2*%]OJ7[\ +Q(I$C<2$$#(,3%=3AL <;YS.Z\__]B6)OEJ1[;I?_N]__.__]=?_ M\_7K?U\_/PR#*;!:F7Y@^\@#%W/&UR'KC,'@\'5 M3^<_70Z'5S\=#\\OS@9?O^8E75L1S!GX@[3(XY^&F[_KG;]_>W]]_>C_Y*0CG,/_1\-M_?W]XL1=@:7UU_2BV?!M\&<#T/T?I+Q\" MVXI36Y6R?[R&7E' R;?-M[ IT+^^%LF^HE]]'1Y_/1G^]!$Y7_(JHC\S?*1( MCO[J$M*7L&3I:^7G-AA>75U]2__Z!5IO,/AK&'C@&]^CM:BL]'>+$,S^]F7F?GQ%!!R=9$#^Y3;72?'?D>^,_=B-U_?^+ B7J1F_#%#Q M/Y[O*U6Q@R5,$4?K* ;+*(DL])MO*.4WMD)3C$S6^]81Y$L,Q8HJ"Y M#M+NM>4A6[\L (@C;H@L1>H$\,D*X9\7('9MRY. =J=\Q= WOXPFL\D*A*GB M!)&,*ULCR"]Q8/^Q"#P'#AGC/Q/8\,1#;_J&UB:0T *X/JB1<6ZL:''G!>\2 M6D2IZ/T!OG4CVPNB) 372>3Z((K@B#,)YY;O_K/E"$8O406\EV2YM,(U5)L[ M]^&\RK;@X&K;00)'5W_^! FQ78"J.HYB%XZS@)_A;A]3891G\ ;\!-R%P1*J M,@XM.XY^@[/=FR2*@R5LCAULP%"V"LAWEAO^W?(2\!U8Z-]IX^L $U.>"F@C M&W:>D=MNP,85HP+(+T'@O,-5%FP@]PZT)VQ!UJL'[GTXQ9^[\*=1%,&)TR.( M.\#D^8@*(]R"UWCRZKGSEC,P0DDJX#S YM&I3RT*4%'YFV"Y=..T:4.YH.X, M=N/ 1YUX!T3$4I6,D=TGO^3"E( "OL=BYL^ MK^6H#)-:\WD(LOYF,LLS=+=9YR]K::[BM]G8 QE_@(.2Z[FQ*T)G8CZOI>&> MP=)R?=1:0)AV*;X-2N/<'FS'6@-M9H_=;4(N5O4F8'=\C:6IAC6)%R"4AQ-? MO-[K@9L%_ T:&&^L,%S#9CA:HO%S,BN*Z&XF&971VZB4/^_3I*Q5T=N@(\=) M6Y7EE6:^^S0CN0(:K'"[&P-7H ;@TLY5.,)JJ1K ? S@$F4:W$%]@7#R[J/9 MN&C0I&^HV\WH#G.G''50-HO2W%?)GZ>_E[,R:?])=0;Z;L5)F%9F,DM_(\$B M3-_0[$PPFT'ZSG7@.P(,P?TE/;8 [^'R#U;U#2#_'S'=/L]']##"8[)\A;WS M[&5AA4(VREB_H,N M+@1AE4I47 3+2\N*@/W3/'C[Y@ 7W:48_GF*?OR:_9@2#?_Y^TWP!OO4URC= MX2I*\ZQ7X/WM2\/?O\FN3V&Y*2RUH3KE/_]^?G)Q>7Y^>7%RGYY=GQ2 MJF!9(:.P6EDKM(NRX8\UT52IR%-\6Z5NNE_MA>MM%# +@V6CG?*O!8RU#D+8 MQ?WMR_#+((E@78)5MF;;H[W_*['"&(3>^AFL8(,AF'XG917/!<1SJCD++ !R M0H[5$?($0C> /9)S:\6DEE!)US\RZ-7/J3A11\4TM/QL=Y3:.':3]H\0)@0Y M)Z?[YR0;3.]<#V13P08N=I/TAP.FFN>V/U-E^V*>;E!OXX":?!NT]C99NRIYQ0 !2,*%C,5ZJ9CH>3\"D, MWMPL5@21EIWD/>6&!45!D(+%?:6N3T$46][_:%\16LWZ>AA4)RO:R7KX'78/G*W_MC=GJU M"YLK6'X7FAA_V*FS)F;OJBE9?QA@KGU!A+)%]DT2(I39%C,2#31@$F$G0".% 4!X3*UMWHE""\@:N= M>1"NB:<@FU1]HX->^8(%96OMEZ7E>47H)RP+E51]8X%>^8(%90OJ\1*$<]BA M_A(&[_'B)EBN+!_?)AI3]XT5=A %.PK6U+F %L#S:*24$_6-"VK="PJ4G9DY,D1B%DT7P=/^DB9*K"O((PS[6FB!M+09FR8_8;@&Z=>O>^ M S[^$^ ;SDZZWA'#4/V""P5+]<(KYLZ-;,O[![#"._B;II$>D[(_?/ *!A1 ML)"O5C-S'V/CI)2VKZS0(!2\*%C7YXNEK7KPKHNXI/UAA0M!08J"M?P(2L=) MY>-930-]Y>_],3^]VH73*&YY_M=ONS<(A-TK8(KX7C(>]E;!\ C=*M@4!W^^ MF3R^3![N;T?3\>W@>O0P>KP9#UY^'8^G+U_V<:5@9D6O:8%)]'5N6:M4>=^ M%T?%;U(!?CT:YN\?_$O^Z]\W*":S.]>'IG!A9Q9D?J:8VP=\63LTI?:H\IN* MY/I7$VG3R-HP@]H?!RSLK08(CG$6:*80CX+4HTNH\#_H^N&;Y0%T+34NPGRDP7 P0F#* MJZDP6#BNZZ,]8E/T%'/P ;0"GF8NR:-8-,;I0L^E-B;5WQ:@+/' MUV"CAA5<-J&#T?3*BA)I_/!?*V:(MG; B(.0PRAY\.+$W@=KWUFHE\=C"MX! MI=;1?.1*SV"4.#AA8N^E]6P@N??1]?@@7&Q1XD*H4AIU%* M:8L7>R^PSY,*EJ[$W$Z#N7NH'Y9PDA[$EJ=V( E6((S73YZ5A;&!J^\5VM+# MSQY(6315 >=N%3="00M/Y8-%-9C>LSM?Q)/9CSRL'D8.Q#QFZ($?HM2%YKDB M=12A8S%"*/YL!N=$-.:L%6M1?\4FD_.!CDS;P&%9E!+P&+*^J\4)!HN=.I!53H!-62:6C,#FV8+/H)TP M.A%,U L+1&Q(J;,F6$AL4 $C2 GT:["5G#U/&#U9 M:W0(2]E3;DQLGB(X<)HR:HR7*R]8 _ ,/.367#CY(0W9IXAFR&;Y1!AY"C:K9C M \3""]:47JV=7-B MG34@9,^"';4I:Y/J"?]F[D0_UZ#E,UTK[0Q@I!]^[52P9&J.L])J+M/UTP:^ MH%4+[CSU0I,)*MNA:F,&TU7#B=R4)4P),7W":KH&:%!%+5943U@)C]IB-\&P M.:J6.C%.%+S037'):'SO-W-1>T(!8R&?<1RZKTF,3ANF >HPT:9AX,&ZS-/8 MI2"BG>**_8CI4MR#M00YH> F0L?J+K=EM4]-2 J4T)!2.UGM00=U\;$:1M"! M&G7CCLTG6;YRI3 MC _FZ2FX2I=7QW&SRC]9KG/OWU@K%ZX+2NT&Y\]"S?BIJ YV,N4BSC.(+=<' MSM@*?6C$:&3;R3))G3]NPQMVBN'SSE*%=#](Z!FYG MU!KLW!*'[S^VRA2B3W4R&RH,)IBG7!IJ@WT=1PB6)+(/17*?S/]_'C]&4PN1M,GL;/H^D]3*#Y45EV M%VR#BG(ZADVMR)'G#?@)MNT6?]:NP5)L7G6E(6 P)8 9VCV=S'*HV'&XE*;/ MC-*!F'*L]$L81-%3&,RP#G6E%'VFE 9#U$F/:D>E%Y >:_P"?#AT>B/?&3E+ MUW>186+W#>3/_N <*Y@R]UD&'1":). M*H,E0,?9=1FHSV3@.HE<'T313;!\=?V4KTVTB'1_SG7RO;A1&%KPM^D6W4EJ)I+/+I.HUUW9I>0>MFO6L";3 ]DCK&LR"$&SB_(%H_ '- M"O'##CQP-O;(6^LU\ '^E "3NO_" M88,DR U+@U PCR"F;@=6TO298CH081Y5JIMS$>>A\":D;/WADO>9;2Y,QOA1 M[:*^MB+79F0]3:L=Y5P\TF6 !RGU]3%5495WX=^Z7A)C72LQJ4W7! FF!-D^4K"">SVE4%RK#!6TS5P!?J=<0QG C!*L]O4U,! MD88?KC*TDXX0/;27&=XHIAQ/82R1]]6L=\XX2SEPF7&919I3I$H?='RL+XHO M^@F/+_K+='+SG[].'F['SR__.AC_UX_[Z3\T]THO76G@?B:=,:^BT(!YW:8H M/ @-0)I(NTZ"BYMJ6#\J+NQPHI:M#-M-L%P%/FJYHP\7MW]%S*,OEWA*"#PR M0]2+UM*5M^\ #478*P<[Z?2ECYF).IML*/5BL')SC>6 BG5O4;/-6\5\&RPA#MPF;U-:(^ED M1XKU0U$[RX6K7)!Z)-"FMIN$5727&D56:C6?)>,RY5KFO6^CR0*X!=E_[_WZ M,NXY\+R[('RW0MSA#6Q7ZH_6Y*Q&1%NH:S@N?0)-9(T4>0I "W2389NBM-.?:*4T3!%% MF:EK[]@H0JWZQVF <69IGCL] ]@]1&X,7D#XYMH@&X:>@1W,_;24=-RC=Z)2 M/JN=TJ7WM/LSHX10>.K#N=RZ;ZX#?"I10[M M9-.:8*:35")L0V=IPGQY-%"'&E^>'7UT#>N2';F/?7TD(L&5QUBQ\* 7%0\& MKQ@#/'F,50HK\>&K*H"B2) MJO(4!DCESO7Z1P2<>W_S]LK(CJ'^8Q?0L/$7I'-_@65T)RZE",BF7&%IZT2L M _6"J*QKA()9\G"A:K%2.>E QQ2^[7J@$L=U&HCI=V1\ZG#DN3?KF7+E<[2$ MLR;WGRGYD]D]E($_=U\]0'R7CYQ).[7M310->N2WE"G#YRV %;9=DA=).48Q_28S:(W&7H24]%,%+>PCZA'A1I<(59L[J3TC".0N M"&^#Y#6>)=[(MM&3483Y.#;+I[ ZV$G0[4#GU:ICT+1QHJ:J9[L^N"=< M#[P=J#2YJ&?N5'?=_)=MR/=$#ER2'!82]&:><@75/8XV9LRO7E .&M@+^%2: M,*L)>]A/8_EE.U7MU5?-KYWX.BJ 2U(,IC#EN*!NA6)+"C9PX+X17L5@R=HG M&3&PSJ(B1B-(N;2@B83N_3=( UP@89V+B7D.4#0T]%U/GG16RU,(5I;K%+N6 MQ;OSOC.)%R DGHBW*^P ]=7:+%T/N706'EH+(ZNB\ W<&8+Y["9*9C5ABWA M "7&9XNN9UN4.WNJ/-8:S(P:V(ZMV2?G#9FKYCR&YCPS75K,9NAZBJ5S;[7! M7^S5T9T:^0KID["$+_E8[:'@G70$2:&NL8XV,>?0".*V 7"B M.VCW!K\^%GFQEW! ^NIH%&,[K\)[#D30]MF 0 F^QU-$U98GZA]$V%\'QFL5 M#%&\]]I>=Y6"7^IZ[VY"&M79GFRT^>F3H[76JZ;=3MJI=SPR67T>; MB'J=2_E1+C("^G_DN?5F>=E,$UK2M6$32/UM?*?ZBU+*[(GGNJN^[25H;CK^ ML-, 8<^P.8UG,X ]!MYO);03.>\1L@;F$A0]N-_REZ'FPQ8G26M=O6:RAQ A MG##^5!S9YL/#EMQ06#CAW<>6GP=3_E(A$/,< MWO (_M_@ZV!;&OQ'4># \IW!3I$ZOX%7KNKVM4"D9M]Y*EE\$V;:\K8/"5+\ MUP25K6998<60V,DLO],&:X];/M02:C=(">6XLDQ@PR[-F6HO7<5+LEQ:X7HR M>W'GOCMS;729(XLC &>$3]"8-EI@^HB"DD_MK#'QQV M*;+:S,[5N\70&:[$TQ8-O=\]S#-X WX"T$E#$3(B*L>,8.U03NH=2E[T +$U MV!0^>(>E#\K%Z]Q[-)BG$NB,W)4PYU;D($>L':T/8ZQJ[BSW/#OEI> [\!"_ZZ/OV% E6GLGYM&ND;/P5'%CY$;7[W&_=+[,VH;/ZFUXIQ2=&V[#.RJTADO. MHLOS/UM"J+-^ILS:-646YB@OYK#"['>;_B4(G'?7\^!ZYMZ!I<(%#8HTN/L. M\N,VTC&EQ9_76WSQC70/H/R5P?8S@^P[_S[(OJ1SKU VV8Z92GTEN9O@*@/* M[AS6Y0PB'YX.3XZ/KU1=IV*J-JU+X2M$NZZE.W7U[D> 2?K=#:'+0Y-7SYU; M/+.+BWI?@PH:5$O2N2]!U67N-'")%3W-6ZX,K5?*'^Z(',1_7E7'9$ M_6Z;Z34MUB9Y66^2F_PZ-\2LDI0&N)M(2<-[0!&4P#9T:EHG6OLC9]*N&3:S M46Y^+0#UNQ6B2TEN%O@(SA(V7K:VR]PTK^I-LU1H.CG?+5;G%DLP"/.(REF& M&AI0&S(N?57>E^J?BZ3Q4FF^7*CZ[OS"[XE;_(ZI44.E'1V+\L@= M_*7X_;]IW@\8XYR[4Z]U]K^,;KB4S-KU$JT<;MN -"42Z@\4B:CFHK\CAFJB MGI/. ,:4-R<>P7O)-F'@PQ_MS)>1IR_@+:;G A$"UY10VQ2W8C8!\172<_D( M "OJHKQJ\62!H-&3>YL;=/<^M%R"&A.;='B*Z+EP.D,5=.>]:2&S_[=185N9 M6A]L(L$E[[D@N& )NGRNO,_8>+N7KMUNFT$^ M/N 9#R]EP4[3%VC2>JBT*R M(Y878"=A&FL)C:Y!$C\#RW&]]2V %5Q"R[QZVVM!;-U(]X)[KBU)!N@:0%07 MX67.0)D/$)NB"#EZ+A5>9-(B@.IQ%7F*&@7;?NK)$?R_5A>2!W_)/J/[UNE> M;B8CE9U>GIV=GPV/KBY.SXY.585:A$1:\WD(YGFTD!Q RA7589DE;[5!7:E_ M++8+1?6NI+T-3-F$;30BNI8Q\IU-1%,F/;4HR7!UB;*(M#UA=1?DN0:MT_J@ MA;DFWY=ARHS[\B_V C@)>E=[4[GL1E=)WW NEQ/D3/QG-+T/X30O/?UBZE6$ M?D.[_H;W/KY\:Y@RKNW8!V>1'W[P&H'P+;L1O$(+3COP;6C'5 ;,T1_$?*7W M^MR'/?H]&K+?1N<:(L_K0R3OG?2^C)U[OYRN?'0M:LL^5M9R:->SM&*Q>2AD M VO*P%;@#M >O!N#!_<-U$QXEZ PH*,ELRHFT:^3L00X8@!!&CN)^ MQ+'"$!7;$]C1AXMSHZPGU(XS!B8:-G#9< D:_#V%XWX5Z:.U!+?!TG)Q#U7B MDFM'.R.#-.HI"%4*H/$!P)?D%=8)!6)+1\PT[GNP=*,H"-,KG-_!\A6$.^2R M9ZP8X>)(_14X+K:V9'=$;$"[WW2+<&8&[M'$BS8D;Q)J)X)673PC+NRL6?'B M'4F6[GD5?)LFDD);MC"CWPA\.=3$"Y;2(:M&!-E MU &YA(7V5EJG8J8)&YPCQW&S^GVWPKGKDX_/N/+V7Q;=X4JX--.@A3U&L^/: M>+FL;[QDI?1ENZ5%<+NM$\?9\CQ3BN%1?4K1%%6O+Q,,@\+K;83^ M&W#G"RCIT1OL(^?@,4'[:%#_"RND=!B=RM*NKV@1=D\8;M-"\''U$<.&/J(> MB*\W742_(_)MQ[^=BI6HN%[G?V3O&+A*JS:1H09= T_D/H&8C8KFQQLC;'/Y M'$2W(+9\)KIW0OV/';9A?_QA+?.7JDBN*-CT MVG4F+4,P,.'2V$D%19$ L!8.P3^EDD8[XOBHJ%-)1]<'^HC^)CNIM*.03@&! M-@(F+'&JN/H'L$(X#IXW.I!@T^G+%\'VC8PQX-*5LPM&SBX,Y8R$2R_WCFV= M+QDYNS24,Q(N[/ZG@/WOO 81:NK3 $L$*6G/N>"&A@WM)Y:.*U21XR$+'96D M9M%!AR8H9)Y*WT2(-XL<>&.%X7H6A.]62)GE-Z>O&NA8?40B 3-^#J2$(T8- M9O]U(%3OCFHXN1;@I>0;/0QN[X&5H0HE^,?.<6O $O6&5>MWDMX:^' M%U>WP$EL]%%L5]VFF'YP2^&FVJT+,X,![NA-'>,#Q3.=F$<[O73M^OG1$OP$ M5'?_/_P0V,'<=_\)' CI&OA@YL;1+;##U L"-HW$0SN:*&32"XCCS'$BC5 ' MTZ,3DR1>!)F#+D8>0K_1"SF1Y5"7E'P+23UO.E/?5Z5WKW.[T7NI;G]&K1+0XMZ0M7-EH)I1.PH]2[G[,ZXBC92=-(,(]5WG[OS:IR0-]GO MWH=?!%&<_2UOB8]@MW_BS6Z4=H2 E_"FQ58?W)<&U(4B'RW1\3.FVVI=GE%Z MDV,-05M]@@38V$'= 5A%Y.^+W*A8!#?T3LQYC9)*=^02WLT0+0N( MI-K5-H]/3UQ0]N?[U<4QB56X;]V&86_^OTI#-!.]B1\ M >&;:X.&\SQ<,NV8X^9B2R<71CTI1$[5>45%L*=NN*0Z$L)HV>I$B@N@3%+&'K#CD(D47%)C2.$"J)EHH)2*4&;G M^0C>X;H,1?0C.Y$TIM./#ZHMJ]TE.RJI Q@4"UJ77"<0&/PO$R'T3+UGIR5$ M0<-:<\".;%2%0_3_P($6/]%H3-=[0MA1R70:SVMQ8WE>]!U6/ ;H%5L ITO? M ]^%94"IT(AAR&P*6VVA"G(T[[ _F[]3Q!NM@DQ.QCU1%4TI^J)Z[A_P8AP M?_YG3.0AWTP4U[%4=^SN!3:M-E1R\% ECP^:S%G&O>_ "H2NY<'^>P7">%U4 M"-M9TK)H10^?I7>=$UH E3HE=!+;(L__JBF,H8(%E\P9WF0V@X/F9LI):R*D MY,9PP@U2YO3O5V!Y\<*V4-PB.]ZBP5)$SF ,22U@RKQ+^$OP!D(?35BI!.&2 M&D,-%T"LFY&0&T7H,/T91+&5A):?[C&/D3<$_'5:/\(E(J:@VD/>[Q!$(;V7X.-D8H.UJ6_2P;1F>.W*9)0 1\J=?: M-'/2+7[;]*@"KZ?N<5M/W>)/^9OC:;C-4CT^_77W/7#<^RZ:Y(Y6*UBK5(G9 M?;N;9)EX\-]O8#R; 3N>PE5,=OV.Y-';K5#M>B@^GU\)X#6.",D/D^"(U:XP M[?0B00%UF0FTE5'R(OJ!M2U..XD)9%^$M A6TBO YHWEV4GZ=LL/.*<)\Y;Z M2^(ZR*GAWL^ 70,XT0+38.7:YT?DZ*GM"S1 4P3:ZZH2;"F]=-6ZRZ=MZW0O M6#N=[65XE&0WC?V@;Q:6/X> FU:]Z3*+LC1ASF^.H,A<-W1AG4QDY.O%6%,4 MH5R*P%1W0;C9>K#_3%P(]]XO'-YO@N5K?@L;IT[1W]%.Q=W$U2#6O5A,JJA5 M[:8WF>X9V,!]0R-0%L[A(8BB/-8,ZG_""(%FEBY#:55SGZL_L-F'0-O:1:_ M9(T[_%SM,37U;0(GPC!;\8+UWV'MDNB';V]_U7 6(.4[QHIQOQ83%)T,=Q1U MH>'4<_/,;H?I9ZT,[>2HQ124S4QZ=9421^R-.?8P%>W\+>T4W5UH;".^',L= MS+1T8[Z"KZF[!+/06@+8\Z0O3?HVF+QZ;G:\_@+_-YJYP,D[K.=-%,XV8N_Z MS4_12[&@H!X>-\LXUTC^Z33MD;ZWQ9!5.S'N;T[1UCI2@^VJ"J9*LD8+>6DG MJ]9L\PE'YK"\2AO 2VR%<4TVRK;?I*BZ&0H;TC+AC'U'__US<;(Y/EC= M'!_0$,6\S_*YO\([%^+:5S$KLCS1'&T4IIVR]K;4^YP0"97.Q>79R=%!2B=' M?E!3(M'"T7 NO2_E# ]Q4B1DNY.R^Z9!CZ3'-(G-3E(?0MELT>MQZ>H9($=9 M=(&D:7N7^][52=M[5YMZ#$H5&91J\GGS:M\NPV1I(-\7.P;.U%W"))-9=A)@ MV8PWL#H6KEW_UNHFE@PC:'QEIC/J=!EQ:\5-KSW(^8AV.I.H' DRI=M2LSGAU?]%R29)6TE&6CF8R\]\=DCFUTPU6E#,-)/3\] MV^OYZ9WEAG^WO 1\!Q;Z=]I ^0Y%3^O/QJ-2!VFQ@W*YO3GBW%AEBXIVR$G. MHJ3GV52I*>!HSHLS\9^!G83H+3&8X#'PP^*?UU;D1J233F'E:]<[L?!?[ESD M6D*O>%NWO.:*6_>Q&?Q".+$E9].5>"I=U[7 ;A^%$4=76Q!9+ MX0DSA=\DQH4D9=%.&]QAFQ*M7Z[]'3ZB *'ZV8O#R;JV($1J;$VO,*B,E M=58YD.K%YZ:WNUZ79FIW(?@S ;Z])G3J##FU8WK??7M;&^EU?M>T1MA@(';N M##FK^*_4WTIIRQF!?4[TFO80Y97II/6R@Y@:CWN_?!-+GU%HW0OG&P? M@J.-ZKN^3T&8DA5O<#4X#1!GOAPEZ"L>#C+KDNAJ ;VZC7$4NTLK!I-9:TGP M%%&QR.61^L.UKFS6]='9''H)Y%?@S&'/>0LB=YX%4"<,)\V)M2-]WZ,(AUER M\L\U'#SJ*(AK&UQR[=3 P0X+M024>K7LQR NJ@V<490CV?H(C>$4.UBZ-OH# M>01H45(/5$ @LJX#4290?R&=/]B&#O3MJTNG6R%G\*+7\3944DHW<0,=6C>I M]O$VM."!4*\J$W0<&G#1.MY&S[B@XM#T$*Y#!_Y ";DA]!O::$/YWI@T:^8* MO11X94W 9GV3/SV<_J55&RU1O,&&;7IZIJH%ANJCN,CGM[H9W])$>H7+H"CF M$:1/U$[\[:^(8FE(_ZD3;NM(C6"A+.RY%2V@*=%_QG\F$+Y7<>S8;C5B!D/F M_ ,S!^];:\;7EH: &+PL TEBU#<.DD'(/6G%RK2@AXH0 -3ZX,S3!3$($8!/[ M_C%!Z^3);+Q<><$:@.@F> -A[=T'_@(.7E\"S$4X%--.2'>6#;"K0%J63[&T M,1!AQ[WGLZO)K&(0YIG53KZ#EE4W*^FY!?4;<.<+=- (^TQK#AM*%$]F-];* MC5'5:MT.*?E!:Z.5<7))7!FUFR#0&_?&\NSTV:C ?PX\[RX(WZT0]X"6].]6 M*3R&%)X>CK[56KG8F3WJ^\#<=(4*O==5,U54M57TO,-:[J2>ED5K$"*_I6\C MV*L@"0U#NK6EO=S:JQ:!,=M]%"6 >FHK\EN?+4)PB^"WMH13&1/:P@N(8R^[ MI;N?!E'ZX&>KV$^KH)F\ZWG15=8T?#!'[JC://$MV(J_6*Z/SG_O?=M+'.#< M^V,K1$&1]]1P\-__;$?[:4><#!@9JMW$Q8GBY];[WEI:F%O065VV/!G[3F5" MMI>@\*7S2\Y8\&?U6/#EPGH3 +XXR;T)EJ]N=H>%%@">E 4*Y?SJXNCBZO+B M^.3TZF(X/%?4Q;W8"^ D'IC,&@ZKH^MUZ5^DT.^\Q51;RDGVMKW*?HF;K7J7 M(L0&>MUC:P!"N***2:T=UT*(JO// U]_FM&/(2#':J?FTXYZ'H[8&*;CE1G= M9K2,@?W'KX'GV, YB9=-6 M1UU%4)=7*U,(TM(;"%\#C38!.:P\B1<@Q+U;RUW. >E-C&T$C9;>KO*X]V:( M5S48,/X6A'^X_CSWE!LY_Y-$,6J/A(L:'4H] )W)M)34AXY5#:$?P+EW($!WYJ)5?>Y%G,V G:HW,?Q;LD2GXK'ES]U-XNRT')KI MER!PWEVOZGR@'2\9YM*N$C70?C[GP8(6/8,#T"LPLPBZF9> &>X M-;U=Z*,WEF9<-,S&YOP(8OX]19%?U5;58O/8NW]BNC_CP\.SXZ.S]3M5VIA1?CE?H+_MQLB?9BO*($CM3%6Z6K%Z,& M7 LAJJ478V]HEN#%J 'U/!QU]F(4RW7CCNQWL$(.=NC(+?CIWK>Q[HG-"7O! M#]W"U1U-#J@J'0HQ?-H+RW=MRROB3 7A?T*;)?8?:P*WM$R&\MP*MEA?!TF< MW_N.:_D6%^65/ ?#.!VU(#<#<83?OX%U&9,S&$EU"\B"#NKE M-NP?L;7@:M7;#$;RW (R]J!ZYJ*380JJ/LT9N)0JNN?5<;F*-(,BE&#?!'^[5 M1Z/DHU)V9-EUMGX$\_0;*PS7*$QW^C[%9%84P>?1<5X/0544-+!\ M9U"NS6!;G4%6GW\?P!K!+'FE!JX_**HUR.HU"&;; OOB"5)F8X>!DEL-V36$ MLPS%CB%%;=G\/RJIM>NA6K'7[.1!!TK89E!]/>$%6CV-W%?TMR]@GBZ(">X= MQ#S:,E.$=BY7 M2Z9T&-39\IART%6B?J<\]-:34CGDV[O"E:I;;YHK8%7I0[4P/ MLFFDX>ENA&36:S^;I5Q^E>/ M!>R.LZ3ZW!K'E $5?79VJPJ_<>?Z;@P>W+=Z$)R[)$95 M7D(=N_],%3_^6 $_HEFB2Y':CEOM::WW:\(-)&$-I)L8&TSR#-!.$$0^F=U! M*BSO'\#:W>D26+)VTA0N(RZE=C*;U$6[LJ?#N(SU",?GZ3OPWL#WP(\7V$?V M.A7ZJ5DA%I/J/ZMJCXG/3J@I3]\#(2K-R_H49Q=#25CD]D6&\/O8)Q7;E?8I MQ6ZFDN!MVQ,QW@6)F#EG4=BG%#M92H*CKH#S>3Z HQG\/$9<'4L[)'7),)61 M(7\)1L)'"21GJAH//8NK^A%BI;T8SB(2(OIJN7\]6Z]$;!_F@=OWQS@IL3^>8I^_)K] MF+()__G[ YA;WABVS'C=X*'=D$([UGB,OJ6,%9DF-&6U;'2TWOVS-@2QFKA* M"A6*3#_=WRSO#Q!./_(P;^@*ZT_M7NUM69)6Y%&IJ,[E14+6*XRE(#_?WG:6 M?/CT>A2@L9T_@=!&EI]#0]Q9;OAWRTN0__GXPP91-)D5]PG3WS>T;J[\VHF MC<9JX^Z.V,AW;5MY??50 DR !#5\:O2CO2R>;\%K/'GUW'D6LIMO,7Q1O^", MRAN4"NS-FA95G'GQVIPX\[LYOCR_O#JY.#X^/3V]4M1>4?WN?5BK!-U5(BU: M&U)JUXHYK%UORJP ]9J*56M-N%1<3UA%I\'[D:P,T+C#@M.9ND=K28X!CTNN M.8U8,F@L4A#JQ>4S> N\-Q1\#([J;GQGV2CH4_-M5J8\FK-*(:?.+3]8F?L: M4Q N'P++QVY75!.80@8C,D&7BALM_Y*\PN)1P*%T1CGRG2>(S(VB(%P_!C' M,L*6T22F.B#&.EMI,-#1-HTPJ35GMOULA8S0E!N#2+ 1>OP-=CW1D[4FK#2: MDFK./IG#N@*8(9KJ>&[Y-GA %R*+^)AKO-M&/:UA:F#':*1C-S+>0^#/8:V6 ML$V\+((P1C]GD0F!D\6P(XP6],R&":8#:*EWC?78Q?KA6YEO%'#09A RQ5,( MEFZ";)4FC:($-;B;(")YC'4LU4#-B;9&5S?LJTR,/IC#.;)3D^.Y(CFBIHF6 M6<@.&&V5DQ@F%"JTKB[/&]9C;3J@,N8;%.0;.UXUI#28?Q)"R:&#=6C\CT$6 M\IU)#=O$!@N" E*0?[&6)Z9I/!C>8]-:Y(O:L6GQVO ]NHGLZR'( Z$34E-(9@;HUZO4?_="M.KN\]0G(3%Q6XR MS=GC65HP0=/K?8)RE8E+BGI"[8AC,C^9M=XL(JZM**TPL;.L)M*:+ZX.D@&7 M7FR-DS!P L^S0B)?N\FJR,XNSTZ/>\H8$S*I/6,4QB6^X+]VN8*_^OT9/1?8 M,'95_J8=*_P#%AV/5'=)=BX:F\O.7[7A@V[5!@;H[4%.'\;$P7?7=Y?)$LM" MY>_Z\4"H5Y4).@X-N+ ^R%R4_]YG+J@X9#KCIT?TP1OP+3]^1@9J& VPZ;2Q M>ON1@0\;=D]!!A.-RQ-"2FW8X+,IA0L"-IF[X+5ZI(UZXN,WYR@Y]&:'8&4* M/PPH]\_3]#W@Y&F3PVB>R"CW.LYD]4'A>7F9VN8QFRL*3D$K%@ZV4(A13K*V M6:H8SN$X?&H.5Q28@J8-^M[%4TBG: <9,D+EL9I%G4!!E,6!R^:$.EN(7 =A M&+RC\VMK!?^"O9;%4X3F:B%SWG!@U16ZU#M]W&[/C4- &6,-U,BVT;%LX$_2 MFC<,!SS9#5&'$-@,OB#=@FMV\>-:66MDD&@RRUQ="+=;FA,;PG0+D((NW5'= MVA6.(PSCA&'\4Z&9\LC(WN_G]EX:'4 +FF-JUU6D7CY1T5XF21S%EH_"XA+5 M0\MFF&Y:P97PQ(?RT:285VK\#0*K@LO_C%L!ZVEDRV/&6WTB9!NA= M:M\.EKA+9Q*_9(C0]FVA7(V7>JR4!?5S3V$P<^'T(,)MNFT3:".;?1-?[]LH M1C$R3E)F*&C1_'VG:^"#&7:IA4G]J:%6%M(K:+^H9XH6D!WD3^K E0@R@=6P M@4=._"FG-@:2&G5)S!,0U1E!%I+,M;SBN"LB3)I8LVJCG>ZSH$Z0"W3:@M MW$J*)ZMIBFH+N1"/G(6UF#'J)EDFGH6&\6P= )M.L%Q9O@NQV7\F;K@-_%<: MJAAR:2>"UC16AZ^VT(U\4%'HNPEF:(0;KY%[N+_[L(:\88]/&,(>IY\9Q,$@^] @^](AQ4'^/7_8]&)X M D5U<7Y^,?Q=CTZE4W!D#;H)+GO3N@8\1,*,5?7FB;#PR9JPR4('C4@LN-[P M*"B6LG:<8IFA44I!*//R^EX#@6K'&,7PU1V!#H@%;0IX0H_9OUMQ@KJ%V^;@ MD;ADFE/*TK%R01.T;I?''3%(2SVA-OQQL4 FKTWGJ8J^HM[_ %9("N;2F$YK M\IA[4G9H$G93!5-(BO/2F*Z,\^+H2%U,4&$4DJ$I?SN83B$Q! PFI8$T4L!) MV(843"0Q.DQS0O-HI]#ZPG%BQ2AEM/S^EXQ'4%EO-:O8=8%8IB70J&FBC M-S\ETU$546GU((]0KRI]=!Q]);!M*-N^$4C%H7(]KVOXM)Z.DVT0,KS)H\Q5 MM'0L?+TNYG0#7<=9;)B>N,%@Z(B)G[L M^O.GP'-ME^H=C\^ !')Z>79V>7IZ?GET<79^<:0LV%44@8S06Q#9H9O*DN03 M0\A1U?U0_:$?)P,-4PE.L/OSKI"U%:8!:[Q&9]H2TY@@_JTNA2313DWOSV+(;DS;$XK)!-5I9L>JVRY"X^EX$5\AQ5,$ 4X?HD>_N FB MIDA*]$R&D=\!M-2UOZKKGI,5""VTMDJQ[UQ70PM]M/1"VR/YQ@BFW^ MQC!5 M"36#H<'[J[;)(R(RR2E/>Q":(6&5>H/O4NFDM&H$U!>C2_@^\32,FM%0P;0$ MKEN@_\9)3!& (0]D-PV>@0_>&R8NS0FKP(_[SC@G4 F!^36?H&R"S6\: 2Y: M&V\QABE)J!DDQ.Q7/SUYRM]6N@O"9_P\=R>5H2IA02DU5+ZZ5V/J0^OXPXUB MX-N@Z(.GP3@]'^68EV#+,%1 W6T@(63Q5EYG"@[:7Y+ET@K7"'S9*B-HJ#AU M9)_1%&TR^Y%W%4S3VYT\^LFA'<&TZ2P+;,E; M^6=::&9SFD'I22BY#D4W;,"-#.J',<1-$H:LF_V[F;1331NRF25# BW5'UVS MGB:W0^I$B]:.D]GFB8NG('(1\G2V'[GHX,VM'4:*+OX@5=C1/ P^#'KL FYP M/P:^W::KVN8[+)U0<$L^>;S02SQ\DJD:[.3R[/C<8*$THA5U_AC$EH=_.VB/ M>S+Y[2,XBYS,*OA;;,+4(HAN-F&V7T'[,-GNR^>6BSX= :Q7L>%]F] V7WB* MT*[+X-N&Z0S5R/EOT];VIMLL+).=I#GHW/8.]@F6AZ*U<)P7L!6HG;XZ*X;M M)*&#=8Q\MI?)1M#TCW#XFKX#[PU\#_QX07;XYB_N4XZ$W/?0,&_=K%9>>A1N>??^+ B7*4//P$,"G0;9X0QF MKY^_ .TTPK;3+PCH 7A&%4V+J>LH$E>-=0J-=:E&%8)XIO4;1-Q2=]Y5#3 [ M'J>3U]AR?>#<^W#$7:!8,G=!R#<(=2C1?+F)-H[4CNMJKPX--\%RZ<9I\QOY M#KH(#$T ?-3SI\_.PE]>![[#Z=9P58_W6/I0>GFD\BGX]_1KZ5_2[_7&NX%@ M0.974SG+4!1Y.HHJ-2.&B6Q,K$U'TXF[:K!I9IQ2PZMU9_-Z_8C.>#EXOLI] F$ZG?!O\ MDEBAY<>8%\WH&32GFLY,G5M.L'I1^P+1QFLT;R(2NIO,0!J9($J-KLD4Z?0F MW5\-H47B-7I@&!.EN2F9YJ0Q#J=I&NK;,5=EOAMJ:9%,]^**]A(']A^+P(,8HC&$&J_O?60, M]PT]MI3ZAW%YH0V/ZEYHY6_\ZR#["OSUYD.I UKFBM87![2ZV= KYQ2/,UHF M-E_[* K>P:6M2Y"9;H89N\_89H+97Z:UVOMVER_^'1NQ4Z)*\T M8>5KT^7P::!R4"[5%@P/[0J:>LK:V]2!5*D4,6V'LM.YUP/X=GNC"BFEFYAQ M;Y1&2!_VXW3@@5 OYOVX?7#!?P[G63[&HZ@IB3;,[+O38S:&7MNM176)Q^35 M1-I13#4YGB4"(IGN0NGT:NMW\Q0&\]!:0M@76 T$X_N!6LGEGWWTI),J'S73)!TMULR MWBYK=OUD*$<6 M=?UULI#4$QQ5?GO-O7_QZ&AJ]6B4Q M8S7^B>[O78)L8]P)>IS*KIK]0?P+0 M23,-7:!PXRA_]XICKC5R'#>K7CN)"2S95*')-I'4(TE5P="F(;"@Y=>IX7*K MV-DQ#::3(^0P55EMH4M^5N1*!\T4!LB?4KX)HO@)A*EQ6 1$R'Y0:N*U@X3 MLNI?GRY,BNXW+Y?(9QU:!K='1,UHNGY:6D!J=%A50:M&?NPZKI>@(_ 78.?/ MSHP_;"]Q@',':4 +K"2C>S(;6R%Z[CTJFA@Q#*.0LDT7HSPC28U!.U3L(%*= MC_)ZA]3>O\9XAV1?08\P9=_Y= W9.Y+? KAM1G?J[Q/DCB*K?2RU2UJ0\#9 MLIKN\E 0BRE53P]J9L'(BY1%.]%(E$!=;]R64:ZB MQBVK\6P&[#2^(*SWC@%SB!2IM"SE,-4CTEA&AJ!E9>':BER[XYB8EG&8.A1G M*LD;7:K.B.Y].\Q#N9;;Y"B.0_<5KF5>/3 -Z@=TI;-CC#B[%UREX1+2<'9 MBI5D/U,VU9C,L[GE$7OK^RA*T&^S=%U$BR_U4[&BC6?D3AZ&E9P$UB4+9RF' MK4T1QA*U2U=ZS&>?&W-@CMIF*5X[WU;;6B5UP&WM\/^(E"WG6P2+X15TNA'-#<=#912$D7-OR7D#X MYMH@NO>=!,X*U]C[8;0L^K%$M7#UA*850)DDC3U@QR$72;0LO2>I%4"];L02 M!H<'VL4\AJQ5"UQI<.=)WK#8UAP2KM&IWT@MMO$RE _8B2/E.,&T^R/YHL"0+"_1S:[^?4-'F-P)\)+&_\AA9M7$>FQPU' MIIOR!FF!_3DOK1J"YJZ/3Z[H\<5*=8BGGPU)]6O'%#:JSRTR M)L\WRGVO"# MI&WSYM2Z$X3Q D3HP2<6G-*>=.V(6T?N"2P0663 M@%(O)HL3G71F'Z5!1 @=+29U!>?P".*\T(M-CHZ6!Z+&AXY-,++%&[GWI>;3 MCFL>PMCHIN.5>0HVBM&JVK6+DY\'S\8>?V'3]H(ENIVK9V%\: 5M9'L*KSGL M=&/4TS),3,:H/'ID8P-O: KYYOPXBMVE%0/G+@B+>#ECJ/AXW=#V MVQ2CNQ+(=%9[ V'X]_-^5^.&U5^_9:SF>SO_\?\!4$L#!!0 ( ,F"FU1N M)K0!C?D! ,2Q%@ 4 9FEX+3(P,C(P,S,Q>#$P<2YH=&WLO6ESJMKV+_S^ MJ7J^ T_^]]ZS3U7(HA-A[;W7+1OL%16P>T,A3)70*8W=IW\FJ(E)-#&-"2:< MJK-7U G,,>9OC#DZQOSG_RXM$YD#U],=^]__X#?8?Q!@JXZFV^-__R.)!93Y MS__]\_\@\'_1?Q#DG_\/11&]EVW7$,U1 PO8/J*Z0/&!ABQT?_(;$9WI5+&1 M.G!=W321K*MK8["]A+VA;Q@<9V\(G$ZG$!3]LW_;K.+!NSCV[^UH_ 9_/"2W M?50XB/I%I'\1&$$@S&\\]9O D6;]\?C-C6KZT%7GOW_]&BG>\,9QQ[^V/X2$X"B&HR1^M;W$U&WC M;OQBL;A9#ETSNH; ,/)7^/,0O7A/4"; 45+<]7['5 M^ZO@/37_[L+]1Z1^;7[<#=67/NH!]<%#X.>;L3/_I=MP.B#DVR_?56QOY+B6 MXD->PQOA*11C]N@:Z@HF^E?\-=]7NG/K,ACWFI ?\C8';?@#]&T9]3=E#V' M(O#T<&BE<99E?RU#S-U-^ F$'@P-?[U'SQO Q%Q>,8OP8% "?H! M O6#"*0W"-2O_OPS 8KVYQ\+^ JB.K8/UU-36?VV'1N$ _3E[_!NP-W\J6L:L*,_X8""JZ@AS4A@ MZWX[!)D$_Y %R$)-<359$O*RR'/>HIV55(,O%0&8S?,M0Q]#UGB_;=V$)+H! MI"&B:+FY1\:3^9%,RB0NAR(B]S(R7\*[FL71V$+6A_EZ0VJUKA!;L>!\M]KE M=\ZQ+-T/M;67L;4,O%6XFMOJ:4#5+<6$0EEN M%![3V80Z">ZN0!-\1S6$Z.E\X(>R&6[<#V@E)T0[+TVK)0.5L7I^7I* <)NY M^H-]&K$G+..'49M'^U0?+G#/L";C5B%?&I JW7J&V@:T8%Q=_0CT\5/@*B'B M:@#NRC5=&>JF[J]R 9R[[4/^P=T-_L&/"KH-E:BNF$W'T\/)<$NHKSQ]:,*K M//\!06XJT(;5;+7.S6;=@)S5:6IL0*B^;$7\#^]/@+N;!A2![41VG-A2_APC M\H$;*6T9E[=P%9T][(KH?)(5*K.RP7L!*!EL=>VCF1U;X![WFX,2"#D G^HJ M9MG6P+(*5AOZ1%5>FZG2@I]A5:.+C]I,:C#1JJV%3,@X7#"X\6!DBF7(SYSO MED4%W5,5LP\4E[.U/%RWNRFS>IT%EE87,)TNM&ZG30HPRPQ\!IPRBN($Y/MG MSC>_M<#O)UR WWAWTQUA"CUSE\4<1$6/;:_2M6Y37\A4.-WP$5\WUR9\@*,] MG*U;'8RK!B L#G1:;$#X)=8J19,UE?'=_ BF4O?Q=+EK M!&)6#<19,\??CF4ZG-\(:B]P9(IQL@,>*M..8@;@@;YA"XHX*G8[#%;L\[Z# M-WBGVKN4_?\EXJ"RH5RF:;6K>/$'=\<[MD./1"YK4 S([/4 MO>A37;=U*[#JP!H"5\X3/+E@;@=3KE@M*VL;-+72(O-XYC7@>0 \W$%$X%K\ M*+1BPFD](*0]:=WB4K'@2UTCFV+;+97P(4?_-,G^*\3D;0@ZRS9'%.C4N#Y8 M];B5!MJTV NZ.ES?C]SF?CVTSR.H0-L0>'_^"?V@WU[DXD#&()%?]#OT'OZ] M\G1K:H;^3O3=)'(5H?^*[KS3FZ6GA0!Z>(O-T_8?$7WTG,"-/D6.Y._M6D1\ MN%=9V$9G8:'.@A_([:Z,\(;G$KX3:CY/>A9T:(#_\MLH3?C"LM6 MG5(S'-W3YYY87ACZ&C)U^W@0;G -IA"R$V@H#9=9^PJ%G2JTSMX M=*1\5BROJ]*,X(B*MI !,1S'#1Z0XM]W]%_]"3\^8,!1+)P,O'W.;7#W$NO. MAC\BU&FGX0\.)3\6?Z1,L')(Y$, OAU@I).JME&VBV.Y-69TNG5Q6IMEX@:P M^,$ 2X=K2["?"H/'QL#;ESU8+JK-8H4M8\*L-YBS!*MWLJUDV0\M^R:@ZA]8 MR=TO;U_)G32_?27%9LK G>G*DW(Y=5B4<[;*SV*W0\1M)1^+[_M7\K%,WAG9 MW"P(36_'FCIV%/4,E_;.4G2A@1ZXJX@+VQ5%U4:WC($ND&9D$.1+7FV=Q6,K MF\_2>?7GSG)\2NBER.C;5K8-?$6W@<8IK@T=,6^[N#T.3&S0*P N5Y(JKCKH MD+>]V(KKB8M[F-;OO;X938L<9N@Z*[I6MG/*5/<5<[O,NC.HZPI=:!CH7,B; M+L&J0^_29?A9DB]CM??"5>]7U,T&K5OUIE/'Q M^"]>VB.:NCQ3/64J"AA&CVOLK;VX7:V)V$9FXJBIX[+ SZMJTPJHLEKB^M*J MU'6&.#Z2J>REK_-7J.H/7F[R S4UC_K#8;^9SF$SBO!]X[:Z3A3Z($5-E'RK)Q9J?2RG$^3$++F%5>?2%_>3%74LUO=Y/:W59HS7 G*1TQNI MCB"B/H])C7V HIZUB_1R )I#"?5!:@"JV&U7NW3W^/,4-78F MB^NU2WM$4Q=*Y33M= -7$G)VCE#2,E?KQ#;9$$=-'9<%?EY5-X8905!,C98 MUY&R%M.99KJ7[AA_A:K^L.5^(8&]6]8\&/IE^! WJ@*[3T($0\?5=!OR*1R1 ML;6FZUBZYSGNJN'X8+OL0+GM48XQ)"0>)[.9?'[BTD9LE_TIK=N$Q$G$?JOT M\FOKI>[5_!S8 6@#"VI J/N:P(U>(K!5P ]-?:QL*HJF0/6!)NH6',*/!/BM M-]H4<0D[ZNZ@IL(5D37X3303C,)PN6?FZ/F"6A@84%RT;HVH5I^+G>%WJ 9B MGVDOU4"$I4S:<;1^+*LA\\YSXQO-">^S12<5 ?F\3[KCZQX#8Q9T?GVAT.<( M5MWUN"[7'=E8-YNEFJ3%6"7Y(@3K-<5%B6#] ,'Z7,%I\CFIUVVK8ZPZJ8[F M*LIV2YDO,G02>']#>+_/7(_>C ": &S=<2'W'',.>9)S 71@"HH:E8)O-YR, MK'5S)NH.,8 2#ETBZY.R>W$F^^D$?RNS_424O*$Z,*_=IEOU4M-851M-J3>I M9=QQ[ R#>-24?3D*'F^%X0J'@E)7_,"%TWZPF>V^#$OVQ8D+P"/#\WT! *YH M9@MI-=V65KU\=5Q,:570B!UN0H0<8M &.T4GQAL\PR$Y&(6]_+ :S MK#A2C+Q9Y'2BDTKA'8<+E-C%F$_'X!U_$@2>"8$%)W _%()=-]<$]5N9-)3L M,^@!(.ORJK@'P2H84J7A)F]'F,S,9NW%668QKJQTVFQ M7N(/*TXZX57 G!/ \>X4&G^K!X9W+O!\QP*/M4U-][=>;)B*"AYFVIH@ZJ!Q M/^;QQ8[G/>BBDH7/A+(+-J\E;[Y>/;KEG0-=#!07\N'.#@3<;#$RRSD#_FNC MO6$V(,K5V*FN, 9XB,D;G#WD\OM5UJ'EN4\+'EF?#WCLR0N[/YEC*_NM79YG MM.R=F ?H@6R+@H*;-&^Z-5GJL=V'8Y &^EQ7^I4)E+L_)7G].I];X*GY'VW MS?(58:VA=HL71ME.WZ@NICE*(^8G:RZ]LM62#J-9 MWI)O-B247\EAAFW4[5LX]GXS[U%+E;VO'_+Z; ; M\STC6*V7_0+:J';C%[&\;(S3"<8_ >//-EN;I@Q>=K0.AW6K S&354=ST4[, ME7? /.D MQ_VM3W'U+5H7#ELD_] Z][U9!0V='N/<'SW&D(V\'0;>-YNW'W2 M"J@3Q=95Q=P>>^"5;2WP?'<7]I@U!EX[ "U5ZE9$/V>AK)&*7YY@$[T]Q*M[ MM7F$6>_'[[-WMCW"VXF^OA1]'0=<'ZEE_@BE.[-Q%W?: MO,0K?KI3;94X'8M=%N,2]%]L]O7G.D.]'2B+E.5@O8!E#%3U2W:[5C%2%] 8 M*H9 >95">9!RC@-07G9/LD:].;."B20T Z\PRADYF8]MAN#;[#P?!)3'67 - MZ'(-C!63BV9]!X.N8AK %95Q'&[E%LR/Q)=X=#U.5M4G&SJN+Z;X1K[5^4?5K.@B&Z[F7D8):%3/7&4(; M%V/GZ<14]7]-F]^W"[;(N.W.HEISN:JC.^:B2P[H^B4O]A<)]B?VA7V'9%>& M+;+*,2Y7%*S..N^9W>7BDJW_+Y+L]=(?J+'/Q M/>_H6<*W+SF=2/G%VFL?N/@USIT.C,JBS^F+'IZ2";E0,F.KW>._^.??TC]P M\4N57$&NYVE,4RN&*F5G>K+X7Z_U3\SX?" 44D$CVYD)TE@BA)ZUG#.U MXHI,H/!-,T ?"!R:2(U4CC:6$FW)3;1+#O.5^%J,EP"<.&2$7DHQOZ7#N=1: MW0X]7^Y*U3FCI/31K.D8L54QL>EP'D^E\L'GE"R[Y4Q1#S)MR+Y$SFGR2);9,?50A8E.$NO@\I$ M\+WU^*)6\=-D\6PM/=[4=O34@R;>USYMT1LMR72P+DDY)UN!8CYMJ.O8&5Z? MW);TO>=57&@?N*]O-_D"_@^>!_$^_!,UE9/EYJB Z0[++&[75G>N)_A_W[$2 M"?[?W?#W<[1_,7]K-'#7MS$EK:U:J?VA XT?UQQ/X9-']-)S)U M31B[DEZ'/JI3[_.S88+]1.]_;9OMSU'\064<5.==OR()[G"]GI?8X@*+G5?X MN6VX$\T?2_2?0?7?2@NVG9U)>4Z8$(%*6P7BMAB[G.77HS_1_9_A\RZ<#P5W MO=(;CALJU^;TMF;KMY6IQ%3 M7R)=H&OY\'T^_(>)S_Z\5+>/_CQ6G[K>H@+D[.LXD5?;L>C MG3915CR"-:I%<=CTS(PPC&\(*)&RO0<_7,E$QEZ0L=..]#O7;L841RM'=&H2 M9SE>?:ZTIRTU?N_,O4W.SGT4X)=+6K*?Q5G6'NUH+5)9]%.<5)6"5;6[Y@>5 MV:K_3>S&;R]IR9[V&CD[Z8#0<^UH+:UBYUHF5Y*Z&HGU*XQL+3K?0\[.?+#H METM9LI_%5\X>[69-JMXE3'-=,7A.F ^E7&=8CE^+I$3*DKWLG3)VVE'#Y]K, M,%SM](>@695 3>I7]'%F7*M\C\WLW$<4?[F<);M9C"7MT7:V!G5&'#5+MC0; M8VRQKK:&;.M[A$&^O9S]H/WLR#N.95OW=<7,3$.*HPLV![[D BLPX>W-Q%HP<%XC.5%=I M;'<*E>W+G)KA_"*F4RI5\@6ED/%C%Z;?(>5M?+I'VML9=394QNGMRM->M85? M6^&YW(YJ[)1O>C7V)RB=Y:P\'^0R>-64F-CY$J]\R_8)F7'/T[_^5RUKH M-(?Y8D7%C56A!J#IVFTMA=C9KC%=UC.]]/7^54WW.XU%LZXZV*J%%EJM@)\N MA[&SE&*[JN<1U@/-]EZYK$JG,T\'@]+ 0%?T'*L1"WS83I;UDQLLG=!6[^[/ M$N1@>)C@JA8>)?A@>>_&E.UIX'O1 .*19[1WRSI0O,"-^%EPP2P MKHZ?+^] MD5X;J('K0GM_>V.WTRGA&-_4#=31YGVUWACR4FS5_6DPN:NK MJ+[C5B'=@6KL\ICY_GQIY%2^RK.'*VAXPZW8E&Y@W*MM)W+U![/4WI>8+RBZ37V>4G_UZH-R5:+K. MV%4L L/2.RN@7AQ5BG71E69X>:!DT;[6[,?6?=BG;]OJX 4"SYFXPYB/] T_ MX*""C*9%6DXQFXJNE>V<,M5]Q=PN-:D9I-L7TJP4,--QK M5OLU'V:7S#+,;7&$Y;1YJMYJJV/#C*T9>"(^#A":Z(_7H*(R;.A4O]-J8WJE MTE_T-\"U=^=?S3.5M/+ M5JE;EF:#3LI 4_.%*L36K3CAW-V#9":(> 81.<4TO;JBPR?8X5L.&5NK.[;N M.WM9U,*"ZB^7G#>0BITQ#M):IM>@XN^2O B3$VC_2=@YLHN$8(G.%#/; $X3 MWB/DI:UQ\,9N>-18R(!=G*)?&:Y'!5N3B$FSOBBMLR9JQTZA'-M50FB<2&F" MBP@7_&@$Y2@;Z)M\\$,3HS@U4"U?:10YHCXO3FA*RO24V*F-Y\#P''D_"0&G M[RH-L C/+_7=0 WOMT6"4:,&W9I5!]*4VU]V?@='40%14?@\5BRHHCZL5PM2-99FPB':'F55/W06"',N<:6,]+C!N/8LOS'!4CQTD7N$NO$SS3\+*LS8C9T(=ZAZP M&2=-'HSF;J>.%9NW*Z#936H#M!.RD.0^M&J[W 1:W' MQE+$XY*3C$,N^J4*A5?F)&TP)*R:PSJ84!@5AWA_F.6FE[SY?VY.\CL@XI2< MI%+-%+ERQRI@15HM-<5T!61;L4LN7%9.,H;8^8"<9*_GXF P81B)KK6%&,J\[<[J^13K MQ<[HC&-.,J8X>'U.%C TMQKE6MGF?,)?U/I_>DXRABO_H3E)=E)% MFT)I6>&JH) OJU4VA>5B9R%>1DXRAEAY6TXRJSNWLP+;<[%5N[3V)@-I!>(9 M38A13C*FJW]B3I+NSU)V59OH!]=]KWNQ#'-%;^P@28$0^A6ZXJK MWVD RI=I()*-!A8T^Q*HJ+6FLHX='"#5OQ]1O<'"&\D^(V9P[#7]F+ZF[XYN M[_7=V5D9-I]T?,_-L&(U#K<4K>T-] M)$:' V6(&6S0P:HEB=):Q'C93U\$1D_J,Y5@](OT*+;"FV6Y,&QAN2*;'G7M MVX9CQL[!>K/N^X8K>J=5=%\?1P-#MS-X6.?5A(^'LG _YOTJJ0G-:875$ M,5#"A#C8G?-9;KFMJ29098Y>L"DG2Q&@X\5..=VID .,NU<61SCW-9KK.,^_ M%>*/'>IPX*#:T&O(P$\:-)"!K3ON\R?6SB<2-QP%)IBEBO ABYR@\ M=Q!LZ"^<3O!'PN(4XWWT]C?$ M\EU?.V6Y.=GY#L?PFSY07(_ <%9TPO#0%GZE;#MPA'7[U@BJ0 SJH$*DA-CN MNP\(VT#O&&4_<=WS\(;SZ"#O>U%IZY[Q0!V5P\I8X(5R"H2%,MT!0NA>'1RG]%XQ'";U6R/C2([W/J0T,9UE)- M*5=:!/&K]H@U,N)T3/U[H+#[N02T,=QO\\#3Q[9R=_;"[N>&X^]^ EK&VXZ^ M?QP'Y^E8NAK^L/,)%NN5DG9SE8P4 ,L!O1Q:O2W^+)2=_/3#[+]_[AOX?^'^ MZ+O-<"G-&J,E5\4XHE6;8Q:Q$*:UV(57$VOX'=$H(1@ZKJ:'0A&.R-A:TX52 MX'F.NX(2LU-$/C,:I?[S"O8S,E_"N M9G$TMI#U8;[>D%HQ.T'W?">+HE@#ZPXF>1^KVE;1=HL]PUN>74>]COHS'#=Y MN%)E;KACAO17(L?W^]V2[?#5''9V>^&LAM^9"C8>N02W.;VE%!N5-6?UY1Z# ME3(#^OP56I=C,3.O.8$N8_E -<+R(-6IF>K^D!.JHRQ'=*8L:RR,X@ =\D%1 M8[.IV!H=SQY$]BY&G&D;@L!@]C#T ;J(V9.H3\2)UV=M3/ :O,1C?0]S:2P0 M^K$U22X#)X^U#7.ZMMD?^@%JFMKS:.[^/@E4O@GQK*N[$N7[DR_OJY.&7G0@ MM<_-X7_$U10\JEYZ\/OV:KO2J9G2E.",7![-&[YJZOUY;*L$GH?;,1:]WPD_ MPMO]:J8#S#VG T:=[H!1'P+A8P[8:0>U/QV^=TX[^0C))QRW_G3L,Z>MRZTE MD9_X;6HDY41"[6I]:[VV8QMO.HVC!PZ]U33":\]-^([DF44N%4^,(C58(7: X8@!K&U M(E[@[3W 7L/<#H% MZ!>@Y>7FK$(&N=504E*ZWB5Y79;42X!\HN6_'/R4#(V;R,)9*/!/$;=,(Q#7 MR\G$FG1[J3@$"1]N<11*$&?/+8KH?)(5*K.RP7M0(1ML=>V?O^M)7!-P@:UO MN";!/\+> ;:FN)KL3107>/*DU/+E50?U,-K$&&6,C3!V>A\ZL#82\F<[Q^B: MW7-VO^T^AP]ZX:&2D)=%GO,6[:RD&GRI",!LGF\9^OC)$W7/H0@\_1M>\HX' MZCZPY%ME C5114Q).=(-T@MF;NNW3Y\8AA_"\>]XW!2.E^=2QYB)$B9A:-$. M&NN&U!97BR,L#:]XQP.!-36=%0"R,!6<2CVUG&!Z<\Q2&?=VP-6?KF-(X^Z: M=SR6GT;BY]5KG451,&>2D#4,0\DLF^O,4TJC+G_1%:]_9%Z?0R&+@+-%[ PO MJR,>M:M&-QM(O>*LM!#&]Y1JT07[-VL$%C3)?,=](\2>7!]^F0=A089]Z+:G MRLJ#6_QZ./O3EV*[$.8?_[[ZFBA2_ZH"88 M^?";&S)U_YVKCR?W7SJ;\!]\D!G5YOQ]]>B^[EBW4=^9_B;P&WKJ_PWYA4Y M= \*OTFGX%=[#X973W?7CJ 61$=1_[C?_Q&AQ> A#;! VHZEV/^YWGP#__6@ M[AS]Y^]HM*>O ;Q1^)CHP;_AGTCX?W+[1_@ !9FX8/3OU?^(C@H_>E/%?O#( MZ._?=OAND;FY[6(SW^U75W]$96@"Q!DAXGQSZ_P+I"O"OS_] !_51,H M[N^AXT_^?LSJ0QS\&!Z8N@UVO,;AY]T*PFGXCO7@JW"!PL]A!0-P[T;HJLC58VZ%:?9MIC]A*:+B';4'RCAI55H7I MG:M(BAJ*Z\H#IDKQ55)RI5QU:;=[7 8/^HL79HUC:&O#T <3?B"BY# %&(P$ M,IY6,)E2"2 KV)"16040##["AE@*VXKHY@I1E<4FYM%!KRMS,S2_$-IK$Y>+ M&4CPDY&C\3(#;GUZ813U2L: M5A)^K^V^GP/7#[LU;6$&MX;=+<@;BOC?^Y*]?5P$/O(FQ>ZVY^C/1[;#WN/" MUG$CTUGL-.[N,[IPE>GOH0L4 UU UKUHC]S]K@SAOA7XX.]P(\.>$+W9P+?_ M];5GJ-ULE=O+&?HFE8X5P=N=/)K*$]K/:WB]U@ XN(T^68A?OAMB\ESX^Q@F M/+*?#ZKAZ!O=#N,/O]$#K'M.K?U55UP#X6WPW[O=XKPH_11L[--X*CQ^%"0> M;KI1]P/_WRL=7N0!%?+-,8>*:3K^T%E>G6=/;@6*"V=JKMI@ZKC^U6Z76ZE$ MJU 6K3)7[!FW:ZUH8F@^W.6P0PN]XZ$ Q@Y I#(BK"RXZO^)UIA-4_3]&A_8 MMI]'^OU2QP3FS\EQ2\JT1:Y=ZR-MKLFW1:0IM04ITQ 1D4>@72M"XW5C=.$D MPK<1//67]E^$+R!BB4/V[-X[FS>3$^'/VTM8DGJH'B)!^149'%]CQS\Q*1%_ M I#9#E3()@Z*1!T=D -VYA[D?VMA/U%XTXFFK%;0NP;VF3"_>?V5VX1L]PQ2 MI9*U>IZ^4@UZRJG]=;4D:HN7#-)ZF%E$2/P:"6=QU#3]^L7AVW?8V=K)"J9H M=$I59&JHTC*E$ K\BB5E0&DDR;! (]-/K-]!U[PEF3%A&]:<,01^,'$-,[23 M\<2J-.!6^* H]^O>(M#'6PV2V,D7;R>_2R_'E=K$\O@TRT-T%7NS M2H],#RH@^'%.[4RX&:_G.8R>WQ97K:TK_FK3@_HIIH?8SC2$N&=/FFAFPE>G((55Y5XCY2H-1LEE7@IPHCB)X?@9#C8@)<6;I]*HU"ZAT:&;SRX^7R^$&D_H M"R)7%Q!)R%QO]%:YD;OY0J/\$8+_XI:*ZD?,"+.-[AT3$,5#O"E0P\(5#=%M M1/<]1)U$;M1_H[G&WUH^:2--7:SR?]YB\L+3,*:N,P_7]L,]UXW,E&W5<:&I M=-?.$^2

37G[^B1R)P2W/"XZ>1V\#5/4V/3O. :-X,>C#'<"SOCA5;7T>?__LJF^MK MH/+EFE%4EN5M#=OF#(4G^\ID**V"@1XL#:+3&!8:-%[.CUZ*4Z1I%$L1-,6D MGUGA\DW[1KA!N$TYDKM=T@>S01K.S7]_M!5X=@1D-,T-7\;;_%/3;8#OK3XN M"I/;AFDM.;U I](6L?))Y:75I],I) O"6EHD[T)_^3 &GKG!!@J?8TP]I9_8 MH]\GJR,^&$TLK#KT)TR#'11XXR7ZA0#:YQN+@,*P2Z ^!__D7=%9V'NTIU:V MHP^\<9$+5&HD:E2SW)F^9!R5G/" %OO51%^_$+#]M'UORY%H^^'=)GR8;JO[ M&QXCB6MN5'583L\0HY)*]FRB?Y$UN2FP[DKSG0IX]V^/EJ M;;#><$)P:)41?'HHK 7_)1RDTUCJB/(_"?I_;2<56JY-J$I4?:J8"+<$:A"& MX)#-J='>?Y&_X(21<,:/]XE/RE303^SN>V\C]&/Q]-\>X@,33">.O?,4KZ'5 MK9I!N#L@T Q2X*IJ +J/SV9MSPV&4 EDX&0>&WBYQJ1'Z%J)LY:3E= M\Q-Q M\I*!E\;)5R_^?S^G0*CF0!.A&2[&$UNG59W4N\M*?H[17'=@%/BEKI=>$FV& MQ%"6/J+G/]CQVQH*)/W83A#"MU=T7X>WW/AYP(6NW31PO2!T^'P'"8_-#"TJ MG/AK^-]0JL)044;U?^\G::@T&&HIE9:'HV%:ID@R+&;"TC*AIC&-451<8<$V MH;(? ']@YZ0W9;E7>]D9RL\+-6XZ&TBY(2&#HQ;>D_C@C,_&A&2)FS3^WDP- MB=^P[%%+-'5#;75)]%>4,CC1>R'P<]R5.AZ$/G;7UZ0TMMQX5#0\71XN&=Z MZ]BOV[+R8S]O"I0?_WB4-CQU1QR>^BB/ ']CW2IVN&Y5U/U-%3E0U FBFHKG MG5C-\Q V"?O?QGY7B7;O30+H+^_44JJ'TI4P_TW,;VQ#FA'TP3(\(WX,O["1 MQ42'W]SO@,>32(ER>O4"G=$FVYHO*YP81GKM+CVK+=Q5>40:M]Q*ZV:[[HQC M]>;B6&78/6@V*1J(",%W5.,:^5_8#88C4\5%YN&+OQ^1I4V4YZ?!8ZML-[KV M#AOY2:!Z2JU'299NC&OC(LVEE(V.^7! M;3>"^QP?! E!%?K29%3/&@K6''?SG8S(C\+",.(ED(1\Z3NNL5$AR.[N+P+G M0?!A4^WS>;7QJ=-KX\_NECX*BY1M+8SJ V2X0M0)@"RUPC+TQ01$"9[0'=U+ M4?Z%;\,!$\6+K9#L!T ;[SU!,G3)ON*BW\B>(_)F6A/)QO5#$07;REYK_7B&)KR%_$'LE#*"=PT/ 6$A1> M%(V'5X;SV=XL:EL1S22:KN+Y"(MM[J I*^]F&TXY>_@P%[@NG,JFL"I4T]'9 M?WMA%:CA5>/X;F!-LNR=]#> MO_1(H0R"-)Q=K.GI12\_CTT3ER1*(9P@DBS=]R$ 0=18T;'#'1"N6H#<:!J=Q+H8"*R%\/Y)(@ MB9OM8'^B1Z4'T[#TX%.D;T/%G3P![[^?)BA[7 Z9O)6;!]FVX@A?U;P&!ZQV M_;8(I.; 2P3ELP0%0E%!3'@O@"BJ"@7%#8_CB%#BABKZX+<(7!3TX ^>!24, M/L7=*4:(*0NR8G4=;DOP=E"#A_,>(V/76?B3W<\W<)<"T=PT,-+MJ)(ORH.$ MFSB!_7ULAM'/^-^[82\..#Z_W;VSYC3\-I>(]'5#^)S.)O:')^#&I<4C/?RFC"/R&HN-8MO:2MLCN<+8PH;[IC]$2?0["99C.:8VTQQ#SQKU<^+SJT9&+D9)95R MC0):7;3B Y[7)$@NVDQZ=_ LSAO^.V3M'!SX@MT\7ARXL&WZ3!RXH!WGM1PX M5[GA:2&.T3.AA+#.\& $1!\=BA)&L4%HVMI.%-H+O$T8 LYETU/AP)N%CAL] MRUR%#U_H\-'PL8@-"75"&P^R,3*5;<56=<4,HQ;A6R3A8&_;P=)#PHI>73M6 MKT;^I?SW8$0!^0'1*&\"3'.WFLA?<(VBF-#FM:T'&8S[.&P4@]E%-?O .QC> M_ *+.B3EJ4WDS8B\Z1DA'_X@?X'EKG;;=Z/>N:L[WH^0U#7.P@O3S'^A@OHX('QP?]&8M(@] MU /VU**'X_G[SV;#(X6/$_,#X-]DY;R#U8"W>Z_OP M_;__SX,&@W=M>\,\@./^WBWT7LOC+9U$A*8Q0#>M6901)/.W8BZ4E;?.FX32R]_??=QU93F]D3; '&EE'7[ZSD37U)%F1]+&^>REA MB"EL&I"$K%$4*U,:W!28$04_I@F%) A"30UW-?]?W_CJ4', Y+XOP-VK%ANN MQV/.Y4:>ZX5]6^#,Z\A]T]M8=!*#J6?:N=*C1FB?L->> MJ.Z^JGW"?GC,O=L2& >D/_MM?)SAF,\ALB_<0\?8/_E\K(+Y53364,WOX2SE=)S)$4TS,)I3MKN@FME'*A MW,@T;_=]5:Q>\T+%E_&$.([RQ!RIU<>"U39!Q9^!_>H+4=4 M^"XS!$.QS-L$*KSI-EC^1*#N'Y'(T\>9<8G(G$UDB,:XM<"VI+/;E%$,1^!M-N&=$*(UO<3+>IGBM:QC2J7$4J%&M\5PN-"Z?0;(P[/2%=.\29(P706R4;U#:4I M]6.E*<\U!"[?X$4NW*GVI.LNF@?%[,W2!.<35D(V'!\2[#O( P%+@@\_0[CH M'R%/ MC%YJWCTTW,_NA2\4TTUU]8DENQ7+_49&$[3T,N7L:Y(TR= (?J2NN 7RDK7M&(G7?4.K8 MGRMU5%@QZ3JF!Z6@Z3HJT$+T8D:O=/263I^\D2^:UW ML*?U%65>+''M_>(*)DUCJ3>*SEYUQ:Z\@H]>R$I**[Y/*IC$O[.(O% ^40-C MQ8RV@*BEFB>G6 *C/JQV(KH]LG?_1%J^X1[SDP4H$WHA!47U'=>3R?1;T[][ MHI/9RDYX8V1[YT1L$K'Y3F)#2/9]*WY!,8'GC#9YV/LVO!\5\]M_%!(]*PS< M;9ZVW_4W=(8D#VR.E8HVK$3L$K'[5F)'<\L)7';?D],,3:8/=\-_A8C16Q'; MW3:1EV\H+S^C0.F)O CE8B,C2FU.D--$FGFK82= KBA^$E[[IL+QN,3H8WL] MQ;RGQ1MQ$+=I/-L_XSS=,E[U3O"Q-@G1"]^[=BGA7<_XEC-![>G*=ZB S^KV M0>''VWT0['V[C[!%Q]4!1B?M/EZQQWU6NP^,)5A%8],R-DRG96HT&LILFJ5E M55589CA*DS2I7?W9.PSTY5?G5MX\C[%0R MCK1/"Z>*X#?(YL3J(^C2?<@Y]="!?L\6P'U*&Y(GG9M>V^1EFT%ZVNGEA+>Q M/@>?KR3Q?M;(=MK(9MXQ:@[S5]E&Q(D3A(ET[SILB @@>5'#-R1CA9TF]P[F MW.D76J%2*L[(-*!)F0(D*;,X3L@T1E,,H0"%&CXYEEBXG4U&0;IE<2LU:"^4 MB6-,6XN]PX;O1O),MM*FRVL;FZ6J?J'0ZV=-? Q'IAZ/9-,3>=1T:$&B49I? ME.&S+9@Y&+JDWUJIU>CZ,KJW:V9)6K^5PX\LD]Q\O*>-@ (PO+]5+J M;&58U6E^(9-/[VEVIMIM2J#Z7# @9%6;SV8KL2533X]D)L;F MO;JM+45B+*>>CEREY[?5RE(<2$%=H?@%!E9-(B/33T>:1<>;3>IDP]#3WFR= MSZPR"KV (Y_,$QVNT!2JT2C&%]QI8YGA)MEV>,\GM-M4D^G*I-7ENO,4G:;H MD<+,,G+ZZ=,+I89N+=!6DQ,Z39]H-(,T&(QEYNE(=CJE2H/"6C-XD/=[/KC5 M\.I89I^.%'LS;,6."8-#LW6,LH,!ZIH0(=C3H8-V<2 W:XT2)M1:K# 7*D2F M"(<>. Z[4I-XB>T-EAROHD5&*BC!1(%H(IX.S5I!BJMP5,,HHNX2US1?(88M M&2>?#I4F/0=S:VD1 ]*BUVG;8Z/J9F3\P.)SS8'-!QU2PWBS*328;K=@87"N M!U9_A)GKV]YME^:J!NTJB[R2TT@XUP/++]T:BUNA72ARL_(:=;B*0Q1-.-<# M:Y5R;O'9:FQY4J#7F4Y=+U=S;3B! XMU6P\TFR=K:6YVR[?\WF!F@SXDZ\!J MM:EI-P7R D3 O#F:F'B=HU=CF3BP6EI6;\P:=!^BV4)YCC/73@L"$ Y]@E6W M/6;=3.#T#:*N@-L:6K=RN6CH$["65L1R4C2,*C8;8S.SD\LV!:,E$P]7&@C4";#C/-]QZV4M%0Y^058:0MW*9 M>=DHDKS&>&I6&I##NQY 5E7E9ZFTDE]B M.5;.+OGZM#76X= #R$H7ZNXX!ZBEQ/?;4CK;Z)0+&F36 60-!6L.K:L!D&B" MKN)\RNR6:7C7 \A"YU[GE@LT2:++E957*/5FO@?O>@!9/5[N3#R?:W)*:FSC MBZX,&*A;R /(FC3KP,7;/"FAJ-2W<*=@*,U6V%?WR=!.FZPYJ_EM#\M-^DK> M]^5,I@'U^@$,V((HU!L^1TNTY-1Q=Q&H( ?O>@ #MZ:B4F)?:6.";!<)HI+J M9>89F3RP6D:?6(A$4&Y(2I/%.DS9'DD>G,"!U1K+_4$G/UQ3$C&B&B;O54 # M(HL\L%HM2:"&:M!@I:!8FW3;[?F<@^J5?+Q:,J'2.* 8(-/4$/H$*8V1% M'U38T4S"9B-VZA6H3+>VA/0>P-%8Y&Z9KM0=&#G0;:F=66O)"1F9.H C45UV MZORJ9!FZS;>"P9 J!"K3XW1K M.+N5]$RFWN8&XWX5C^ZZTR7GZ)V'8C>I-,8R88CU%0WS\!N<^H">>6GJ!J,N MH\59+ .:KV\L=RRZC-_01X\L21;B4Q>"/'HJ2K(0G[@0[ V5+$0<%H*X(2ZD M#>8W7PC\8OJ1?O.%@*J)218B!@N!W236ZP>NPRN[!K_H/7P>U6&GV"=!^$\I M"WG)<+\L'D O-OSRWROBZJW\P&Z8HP>J?0A#F'=F9NJ*JTZB!OVO;(K\5@/I M)T+@O'KAO1#( Q5$9U-]( I>V(LN" 3)-A##;8!Y127$*]K ?YC"_^(V\>_1 M!@_.:8GY5A!K&%"7#@/\0O:"MZ#@M6<=?(6.?]NAN-]8Z[]JYTML_:=56)*M M!!JRK M]=CFLIO4H;WMZD]&$/;+73]B%_MXZ X[/T8\*J MUQ@,B71MK(B$#QO3(N%#9&_$B@T7'2-E7[7"5W]R4KO--41D8TG\_HX^\:>; M#C^,Z)$?8!;H<\5\_/YQXOI?JNO_6HOM?UVV^_XH!/:XF0U"'F_N\907R#_Z,NR7 M4G 5-3H6([!UOQUVD9#@'[+@0[%17$V6A+PL\IRW:&!+10!F\WS+T,=7 M2/0ZSG)S5<:3^9%,AF^XA=E@N9>1^1+>U2R.QA:R/LS7&U*K=85H0-4MQ?3^ MO4+)*V33@_G?*WWI_[8#2W/\[>]7B*U8<.*!AXX59?H[E.2,K87_O0HY[796^E!+28H+RK7BG,YK1/@R,GGU!\=3 MUS2>^N?70T[\22(7WR%R\;7*X=,#%!>@''!BJQUP&<4:6'G:H1;8JQ:UQ!AIIJWT>;.!]12Y!;4#??4GQ5RGT_09E4,2OHF/H9C5 M31-HB**J45\1Q 4J@# :FN :,8'G(8II.HOH5&P(2D1U@:;[B.EXWJ87[8X] M+ZF8B]IS,SN:"XZ;=X*A/PK,S)9#[3L&Y0+7A=+V6+H:4/3DX:!@XGVYCQJ M \SB=J'A?7%\]8>YIEGJJ&B]H)M">_XK^7T^-?9^AGN!U33-J3[FND77R@"G MD6NE6B'#&8QY(\.OH31X4Z"&[V^8JR3,&>\PYVO-GEUIV\6$-"_ T#F;1MYL M4]'A3W"^]RK!.V#;C&2WE;<"OX5U5T5]@7.-;-4.6R9!SX?!J&N&),[N^?P\ MX3XOT3$0[O,&="] N,^W_;]&NG/]6GK1JBPG$CV41B,!'0N+X@)*-_1RS5$_-F+.SR7:>C0J&!K M[>F4R]%C>][GLB2-9:[^4.Q;\PS?T#WZ*&:/[.JT"89]C2O2WD1:99L5?P6] MHQ1&QM([^GDV3Y+4^>[6S-DT<2,R8C3PLBX(^X&/.Z@]FZDS@] F_3D]'1MI M-#RT(O1QR&LZG4Z2.DE2)TGJQ&;K?Y5TLX*(-8-VNRT)@QG+#M(!6).A=(?U M:.EKBCV[I_*=W9(+2NJ4[3E$B./J('E5(8E<)Y'KBS/J=@*\:H!#BGX\TALY MZ#D3QBI3(>"8\40S:<01US>+'O>@D5IW$JI-8]<48@"]H I^_G5>R MC%7!JHL"Z68[A%4"XU 30)N/P*^9U/$03Q*=_D[1Z:8+IHJN(6 Y!788>@[C MH4X8)4S"9W&CK_GEH3LOE/(+N=X_L9F YX/ >8#^)?BVG""'J+;T*Q3 MPUH#9X2$M2OAMS^P^B"L%XX85;:YB!_\*+OEQN%BX:2K,CCR)+K:L_SSA+/Z[XX*-XW46KT^%2GJV,%<\WK7RNUI/%\)W2M[[! MFU1F?U%\^PN/EHB![11+GL3YP(.\W]I:#> ?M[:R*:5/ M6Z92PJH-L&H!:D+-U7&D.Z_^X,PUB9_?JTKTR]&P^<_6+X?#ZHE^^:*60&]2 M,&->T/G2JHUS>EW'UL-N#A3*F7":H3O'7K,8ED3C+ST:SYR"=]'Q%1-1-TA! ME"@,D,3ADSA\$H?_JA<67HC$L<,QA1-\5>-6R_I""8RR/[07,DY&MN$U3K+7 M-,$F0?D4#8IE/T&MN K5<.Z0I!#I]GI8ZE3I[Z46L M-,,WBM6]#.X:EQ$XI%TNED24+Z 2_!"=PY:$Z.(=HHLCT4G8[HP&'P]UNN)# M;M: XH%V2#H_DCP0>?X'U/I@2(YP;5I)&T+/PARP8)T)LY#QU,;BHZY9\IR= M39,@WD\A.@GLG=.8>ZW8\_5TBUFKV3*F^X-,#E/P/ HRH=C3&[%/IY*&QM\V MS%?D^7RW7*LE,;TDII?$]"[-Q"LZCK;03?. 6G>M4:^\EH.*$6BI,MTQ5Z:, M02<].G\OQ9+7+'7^AD6)%DCB=XD6.+O)]XP:D.:F8C!K9\W-4%*TS!81Z.U, MJ ;"QD8L<8WC2:SNV\;JRGFN(98+Y4RVQB'EAIAI%,OAGU' 3CA+,O?GZ?>D MLNZ[:^XS]BJ"$QKKX8$=43E. _C<4C6#D,'/*/620ZF+LNMC7)!1: MLY#QZ(0Q@L6O6?:;+):Z--/A&3H*68T,\D]GXPQ3>UD;\T4T6OIX!,5?_ MYRODNV^'UW!L]>@K>W9.[6B>G,\9UFW=5154*? 5:"1&1]2$[^ FC2_/8Q#^ M:+W ?#D#8JX7SECJ=Z)BF+D,-E8'E3&VGS%>T5CE/2Y58V?SQBB0^U(\DU(^:$PQ-$,<=XG]]>N>_S^='S#>, M,S=R.;!!6#B6YRO]6YQ3F*#;XF5W.> 6< Y1>/&:Q)AK*FGP%Y\&?S])A9S2 MW"]1(9_<-^: #A&**V,J::K $>1"\$$'8_JI5JA#PK#C-8&Q2:WAI44>]U"N M0M<"N(^('1[#=?1Y 4+)@/,V-3BX5LYDR[6R6.:$J*>,(/*Y:HFOY;FV$#(% M3_\=]9D1^__\&B:1RKC6(\:1Z+/7*,:1Z!\<XSZP+40#0S]I-PHWD[\ER>%?G9T]FP)GAJ40A$*81[*X/'6WA2ZEN9\ MN[CF>O)/]YXARO5P<_/$'SL\7Y?,F6T^2YW.J( M[@!?U P>V%6?\]WF+G;WZW<%[2(^R"3#_. MFIK."H V,!4?:#5=B0"K@V<.[^. 1HP$R=(Q(K@M$16U7>6MC$QL6_DG#<)^ M0I0O:1!V28;;6\3HML(6*K B[*RJN/Y7F3* <^'J(/ 0H#BVN'()#CX'8*#,=@4DD#@ M)UJ#.?BH<*9=W9_D @^N#7!W>\7J^$YA\KG1/*BE"UC1\!+^2\)_2?@O M/D;;Z^2;']KLI" L7$-9!?E>9]%NXVXDWYL6KP1QSB+>).X7'U,M:@&';%N_ M(>9]U#@)[WU1>Z^?UO\QECR)^3YRWE:Q)^6.&M/BM(=159$KSFO#JMBSIPR[ MD EFDR)FKFDZB0C&IN'73U,JIS3]2I3*I_:9/4FK&(,I81DTU9($8-?MPF+< M]MJ15@DSTCA[36%)$/'B@XBOZ#7["9;IS]LQDCCB=]?EYWM#^!0MGL=*G"\S MHB,%$[%8<8.&W['&,A$=),"DTM\@H0Q D)2 WCA-MQ>5XAGSWU),4HYM6AWR]QLF9(+@4FD:TQ+)J.V_A1. M7&/I\]MQB4Y(JOX2G?"IK6*>50ICRZ(URIX0'-UV_977(=&T'RF%L,Z/25T3 M%)&$Z"XS1'>"$8XG"&]$?,TEKSO^VWC=WFNP+7;7!X1,[US6G"Q,LZ3 M(%X2Q/N69EX>C #4\UK95AT+B,IR+X/3 (>T/]86>G*G7L@8JWJVV4G+:/:V M QUW(C+RKM-4*HGE);&\))9W^;;AZW7#G+E]J;CS8HEK(_?9W22X]\%VX(^NQ/YZ!L1\&_BT=SF>#0TP-=;N!X8\ M, AQU.ZU^L5%SQ[+9'2F1PJ_9JFD8N\\IN"/U@[,ES,@YMKA\U[*>%8]>*,U M[];;,Q=;#?0AE:N*7685J0=H'Z;#T]G/V14^"1S&[;6,Y$7A)'R8A \OV#C< M4_P'U'UZM)KX?AC19R][BR/1283F2_=H0>1S MU1)?RW-M(:0;3_^-<"VI+/9_)^&9[Q">B2,?OB)D$T<^)+&*Y,S2KXY?Q)$/ MB=\>GS:O37=;$@:'.*IQC>SH??ZR__5\)"NOSW4-1'$L;Z*XP)-G>%D=\:A= M-;K90.H59Z6%,&Z]-[)=;A0>QZSN"!)">IJ*R[N"'YY/U5', #2!*X03N@MG M89MP5D-Q77E&=.@"-YTL,*57 G1-SJ.=X@*R\&RTOBIT]['$:G1_DJ5&_1E6 M9&4J/4#+ B-"8F\.ONEQ)(;W0KASJKBG NK$R.B6PY-2RY=7'=3#:!-CE#$V MPMCIQZ#IY.#H0]Y'C/8R@3]Q7$B7=I#GIF=YS-!8>URW09L*52692O]%@+V= M^-?#ZYS45SV%SV8U5<"*J#57O!Q975=;5W]2UQ@6IHT.]6]\&^XVC$*4N_E< M,@I1#ZCA6BP<5_. ?XZBTA_B#9X,.@IT?/CTY&/.T*)_"]D+O0(DABYO&. MF<<@__D)\?$W9CM#647U);I9W]^EZ!^9+2CBJ-CM,%BQS_L.WN"=:F]\D'5O M69"(T9O/X9T@NZ#N,#??+$ X^]U74#2C^!=QOQY)!#_.$?P8"-LG1.L_5-@6 M_(PJ&RE9Q+I84=66RV6:6K>^E[ E^83XQ YRCF4Y]G<)'&RH>;TC7=9$:X*3 M3@$#J%@HLQF2UK56G*,&;Z7TMI3'&^OZ.&_D1H5Z.9T=I0DUDX0,7G& ZAWC M3_.8!]:MC)8L6A)DK8PO\=AF>\9=Q/--IU%2@2;1!%KA5H;HL2:E#\EI&H@D^Z;6,$U2!4$-'\@#+D-Q,65;JW+#>5'NM M4!70YU8%275'?"(TH@L4+W!7NQB-XD.@>O[W]6]V!.^9WP<-;VX.N#7@!)2S M.M/T6!*;V4XO$^:B\33V["GV/]FU.96[PKRY=O*2../H!;U(+3R[.+'&4::? M)*[)9]3/25[->=V9GV>Q)%G3<]HB)]@??UV6*_) #1RS0-ABO3&G)DL)(P9# M!14L(*[[8YF,COK#:>J:H9X>"?;?)"N;9&7CW#K\RX3Y?-[$2=)<+0:%(C-: M=;& M8!6*M?3_G[TO;5)4V=;^?B/N?S#ZG//&WA'2ATF&/N=V!"+.BHHX?2&0241! M&9Q^_0MH55]NGAER,L7S\Z A@CJ U]#77Q",W<",Z,HP3)81"FD M)4TW%?-LF> Q4V2YZKC%H2J^$+N8S!#\5L+C>P1)!,Y3!+A'$)01!V7$[T=K M?!=/S"GE, I6TY*X;@HL49KM)-5@(IX(M48"I?(DF8P: #?CC;D9WU!//$Y< MF#F+$,+>4P$K;1V$4P2 M84];P62SY*U]D;.YKH3'%QI2))7'8>"/5P:29B%!"M92""WF"2/V:FTSQR5TZ,]]WS4V<\OEQ:NKC M[2$)5Q\6DJ/J!-.%EL4=XY_I^CD_?O 9WQH^XB85 MTCB^U.X7#)N /'<;D001D00*TWD$ 5[.;[KCOWTY%.442BXI6B@H[F\AE_I] M,ON0;O9G6DY6%&<9OG8?+E[.=OQ(%W7#C^V<&?Z!X<8)FJZ?<_2GXZ__^S\O.?[.;(,59..Z7)TI\,:K9 ML7P5&H/!T*"IJ\D6).OAB[_(BZV\]YZ,DY!ND2>Z_?),JUAL/\"?4?I?N1?? M1_.1F,REO(->3-D)?-!"T_TOIS][^BRFTN.]0YJ2FJKI M>$%2*!65\*F.2#1)A?N&BJ(RKN,X06"?CG.3/@D=;>87JSW][I4O1QG?%5;F M>_V<,!;Z7$O(B0*3/[K6:FTV9)WIRW&R?%O@F[42T^=*0C_\&M\QQI?Y#M=C M^K7PMU(!QPID5H?ZK?>Y;]W/\>7XG:*% M?]C1W%Q\W#-7DGWY[\QV7K3E0 V5'O7O'R1*PN%08"A:EE!2H4+DX+HDRS@I M(2I:P,@""LL8>A(G^4E/:W4+C3DB5WEQW\1;>[%HSJ?;KA3JD3^V/,@B:FD= M9L69WI+N$6T")\=;"4VVW!0DKE%0=(\+=A@^GG7M@&\;H0V;:+E:+)6!,!48 M#FJV;-1>ES>>Z)+>%,(C4X)_K%EI511IA)/ MCKB]/=[5S:Z_9O=&V#+Q]GFW:"RA(5'FA $E6.2$@C6-"5LFWEX;H/1AVR-Y M6-L1[%#S>B6WTI4*R;>OB$EQ3:!>V]HWC7K=6SO=P\"0B&1+R:6A9=77?*Y2 MF_3ZS:YO3#U#(L^T["V:?;_4(SB^MV#Y0HLKUQ9=B4JV-/:6V]_;LQ6L68$L M,)+6GCN&1"=;NB+NR(O#EH#92KOO*P&#,6-#0N!DTZW+JSK7[)[)4%SF,@R231MP&L#-^8=EQ,@B.B7VC,B M,,*G8LFFHCO8HPV]+7)\>]^9;9:IHR03-4U( M*EUE<>E,;SOXY46ZU=VK5(W- N3 M'? F V0QX_HSCA5J&[S77ML6&2+ZS,*NA_IBA 5S!QY6<&NU[C6@-M^-FB;Z MZHZLY4;HNCNXT2(]?=N"!7,4/S71UWW[(,)P )>L_::-KCL>U9I4& D](RY& M8=4M];J:90WW1G-/DS@5R2MZAGZ*CEBEVJ49R4'\GFT&M%)UNMNH::(#4!_A MIXMIT;,J&%TOB/;:@I;A4\](EM-861BJ2751"PJJ7BANMU:( O2,9+$#GUET M.70H-@9EI%<8]K"U&S;])EFQK?>LNQ_=&J'>OI!7GO;EZ9N76TBDZ9ZTW$CA M4XZ*XI.A$JO5KXD^]4[Q>&\*E-TK;QW:>.G5Z('#>EWPQL8)_1 M5QWX+[38%\]WPF?J"V?[I" ^_0Q%%OV7HZ42%A01CX M6LJ6P<^U8N0-3L)O%MZ?1U)>]8" A?B@A4 _PP 165@(^C.!@87(P$*@GQ&P M$%E8".0S^FK9&+ 0'T=-KX8TP4)\T$+ L>L;+,2E%N*M>5&_,A_^>-148M"O M>=MRL8\M,2WO\&ZGJ\Q_G#!0?^#A?YJ#T,*-/OR_3X5/[]4@\,]D^G+RJRCJ M:Y+3G[F:EFN%OYAY.D@BNFEO\I5;1D M5YGE,"0/& (PQ"TPQ-MTJ&,(//DU(>S/7("^EPL0)+:C;I@+HAS?"[' K[PL M=RP&\&<:N74Q0&YE,WB/&'P_MO>1_+7/"O6X =<6N8L1]K7'\^[\U3^,C%Q[ MW/^\2()Z%%JXPDA>S4F/$B1?Y)!>.NV\%+AR]!P)D4Z'4_K.BY,J?6@S*PKU M=P1:0Y:W;E2KM^ MX)9C:43!569"#%.![7[1JT#*3N;%844D:VNIX]:C"@9Q&1R"SI-GBR=>2"&Z MMOA^V$GC*UC$+"_THU1@@>L-:BPGW()-FP5B/>E#US-;DI/PI*Y?2D.Z\MBR MQ+OIJDNLX_F\?F+?,^2[1ID@Z-4.8YC=('*19(;%H&I(A;A6(8;F8?+E><7Q=#UOF<)RN_O0K'!=F VKAK J!*$_Q7J==Z))-)SJ:$"I1 M!9S(HW0J.+YVB"%]C>FJ"N+SZ4\4CU]0<1W/RZU<1S=]X'"Z<8?3I76JQS9? MTU6C8N!U8MR=(=_9B*+HNM.OBL& K9M+<4,N2EN)B*]_*V!YY,SU;\#Q=... MITNK4H\-WW2UI]?A6S'6*\=:8!6.&,%%"24FK7(G.JP9W?>&8GFU2CBFU:NV:T(].IP^X'#?J<&T!.*M4ITJTJ#\ M-FY5BNKBP!UPO>MU)3)6F! R3Y(I1NKN'*"_.LR3<8!^0$F_+ $T7;WGW0"= ML0.?$*GBTEI7ZJ,EKBG]71 !-*H!3.71LS7;@#880>#ZE]-]KCV\#+F2KNT:_V!7T[6'^_H]YA>_J/R#O4^R:3=#"Y:W2Z;W M=""0UQG/T_QS&158F6OJ(\V;P_S6)H)@O\7A)2-1\7VU:+(F[]_ &75Y9]2U M$?'!SJIK#_?*!)"R_^J-!* V;!BR*$+G A?;H"T#+QJ4$1) =!]M 4Z% ( [ MZT-#@?Q*BR30-G*FK3A+#?BO@/_J_LSC=/6J9PS58@A%#'N&3(?U96U3EP@9 M'KJ#.JYN-^R!CJHI1MI4(4_0J:2G E]5]L$(?%47U'%^#XQ0PX"#(B)15H4> MJ$VZ,?7$#1."D3B"$2X Q]0M.J;X?I7KY6IMEF]QN;].0;F_OP#/U(TG.7W\ MN*^6#77U]08.F$<:]]72AJX\;N!G^!@_0W3[3/B"6E2R0/-\X&8 ;H:[M6S2 M=3/4[$T(H.C2J:-I\P2I,^:-0]4ABQH,8(MHD"MTR]K^LLM$ERQ$S@;@9P!^ MA@= 8[I^AC>@T5H-O;[L& =QW6I[2ZS;$>:-&(U$2F@$CH;K*#?:,1,*N!MN MW-UPUV>J;C^1Y0EO/T\\W*UQ0#9 M*[?N/+GKHU2WGWWR:]02X73 ;NU0$:'Q:CVA#=ZA-_&%;]$1JCQ.DR#EY/9= M0>Q,MHWP6:8=W;&?UG_Q)TY2/PHR$?!Y.9MBW,\3>7@^L09/#FJ(P6(S&;0]VS+817<\9 MJF-X'J8HX),"/JD'0'JZ&E8&D-[7#\R.HB8'V(06[(XR!Z:\V$9(CU4XA$KE M1";P=WVH!L>'>IL+G%S@M-?]GO:Z,QTP1FS;L9WOLR-_;HK7;,BO#Y6:PFGS MC0^K UVI.)M:TM*AHYXFR_0)L&AS;:X6AM/QQ1J*(5CC%.& %.-5!R^P9+;M^^LO4N/8L? M%-O"J#!=64'1T J4/)ITH^!G7'L;(],,?=X&FF_0<1;EAAW/HA6Y,M_CGDZF M]9G1!4M%7GN(&7*@W2PE9RY+[,X4JV^G@CT;@.G$YO%&9J\9C!IO* MM-*"#0F)2WEC9)Z$4RD%##QH]T('F4L_N[-(ZZX M?CA.Y^%"FC4N[QS.P(4&M+7+:FOGL/TCI .W4AHN7-_B6.R@+I%B%[+*1@3I MJ.)XGL22;C3@1;L!+UJ;ZY^4*N U2SOM# N93'6"Z4*[#DU?Z"KVWTDYN\)0 ML\3:*<)%*\,_CQT/^; M:69W@O[?23%[(S^4%-#B3R>3CU< MX!/+[-B >RQC)SJO573SS@?Y0.Z?.Q_DQYQ?O/(@@7/C@U*$.EPO)U29'@?* M5=]Z9A H5_VQF^GCC3L;*2^@7/7'[L(W.^ZLVZT_GG ORIZI -/T_9D;=^)& M3&1MW+;/L&1N3%6+/8;>3'8U3UHC-47G(;MA#8N!.*JLJUO!Z%XX;("^P6_( MR:X=3J'7T5PAZF*,Q&?_(?SL/^QI6[6U)Y6UB):W0QXY2"5VUY70N,0U^AE/ MWDX(3/?W9V[<"9P361L SN^( Z0!9U<5>6DY:JG#9#! 3(X;E4?.X'X#(67C(&ZQ43;X]8]A2J- M!OT&TMQ**)J^1O9X3 "R.3(PU,PQP8>J?D\U&SDVMR5NWZTGX >3"Q@"G9@'687ETZ2/&FTV9# M+1JBIC+A6LF&U@Z64\WE]=A/Z?&![T4C"*?X^_#SBVMKRN71>B@<5I9VD [C M+1OX$&%(:%Q+%R/R,)GBE0=W#O8LYI.D6@H$@#W=HZ5_"O897*RRC"4Q8D49 ML)X\G4Y8) 8[$8,=!9=4W:"_!&2;/&BVR4??4P7H_2JZW G/"98_0_ ]M[HK M(EYS9.VKR$JF-T*]4]I**''2YI T[QM]/)ZXD5R4C[[!"O#$5=3 -_"$@,W+ M38'171$-&FMYND.V-L)$/'%4!'$ZE3+=]^"9^[[<,IRMF.'[XL7.U<.!XS_&O#E1>YE>SZT87R_DSSM$A* MX^*,YKCAMM8;D,I6:B_G2BCFINO_PV_ M/#U(66BR&PG:[/2V9]*)WGJB91C^5RK4\L,2H8DEPEYT.O[ZO__SLO/?)!]2 MG(7C?GFBQQ>CFATG"8VA8&C0U-5D"Y+U\,5?Y,56WGM/I@=]1%-,O5^>*1:+ M+0'X,TK_*_?B^V@^$I.YE'?0BRD[0>^8S73ZLZ?/8E9]_M#QS(@3OKC:(N2] MC18]_;OGQBOC.ZLO*!*Q[W^6X8^GD>'(9SREI?K!)L*^+;\?N M!L6\'^ZVX3^6;Y7Y7C\GC(4^UXKB^DS^J)34VFQ(0-/C!!XG0.@S82.NW1?X MLM#GV4:5;Y:XGL!UQ5I_+!4H'$6H+$[ IZ\LWQ;X9JT4#J"4^S:.'%_.O1Q) MQ',(^9]?.8$7JAE>/L?M%"W\PUC]R!VO5/?^ MSFS?15L.U%!@U;]_$#])Q0FB@*NP1" :)N$(14M34D4D!2=IE,)I!)')D_C) M3_K4?BID:TAH MLJ7*MD?%A5' 1',(.=":65#UW3;4*I%$4Y?F>URO0;@B,1<1>M)<[>1B-VI* M_=ATUC[@0Q@=SZQ]&>MC6,%O<\.MA"??7QEX6+.OU2"1P'6(%:2Q?_"[8-"[$X<9P)71NK1J!1,5'C!2(3DH$9FW M]MJ6[8MK860-UNNMJ&O;L"7^8\N@2Q9E:B>)%D\QM6$/)LN=8=0R,?R5!]>K MV[&]$;7B=$ 3O_8LK=WYWUK5',Y5!\)S&@M5*UEU#(Y45:/7_1$ MFQ2YRAJ;,46SJU?XN&EBHD9+!]TV97C \>1XV^@Z[J$TCWJ:G"AZ6K(;T*C< MXB!/[ZSJ[5Z_.^U*A 3_V+(P676E0P=6Q:5KK"H^/Q%8U@A;)B:J1:C%K;.F M: NB]$&[Y^R<-AP],S%\>RY;)0N!IIRL#7QT4:GS'25Z9G+X4-VSFA0BLURC MM><"'EFRG0,3-4T,O]Z?:&*W(>ZY1E-FG19'\OXB>G]R^*;9\GG=Z\U@5-JV MYI-BN;[!NA*9'#X:= [POC=E+ %F]ZU2?\0,%DS8,M'37@%O,T._XG($P2[+ M/EOM5991RT1'-U2_T5[QI1Y7<6EQ.16D\I[=ABT3$H5PFWVC;[7V<&-=[_=& MG=6F&;\=2724;NX/KE(8!F+0$ KS56.ZA@,C:HK]V'2ZGPZQ1E<<P;+:OB3"?L1!]4Q& KT*- XJVY9L*5D*89JB8( M0]$(6R;F2:C4YCK,#B%N:!C3LFR,G%'\S,0\<=UVA2QYFZXE#RFA6<;F@V(I M:HD0/S9E9[BV71;'KAAT*6J"B@5+G8:\"R=[ZL"]644<5148$@9C9,6XU*B[ MC9HFNCJTU?(2G;PU!)LT-ERT1^MQ1>A& M39.=[05N,"JJ9AUF&V8-.[ #!#$9"4&2G2VB; M#^M8X;\4=2$"K7BL3^-QM+SG39^?HJ*'5$&0;-4UBJVK(;11; M]3DX@(1:T]E,4:G>C=LFYH#K=D/5;H3M++2PYYE#H:WTS; MEIR#8*LN&*9'-;JP)M34.FL*H]J$B9HFMTL*++RE,6.R-$,Q(VJ:F(.26YEIBM\/X(;1KE.'RFI?)N,.).? GS5)T62J M ]_AN.IBQ41-$W-@HJO"HM-;#BU3U*FEV&,)78R;)N: I%V3BXLT95$;LUM37%<4I(./ M6C00'%A]&H+/,G8+<8\C[FJZ%L2Q$C=-;)REN@_3AP:^M#1L8D%MF\*- M;7R-<6+GW!%*625;2 ?F%2((FUKK_3Z^(C6Y=9K[#L?8"A-8,CK@FIN>3@G( ML6UBPO =2A':?,_ ID1OL?YL%U2TN O)S9-4*TU; M-HCRJB]Z0U%$B]J:'+3M9K._C=LF5;@ G9?+1H^S]N2DB@U]?3[L'=LF1K;I M]>D2S(Y)6,#'S>7"<7?[AA&=,4QTH0,7F-&N8K?$]5SOU8Q>>RJ6NU'3A# N MAZZZ68P* U%HU:NM8L.T!3E^:F(2)$?@!3\T3BQY-H;@25^J^/.X:4)N6:Y: MH9O35L':FU*I4J)W \&)3T8GYXNNS'Q)K/F25=%&*EU'''3&QH]-SE=Y)^M\ MKS3'1'Z'[PL#;+=95([/3ZTH7[ M-J?1R(:EYLVY'FXY8=/$?)4+T;UGC+FQEI@9;$E[$/B,$35-3(+"+&'1/6 A MSF>HXV@#Q6&9^*G)2?"U67\)3V>X5:E4;+$F0Q+"QYU-3D)_8\@'%AO3%DKO MJLT"M*C*ZVW<-C$)T_H<-WN;P4%DD06%,LJ 67CA<\]0\ZPPWM9:](: ]W5) MH'=%JW@(U43T##5WRU5I)$/%&4SP8X8X>#.>#NTN] PU^_WVEN@M9(-K2-*0 M6^X:DRH;-TW(5U_P+#&N%/KDWW#B4DIBN:M.LF4UEOK4$=]OM3X93C:C' MT=G$=*VZAK1$)ZS :>-=25#J$"60\5,3TX4-&7+,4R.<"W::?JC7L)I]B/N: MG*Y>"-[M:K:?6G)[7F4PV%LOFG$/SI@+#8+HJ/8J$"%K,J9U=[1!UD;<-K%! M[HA95]WPQ09,0*UU^-P:OM\?^Y" @S6QRR9.V^%SW?U,H-WNL%@(AW;&"NO" M',FV\45-;*B,-6SMQC16C9LFYK;,F'17:\QID2]M2K-9=4<5T&W4-#&WIC]K M=4U2\2S>GS-M3=O)=K$;-4T.+-P4.M49TV1AE"76(D>51WH[[,$9HXD/]C[N MVX$M"LO!6C,JDP!UXZ:)SD[;);0E3I0%K)DB5"0*Z,1VNE'31&=GX\.HV- , MGUL;M8/,(E64DK=1T^2*:=5AL;PBVCZ\5KID;S$?T$RHID1M$P,3#T."Z>RK M B=L^G-CN.G,%E$5L3,V'F=22%TM0UUX.$/;;J%4J/FUN&EB8(?6?-RK%#J\ MU2B@*W4H:+*R8Z*FB8%)S5&HUTV* 8S.FI@QZ/I-.K3'PJ8)"4?I64OK']0V MA^ZP21=B=&)3C)^:E/"#;0<;O5FV+-X)C)T@87H@&'';Q!RT"T.IMQQI @SU MS8!EEWZS'1IDV!GK<=SU/*39:8;:8J6\V<[VPM88=:.FR<6MJ08R(_L5#M)U M(B@.IBO*-Z*F290W.AW1UM@#S(OPHC!1O#E"Q1U(DB+5@VO-.<=P2ZGC?BQ29F!$&;:(PU/"0W\^4Y>-2 ! MC9Y[QBB%MMU@Q4(U16STMW*ASO+]*;Z-@]P)W:?3#C9*63]8A+[4W?I0JLHH M$S5-S(%>:J)5?Z]WQ:'[H;BWMAP\C&6- =+^YL]I1UWX7G; MCT/4ST''8VZ&XBP6\LK3OCQ]\]*W'H7H3N&Y*%*E'"-<3Q'6.!XH![[S],$Q M&!A_\EW,\$7\_M0F&93UW:>.G5Z('+WUOY=OB:.?X5=/B;P(O[UXOA,^4U\X MVZ=8\]//<9#JRS'$N@WGZ9>1S5.P.7[Q4U-YZCE1YD7*(I0"+ 1 Q*,M!$R#A#/%# BLK 0A5_4 M& 0+ :CIL18"J$P968C"YP)PO69A(0 U968AD%>K'H.% %&AQUH(^#,&U-<+ M+L0;"S3],F'@XT9-OF'4J>Z&F1ZRXBRB#__O$T)]>J]:1OQB%_KC"8C&]=I9 MU%\=/^W/7$W+M<)?S+P<9ZN:FGL^AIHNW61W[0&P ;!_#]C?5QM"5KM<7.+D M(XH-_2GP6[*KS'(8DL]%A8$ YF\:\^\N:G-')'"=.?B5=9-^M0FP&UQGR*]G M=MWAD'^50P5$_6$X[_74(2 (]TD OXKVW.&0 >%E2\[_E/">33_TO98?\;F0 MKE#\J6''A-V)G*ORXD)&'9" 'R7@(^[3?#\M &,P"U)"?<;359+^V//K^!>C MB-3]/F1B[5\;VE.9\9=C PZ>#&+Z/X.Z!5#R0/="1316JV;>RT#>F MYJ5N#/SI\OS\'O-]4Z%W8%Z#]3[^\/RGT1J M;UA[.UZG!'C\#WF\\!F^;2W^>*/%@\O!GT0N;WCM 0=<2&LG;]N[ SC@@L;[ M#ETZW+TL..5N4>HL\YRY=C1/:#,SO2>6QT#@+%3L*5%]S)+ M\F"P(8-)=6)!>V(#-]$M,NUM7U[^7&N7WW#[\XLW'.V2FN<%FOI\RS/\?,NS MT^U96W'7XF"HK>)];=PS(&LKQ3<3X$@>0;$\1A32N.CY&DC(7AKC,5O]RGSP MSXOEH-\'%8A"2>I'%W_TBJ)B\=6*IJTWI:YE&E?G@3== O\R[G#LR;E[WC=- M1-E."AR'MMJK(K:CYK@4W;A8B!@ N1?HI[D)QJZK+$E^).M_96[?>TIR>"GQ MZUZ%V$VTSE2$?*TPT1KP?*@:[]_YOGO'<>\+93Z]A0$^:+M[ M'_S_?,/[ ?S?=K[)^% ?MC"(Y8)%>6)ND.V^VH[O&H8_?450.H_B&,!^BMBG M[D/U/5:?S!3\LZ[Z?CL*$R7!U>R3M_S$"NTI(PCR0B5$C1N(Q24U6#'#;KIJ M\'!<+]R-+IQ%+K@3/>!8[A%PP1NX MX"D/\BE0@VIWLAEG+O'V M>XP^R7 .0>/GMS4_9]J*L]1N,DI^X9A:EA@F3EE'+[,S9.F,"BA'=*/EB( $ M?^1RIEY4""PGJ!5TP[6"@/A^O-?XH8;\J]N-@ 3?U'(^( '_ZA*:E )7 MCIXC(5+L-D&DOB-A)Q\*-ZYI"!X/*<908)$MK_3N9YD!,*(D9Q.,1CR4-#XU6TXP%.1653/ M6;,K5]KU [<<2R,*KC(38OC^",6K@,1+"\$A>'\AFERG7&8ZN%!IQX"DTP3D MHY6-OV;0XD>':)2S+=N*EG/T7.PU_W*CD:;LD>XU CO9FP4@"]?*P,_>+%PC M?3][LP 0<:V$]NS- I"%:R5F96\6 #4".%PM9SE[LW"-A.?LS0) !-@@KIGV MF[U9 (BX5OIK]F8!N%A 0NFU$DJIA/_T>,@Y\L7GG%7D'/=RVDYS%=.+ZB]G M/V[U2$$)G'XM(A7T/5Z,3SJJC'@MLQ+_DC]LJ][2KGBFVL64<>;R @YP2D&%V%RF^64XO>Q]?O/V07Y(N!O(BT%YG MBV\9+[M%*5ATIH<21XR+*KD?E>?VI!NR15R=(T\@R;H\@"U 1O5-9%3_)X7J M/!?EB-?K<^@+8U;:].<*K*WPQJ3;;YKSYA\>S7\C6_RTJ _!^@>EOI)U6/;Z M%6TT&*+;KA'1!O;I*WJFGMWE"OH\%(0>4,?(7A8[,#1!YG4V)/&F,Z\OH:Z. M%'=0G@["!>;W8D%?--$^NF"B?8>.U%4<3J6(,LC/SD9\P=4\WS457XL&$PI, M[O_)R]5_0O_0V>R?Q0)!R?7,IUT#T,Q'=R/BB M/W# 0P^'_FJPH_>\TS.VVOFVO\=_Q&S#>:FX+X_P?0M_U(8X7N>*)&V9*+)D MS9IMK-RNA,!1_ .E\P4\Q?C'H^,.I"EFL4KYM>W(S 1.7J&=V I]*^M\LTMK M"T\83KF1)PIC8^DM]S0M-HV(=:(X"DF2@'/ 88%[.RQP5[3S(;&8] A(GY:, MI=Q]R2!0 M>CO?YK#I!!VLT;+0:L%@2UO_P/O'G2\JVI-'80H4,;^7,R?'FCU''U'.U13- MW&AJSK1S"U,+HA"1+^]R6].?1;7OPP[E5O(^4OUR(4XVH8B%C7\,(MU"6/^1 M8MP@VP(<3 $'4QY6@J]],.4M2:/W&)IYSM:)QQ;Y0LJ.VY=WPV^;:OA!_-NB M[&EJU$7-]N+!G0G'C+$UL>^H$TJ4J8)T&.,[ANN&VAD2A6,0)(^CR7 ,R!4% MN:(W='/?%ZVB+LE-IWWDH6WTPYCZL'#1EG*US T:: M#:S1I,Q$9!%%4:@S)]< 58##*+=Q& 6HB6"S PA,X%7%%#WBDTD/32#9"*?XF'#<:UWSP MB!X(2H.3#^#D Q#]1SGY !8=Y)\]8MH]D'N0^@U2OS,7)_G0,CPO+/^^\Y,W MQX;_]$?#OZ>%@_!"(1 T=V,JVC%[KJJS6D\=)%.2&@[T9Y(:#[1GDAM^V)^E>G.(?M34:(]=S&EB[ M"*^'?3]<3ZE8JS/QUDBGN#6"Y/'KN3>=[>;2@%N:MEDA[G 3"3?W&_D$ M,7B0+@_2Y8$$9R9='BPG2&N[X1QN(+X@KQCD%0,)?F0"OG9><>;/T?0T7S9M M3>5DUP[GQ3L%AG;#&E,Q Z8G+HL:WK%\L<_/WG^4YME^?V'3L[(W.W?[PH$R M>IXY9BU^MN]O<6E3EW5#0C )(3Y]Q?,(@8&3,B!+&V1I_Z%#^@V0%,>-?D$> M5G9BI42OFU"-:?.#;@Q).DU(@B3L*YQI-QHXO$+(;.JXJN9" MQ[__@JQV.<]9F&KN'W#\[Z[5Z3N)^EP^.?N*0I&]6?II\C: SN-"YZ?)W=D5 MBK^#B>ZU7,MWKXASHIY(B'4\OZ7Y,^?L3<]D15-6V,%ACO;+[E$7 MI=/314'"_H[Z?;]'L(7;SCZ M!X\W99SQ#O9-JN6XK#T7UTU/P5KN'O&"D (+$OKI*X[D$13+8T0J-Z$_('A. M\:HK@^>[*?GGY0),=\@)OZON?#PAO$D_BA\=%0/47._8DS/:$(ZSY0ZUEQO6 MD!6*:!%R%;<24T$AHH(4[WQ[* XX!=ZR"Y:4PFQ_!I%S#FT>\J?3<8=DX36. M^KXU;QS(\A_LFF?B:B%,PBD*T79FZR2'&G_H;?@Q)T/37J%/'*CJM!OAA8RR MM"B""O]+'OD%R9-_XH"[MZTSV_MF&IZ!:_# GV^6/[# B_QI=SOH+ 6TR57, MEMNHS>H!+L2[9A3/0E J7Z!H0 (7#6#=&PF<(D[9Y8&,Z\^O%]U2FVO*ZVI2 MA3/;A8'0AS;<9)FR+MTNSJD-Q:LP;(['Y2(GMOR%S,2L@'WZBJ%$'L&32=R M%(!F\&,L#9#"94]:H55_.>J7FV.8-5%LMJBZY?T@9398["8NL87E+DQH[':_ MTQ>'0Q!;"M$9JP):R"-8*A?+/B ;G**-]\8&]^MV?R\;Z-MI%:U6>9T+%M!\ MWFD<<*OS_G2VWP*R)I"%!3_V2^(P:/6;I4)H@V!'99_^])5$L3P"I[*M/]K1 MK%L<*6#I#)TGC8?\NF?CVG/P@,L.:F0!27^,94^]EA98]BPN^P.6? 'L]HAB M#FIS 4E_A&5_0$)/O887D/0L+GOJU:FR-V3@A0">Q5L8*: Q@&FP[,"S"#R+ M0-*!9_$QE_T!#5' ;H\HYL"S""3]$9;] 0D=>!8?4M*!9_$A)1UX%K,_TL>D M,<591!_^WR>$^O3>K8SXB,L\7@!EW+]EJ$0F$75^HX2_[,U?3 M%>3C?23)KPG9?@8U_EY0(]AG*E% [:8\WL?Z MV<<)BNOXW(J^E%V9*'Q&;SL*\E0H%DC% UE,4?E/J&;?RD)_Z+9XB>5'LYWR M\%3R\5;6/[- S[R>_[):7WQ?'YF]9]._'!M3[Q\'RGT2W;UA[.]Z^ M 7C\#WF\\!F^;2V>63J![3^X'/Q)M/>&UQYPP(6T]F1Y_)N2 \ !%S3>;U@. M3K=Z $&XB!E_PX+P=*,#D(2+F/FW+ EQH7Y@^;]N^7_L5>.O71Z ME[^#^\IC?%JL2UGN'SZ:3%RHC: 7NT"W/.A,2Y6Z@EC[YPN-C5UDO:[DHH]E$W:G^L\&0OY>MTR?9U">&"UVK?!1>\ M[9:?#R6"RU\35%LL+8,/C(8E!T@;H_J379/>1A20]DW:CX[]D],K2Y#Y3YK7 M:;\;*.?NT>VT"7/9ZC@MF-V-U?ZR-V&HVA_LF6^\3[LR\#S+;KMK,5AU*I2L M>J[K&!%JR$]?"WD80_/8&>Q<[BK=1P?/Z2+-V]\XL[9KOH4"/FBC?!_^4[Q' MN[UL+IMU"!["C5HP*_?FFYOY_L#FC(+J'M\U\%X M5K/695RFB1E!ZP,F9@'BTU<"I?(DB0,62/DJ[=MG@7MRJK^;!2"X#0\GLY(/ M-^QEQ78K(\O;I0S@(H[!3OW0J'&\+6RW4@%OT(?8I(_NRZ;@0IX@B/3NR[X3 M &W-3]GVHJSU&XR.'_A4%Z6*";.E$@ 3?]G(^( &G7CCJVFZ34N#*T7,D M1(K])JC4=R3LY$1!+^-*%;O[^=3SI:'8V%!RP=37'<& &ZXW8A!JH"@^YJH+L31TG-UT)Q6,7*D7D20)-SX/Z4-A(_9J;1W)5?"RL M^]!F5A3JZYK%>X%6M>C&P8>8=!")Z]5Q)Z!WF#6$.[39,OGV;'E$))TF(A^M MG-DUXQ8_ND2C9''95K2+ !J!'"X6L)S]F;A&MG2V9L%@ BP05PS93A[LP 0 M<:T,V.S- G"Q@)32:Z644@G_Z?&,=.2,SSFKR#GNY;2=YBJF%Q5^SG[@ZI&B M.""] "2<@H33AY5@D'!Z5\OY@/E.@(WN9RU!PBF0X-M>S@]'36>=*8"Z&6)&BYA4=9M5-H=7M M*8:U>$<)7#T<>OS<8YGXL-_A2G3"&7748R'*^ M/#_RK4PN5.OJHY6\#\1EF?+*JC)&S98AH614)A>C\A2!@9)8($7FKG(H,WY\ M["-XY[<.H+U".P-Y$6AO99UOI]966ZVGH'!O(%;ZNH]84-E0U9AUXO*\>11+ M\1CIH^,-I*H^:F'?BQ+/ZV5^,=7"W+% TF) K8QFCU\J&_WMI])3I*!N63\P MRG9AF7:PQ2!,K2XWVYB"L$]?H\L! 4!Q>?N6()1IT'GA_UQ.MIB[!3:M]Y*UE\,^7L%JSN MN"H-67QK,O6AW1P;5V*R.,91,)H&9 'R_4&^/Y#@A]SN0+[_72TGR/>_)=WK MPF60+ZLY.=L&56LRRLQJ]-K0H$?M!MCJJ#G1:6I.X&S$%;W@D5H/32/I".7X MFWC<:&SSP:-Z(# -SC^ \P] ]!_E_ -8=)"#]HC)]T#N0?HW2/_.7*SD0]*_ MS]C^?>2'@[T9Y(>#[1GDA]^V)^E>W.(?M35V M66Q%NVWZ\Q@[X!,B$(EHX=1P.>QQ4*?XR2 MDJ8LPO^I/V;FM677E:8MT2S(A38,#]O09#:GRC)J&)^^PI^19)6$J,[2L;SX M3633;F"V?!;HC8F*E+=+W""P,20I-.$),C!OG(EDIRKK0)7F M=J-QPRM$S*:.JVHN=/S[+\AJE_.+9H>)AAG79L'S,$T"/OKX M8PZ CW[G&$1V*0FHS& KS\(L_30['T#G<:'ST^S]*PL%\%7>38#EG>HHOZ^6 MZQU[/(8)TC,5?%N@1\I1':5354=!VOZ'@KO(-)DVR^68?J[%]-AJ#D/RN4@. M;R&6G3I5?<=+6,A+JA-,%UH&B.DC+KQD/(G7WVUJOPCHG@SM [DW_!E$%+EE MB0]8!FDL1,IXO\/OQ1N.[K[CW1=GG'U(M4'*18]%N8K:KF(= B9VW9#-4 G] M]!5'\@B*Y3$BQ1.ZMTA>?QI^NC)XOIN2?UXN7G2'G/"[FLO'$\*;5)WXT5%Q M/\WUCCTYH]ALRHBPLY8%S0H6BVV'-8EJB>Q&5%"(J "Y20Y(_+3UT(>(>$\CL @I_&B/K%[VP*SO?^E8:Q?@P?^?-/[ M@06^[7[;^=+=N?N:;:UE&UD<\$YKVHY9((XR$7B>.G.=&R"!/XDIW1L)G() MV>6!C.O!KY?",IU)RY2)V.!^ MW>?O98,1(_%59*@N.0+>2N:TU&J+W92W]9KFJOM"?XMS:XM0?&8ZAHJM(Y#I M3U\IDLKC<"K;^HV?F/JW+X=2FGXW?[-CE^G&"S HX>ZCN4\=0^ 7QZZ.O>S/ MM)RL1'=>R/8^NN79=OSP9=%1K+#W9OC7ABLO,[H6>:IT72'T?MHZM6 M?H[9:');B39L]/#GWDK>LF) MK6'X7Y>3WY^O")I8$?Q%I^.O__L_+SO_+5P.*<["<;\\,>R+4OOB+O-C*>^^)O.G/./+$WE^>63J:AQP"?T;I?^5>?!_-1V(R ME_(.>C%E)_A#"TWWOYS^[.FSF)F?/W2\V#3ZXD97]I@;+7KZ=\^-5\9W5E]0 MY#,1"4+XXVED.!)Q>BI+]<,!1>S;POQ7SLW4LS04?1_28TCLB^-C MM\?NGCX*T1:Q380C-MH_0J \RZG\.[+Z_4R?FT YWA D0I%A'*<0B89A7<)5 ME9!H2BE(*(T@F$IC.(63GXYO35G G^:1^#:-T^_>>)JB:;C!A;]D^5:9[_5S MPECHX66H7PV2D@,?]= 540V;(LFF&Y[K,J9# M#^&&[.S*K6E_U"1#:4*33?7:@9^L&ZP/[WO-OB +1+6\,R0$2S:=DFU%YPKC M-BQ;"\$G/6Y29,.FYQ:_-14\N-S"X$#CR2Z&['NT%_;US.H/S:"R]*G-TA*: MM4"HS:1#W0V?>F:I3!WIVA0WC>+(ALPAPK3[)6H,A-:-LFF3&@C;6>$3\(!7S)Z MO+^LZS@3VF7)IK*'BJ2Y<_;BLN55EE"Q/.RC6PD]LUJ-V6(EC!E+$Y=+B%2L MOEHE0VE!SZS6C-\LMT)(HV=6B^FYHR'7PPZBI@W[>UG7 M]@0>-CVS6F5K22.UD5'E4*LJ!^BTSM";<%AG5JLXY7=E9% ;P4-Q44<.1'FN M2^&PSJS6IC;;F]9RTN&@8GVY-FJ5[DUDT;6C1G,.0S M\:6(B:8[UFU7MC81<&C/=U2AZA\&9%P#.M%T08P,9N!71 L]U.Q62W4Y=FA$ M93X23=NS&NQWV\A0%#!GBY!0E]?T^ QG=A7\\L;%'4^;7:9E9BA>FXZ')-]1<-(VJ:F"RCYS0; M&W2JB$.H2$C(=(ZP4MC7,S) CQK*H,.SF#AL]>7E<#HD)A@3-4T\U0XQVM?] MA0$WZ-Z,;//U98!W)?R,N)"ZMN,XJL=8?*LQMP-2EVM+1L+/B,N2H*0-,]<- M<4T)VQV^'.MS*FQZ1EP(3$!KJRWF6EJ=4VMEUMW(5MCTC Q0."S/QFP!MM;2 M?H#45ZW#H;.-FF()?6%<82NU@.B+P9"$9+JQ'XF2(>%GQ&7CSQ%(D0X&+,QG M[)X86-IP$<[ &7$9NXOM>DA5+2Y4"!:\1!?+TW O#)LFYE4L#>H5K2M)\')9 MK+?8[68]9,.^GI&L-3W'D,/&A6 (MAI#:=H=S#=A!\Y(UFIS6/ [F^/@(34= MV:RV'(R)<%AG)*M.#?M!L4[5Q"5B!4N+@+S]-NSK&7'1!-F0Q[8UYAJ(V[5[ MX^IL+F^CI@E=I&CH75O>E%F8K>YKS4D9USVF&S5]4D9BY\^S87UT889&]4)> M>=J7IV]>ZJ>1&7HR02-K3#E:<4]>A-CFE0/?>?K@:/#&GWQG%[_PDYW:)!T/ MOOO4L=,+D:/*^WOIY63A B_N5_^T$&*?L9>+>()%N+" M"W$*MA!@UK,@_N3G5PO^@74 -'2?"P%H*$OB#V@H&^N Q+$?L!"76H@WGCK] MI5GP<:.FPE\FO/8?DHCSJZWPMN8@-%.C#__O4^'3>^<#_DRF.R'4+\(ZOPKE M]&>NIN5:X2]F7HZS54W-/8=TTN6C&Y(%0 6 "BY$!5*?A^;.^C^(\MP43_.,IO^6ZY '>ZH!\E"&_ZOU[]$D TG_G0P;2_\N]^TYF(7.&7&)+;VM^SK05 M9WF):YRRXZ5)DZ8^Q8E\CB=4O7 MK#B;/T8EN;+C@5'G@>?')Y9SOI-SM5 8%7.AY>QG]27Z//I)D;U9;N4ZT16F M:FZZSSDK+1)6V\A%R[\Q?5/S+E>@<3$.#IC?\D!K0\'C:(#+U=SJ,@P%%=@HD/_V*>O")HGT[&_ M !H!&C.!QG0]'V]&8VU=U\IL86%PRS(Y:>I6NU4O&"$:B4]?J3R-IG2="G"& M7$L/*FDK-Y2=HQZD[5::[5TNDG,GJFUV#;N46?CC!Y,=8DY737H)NS,T['CS MN> W^RU+J TJJ$F.R=/D*O9O>B ?*ZZ/W-BFGGIH< M26#8?<OC0XRV9&T;\I&A-]0NT+R M,)*\1>HR5\8"A]7U8GVZYKJ:FO/EW3'%.9*;%)2L6US+C!B^(*_B%G2E)R35 MXJ,#?7G''0V6XA%)9^@605V$==$-8:W'^_8,P<>2.6&B*T,B=2F/H:E! M8XY$E*_V$,X9!<5:?'=:E!N.I7)?.8 P@/!M0_@C,\I_"6&'X-S9"!TU8\["]GVN75@KJ+*%6?855^MG7*31/;<,O"E21!45!*. M;XP-%20,3;(K1'$6D\DP&%70E'):;)K0T[@YYQI.*Y8 ME(&G"9BI&313;U^/*@:>:6N>QSK+:6B81B]FGY$8?N>9JG;L#^.Z$7SC@F!/ M":FA91O8/J__Y$^:IGR49^2UR$*]9OMD5YZ-X76[O5?&X<94V3,2@A_3S6$J MG:P*0 > #FZ0#M)5YC) !W"E.B+(O;*'V>5V7#9;:V5,,%W% N:RIX6W5I.L4R"0"% (5W'>C[;12V<,GNP6JQ M!:.R:;!UAO 7Y6V$POB8'HF MKWZ_MZ41P[CO3E0IG.+4ZZL:EY^;BFMJ/G MP@YK2OC[*":HK /S>"?WL;UJ;C3/-_W !96U;\XFSNA)[2M,PNO&]+5G!<#A MSH<,X !<)%EWD5#Q\_^JV8JKA:KEWY%R&G\7ZA*7WOEO<2$S8J%EE,0>F[& M5-_L^(!4 SL^2W8\BL?/[VF*9FZB&R^.=CJP,F[%R@"!Z%L*:#RINZ63LENS MGPIT?$/@&<=JV1:F';KHMN"@3<*]RIS=+]I;"8FK0!?0/ DG/:L@F01@.(,8 MOJO(R&_"^:=)(0,4:R6*K)U6 0DBE] MS %!X"27@D-0 (*W#<&/UF]>A^!DU:JW1,N"X'6WSS>"+K,1)D8$P>@*]3Q" MI6.F ,_1]?29CJNM9%-]JM-\3.-P_)GFYI3 =:.#3Q<^^7TG>BLP1[-@CMZC MFG2"Y%-5M%,Q-,96^0B6/ZVQ+W3DK@?;ZY(U+#I2Y5"F]$-C&_;Y6)>0@M,\ M1 Y #4!]4Z#^:,7KG:#65YK1;?L&)9IM3_!M4_(:"R,"=70:G4[S-/J=0/K& M_$MQ^:58"8L2:4-IT]3XY'G8@SA-5]LIFANQ(FL7PL+\*@X=*'F?@:CCK8E MYML!JV)="3U5B"X0*#C-!#!ZMQC]:-7J71BU&UVH07D=06SLR%D#0NC#<,Q$ M& T5*R)/X4G5"GBZ;MK3%2O:N7!!@5\+F,!9-X'O7*V*L<@_G3A\MGY_RM8C MM+H<(VYK#^_W@6$ZFYYJ!5L)/=://A.6 *@&J,X>JN_1L?43*/^(8'S2M_B= M6FMRP0SU]@CB]=A"-T)P%%H\DR<%'%DWZL@Z'0U[DI3<7T\GP_X&1\.R9.Z" M0S09/$0#I/IFQP>D&K@],NCV>,IHSZWD?10-BL-%LJ*X@?9=?1=@,0&+*7L6 MTYW[09[ V3EBD[%5YHC,YC=@GDOU88,F.16GO+@?%6"H5YFVA]VMA,:UB9$\ M1=/ (0+@?0/POD>'R&]B^J>^3JJSI)$"SDN<, E4;-79@B M@;/D7IPE)R6M^)3+\UV&C_)*+A"P-:]O:X*$@=O4NLXE##Q7@3_#R-H>ZT"[ MV;IJ"4R_5C WSA:GNA(:5R>F\S .JA,#>-XO/+.0S_,:/'&K,\3\QG)EK2LU MNL>2WF)7-2)X1J$E.%\XX-]L'-NWV<._*9U7*Q)34XI[/8P1+70W43Q MMW.2D5 B+J64)PL%<,H-4 *@A-M4_=Y%"?2(J(H67IE;P8Z=(W2UT!)+,240 M$26@<-(;#OQE-^HOPXCX^6W-SRFR-\NM7&=CJIJ:F^Y?WF 1KO+FLMK@+2[J MFWC^?DD]LPQ^5VZV$))LB,C."9#%O>AI:LCHSYFASY@\0^%5:&97]O9N!0L# MQM#GA2FE1B8\&6EU!)8GT10CF@#: -HW#NUT];0_@C;=XRAR-$%,:RCV,#*<";QS-^6="Q_),D(U5V[R0R%7[O&M7*T]X(1^K5W) M,6R_-JCU:YSP!=CAMY*#DM$LVD>?!"#]=SYD(/W X9(MA\OI-%U-,9$(D3OXENR0/<@R>].X'@5]O"F=0M+!(W!J7%$#A.M-WLVGJ/=-KFKN)-3W@LAW 40C3R^EL(7"D/.Q1N MC(J;3O,5L+@XPDZN)!B2C? -,#TK6(Z99WLCS#--DB#UP:2P56H MU7ILVLU-GXPQ'=_&1H&KV.[+)\7&"4#1Y26A@.7D2(OWS&AACW?@QB?HHB;R M4;___^Q]:6_B2MKH]RO=_V#UO//J' DRMMG[S&V)/03"3DCRQ3)V <;&!B\8 M^/6WGBK;F$#2Z>Y 2.*1ID]"BEJ??94CA3A2B#\+'3ZSK:K@6(J.+ M9362W MQH!YWE_DER(SD]E&[J94:P[55LW-E=8S?;EI3V#7T-(MBNB)$#2R6)T,*Y\B M(Z\/1KU!9ZFIO?YPTZCVA]GIQH7-8O&(8V,9[E#GB8Q6']QHY8$,D9 4?84L MF_P>Z;*?)2/F\MST42;-!0ALM1VN'V,%BTXK-6ZWBNS&KJ^3R4<]9>8Z0H*6 MTX[QB=-P@HAD7 0V1"3C[=6]MZMK'%F4+B"MS+&0#+68J,@4I91%>2=;R)"?'D[HE94:#XGAR=]><(J.:3:K%>D'O;;*,P7TT L<&*E8JQB5/VQ/V( MF/WQK%A'\LDJM6:^68SRR3YH1,;'43F_U"5$T/_)CQQ!?V1IN2Q+R]%H:A.M M#&T%9A;)1+)B,V-1(N>.5+(H(B *V?G5T,F&H4_ZR)PW(#J@-2X2G#JB2]WT M!P_Q]"115^L-==&X3]['-Q;6I4A=ZQ0;PQIO%*,38>2GQB<6DX-KS+)L'C*0Q.B?"R,BX<0$A.AB^3R\'?1)I]W)UO:^4>_+Q MG4U=M/#0KS5^+8W6JUF;D^Z66W9IN;D?TP*3XYZ$6DS%L1!IMI-%^38WV?-(3:8?T#"%>M+:][GW!-M0TQP^M MX:+)&C;68K-4>,KD3M,E/,+9"&>C7*J/(TAWDS1K_8@/ M&FES7U>;.ZT,4:'XU@!T:YN*+BD+4?,1\H@LL5U>]_7X@W WB(^6Z]3 +DBM ML2LD2'EI/G58J2WF(>VI!XB.^Y6;C2Q+MP!91\E&O:,SGAMX#Y#N6>#W*K[N#P;5<[C67UVNA MD;(>XJZ0)(65D[%TYI3"1(2\$?)^*.0]3\' 5R-O4AI5.X.TV1]4[^\3Z>RD M]5#K3@!Y25L++GT:Y(W,-.\G7?6FHHD8$RV\!E^18O?^BMVGS>_X//)0Q3"[ M U)?382($2)^7MGF MEQ 1"58^,J]A0,2'A#D0X:Z:!?4P<]C\#419IH([EO],7U<(=VF'P3'"U@ MZBUCXKU ND5V=X1Z=]K)I;**9^=L%0DM5%L]JJEN1TAZ58L3N5/6](O0.D+K M#X76YQ&_W@"MK[NEV]RFE'%5_C&%'AMU)]4&HQ-/A+)4,C(Y?3*3TW[M'[1& MIJ18"&0R8T':=T6J;Z3Z?L @@0CF(IC[8G5MB*&E1:EVV2/DQWI/)5OKNK1: M9]6!R&?SA<*H>5<;N4*25NV-)=E#TTMD>?G0EI<2&B/31'*X+R?C9S9$6ME' MTH?HG2VZ^C>G'<'74G_3Z\;Y9RW>4DSW4 U2$8**J1\_GL M,N%FH0"A>&G\._QH*3*B4,J(IBGBS]]6CON(KQMUS(DZYIS%=U8QS&* C<4P M,C:\3,H-3?AZVD3G*44O)_)]5S=%9=![%!JL9*K3ZPJFZ"GJ0,ND^"@,*4+Q M#X3B4<+7IS(=/>W"N?!:A3&C#?.7UY+S;R^9_$0].3^)Y/EQFQ.?/PS@XY"W M#RW,/-/^[W622\EHMVXZ_"A>7K*)N)3K;$NC8EY(DIK+?"R9.0S]B4A"1!(^ M'TGXN :HWZ(#RG-M0+/S^4VONFIK;%6_Z3QL2^-M%1R*M(8S'TN<**4BLD^= M%=.;Y3Y3:Q:[Y7ROS/Q5*M.?_L:?,:1#:+Y9HC^4.X/:7;Y1;O9[D<8:::P7 M2[\_E4@'=!S^7UXZR@H3:!(/:MFF(ME(AC_D=7G_@]#(-KXY Q-^R80J125$ M_XM_UQQXD/):FH*=N2O:J#P>(^EH,=JY??NXX*Q->2Y?EX9-'CM&2S=7U>URO--WG9FJ:5JYFM!6!5N8=^\? M.D*25,9.96.93#JR%D:$(2(,;TP86*&>:-MS-W$S5)>F67Y@*QMI8G8NAC , M[VXTK3CI%]2T&%^[[O1N6=0G0!BP1)A*QK*YDQ"&R&9X*1(ATN43R((?\1E_ MWQ"0P/1--IR1AMZ%FO_/:8P YS_5>Y/MG57P/B^TKKFA/"^G65=01J7;YJ!S M.53[YKXPD&_G[:5:O1G,TISS:.2N72%)BI-S7"J6YDZ2/18A=X3<'QVY.6'L MCJ[YZ^O6N.QH\=FL7=\FU?;E('<^O7IL)+LMKMPKM#?%]:C(EC,30&X0R?@8 MQYU0)/N(N$WDK__8(@;FM]JFIN@H/D4 IT^!5\+/ALRW/LB[;+L_18PH2<8< M;V,#1D'=L/%Z4/T4'T?!7YB8HL8L1-,FY<&FR$(D]0%T.:AQX@<>XD&6C3\@ M&1!7[W>@-P H65G]^"_^QY]%TI!H O),O:4""@I+>JC#LO]^.Q1Y]HP<'PH, MI0=.A39-_OV__R>\^9V"%9<,S3"_^[0^="KO=GF"\1,4'YE(5./B&"_\7=1< M<6/Y7"1WE>1\/O(]X!=P#PS' O5@0C_#?1QN[";5UE!6"V??F)2]C&XOO/.;A0&?PK][)DMQ5\D1/]21@-[%[ MF/^*S-0$YO.OOB$=!4SX&5-@S&0T.JU+M^M]A+$3"!K@'60ZT-0B#T[%U\#J M_DT?N\#S472X__ 91X8FGY_@_JC,WG3F>#7I+6*4GD21BK9CHM:X MM?!2X2Q/I1@)2;XQ[:ICIZ>FV4>YE%:FK:&!-1Z$E8\%GL(V'70BAO#2)7%7 M3,&QL(AG8:%3EYF6.1%U94LV?PJH4W0,,?9WDE/S/-"='\:>W5?1F&,UU&9Z M&PL+UQ;A/$Q-EZYBC,B4,"MW05:7#'-AT">/^0E"%@-BO8FF2+=H&JP,08%=ZTHGDIT'A242$YTC*1-&"ZO^#:>/:?Z[M\D?S(_?,WWJ'FS$=D@MTN M\*?*@N0OX7G(C@P-[T*T&!=I&OS7&(_QM=E4_\#P*M'CSO%*MF'Z7QTK^#[P M%=B(_/V*&2)FY"B:',/[QRJ*AE>:BUBSP?^/08L'V#-\$?^H894X=$_A[9$A M_KZ#8]V6V_ZI&,M[(7N*Q>W)U'!L4)<8,%A@-:D'RI%UQ8#"A>D('N=-\>2! M8]Y\_I]=]/039S?&,,D2NYE BPO^:D)A V@)=@R&/.D% Q+,\I,1<';%MO85 M/\L968JLB*:"Z#N)"WSM&%[P7Z&D-.S,HW!OJ0_^ AJ'OOD+ZM\>C?XHN[Y4 M$GEBAE<0+<5JC=LFLO">R7QY7>YA?JV,,=;J=EZ2L.X+Q*J- 5?"H-K'&RAH MI!*^QQKO-,>2>QM555N5E0 MA?3T?K(8^WI\.0]3"7,P];?7WC/)1.)9R=]WV^ M_2!W 4 9QM*/0+O.L:\^,:B"G=54YB$+*F-A 4*3F1%TH1))BP8,I#-'I^X0 M:-% &.Q4L4#V 0&E&&;.E< JV]O-2:4<4IK:L_,2T](^Z_>$/-EGX7E==_ T M7;2 47CMBF'.J6S L?$Z,/ZQHN'QP9YZ2'),DJM&Z8P7GPPKS17+@OW[\E.O M'$B%I+X.?'V#1!-B$O"4)22A^0@+,9XBRC%_A>2=_8WX\[R3K'%9,+5OTW=\ M1?3GEGLL;!/Q&8O%4*825+,),T$ZUB=! \#3HH5-ZE<&3,73$#1$2R3YL+R; M7=&I(\U7$N )E9T$3[K6[KUEA^H2BP6F*,0":CH:!=8NFCA4W:"#>_%[SRW! M8%"Z(KS.!.JF;6*>L^+H*64#$,"'=0:?CCG8B-P/"P!PLT MM(BZE>#>_0TK1*F4\2N#0=I_27\^GR",'7S>L0)>4D(D">?1*(8T+KX(0$V$B9\PD])=X#U1ZD0 M)3E E/&N*<5Y-8WS"*-%,-.A#X'\AZ"$P[*<.2U^#=03'TNDA?%@71F!\4,A MMB&*ZR!6P&IS6(P0$3P!\FBEYI7R(B8&$],^K(Y1Z]4:FF=X*\J8-FB&Y="F M5A.1<(!PK;[C,P*[L$&V\0F.1 BSK(S!;D+:,-A3 Q\Q.!^E=W/#LDF&E:]A M[<[OE>-A#,=\A@&0!*V]HT@P'::L!IZ0/)M7:#!@D(%]#M^!A;0Q!@!\5CPW M8?,F/@'^@^Q7EH8.7O2\,#3D$,%X+.; +Y% M7XN*%$H 2#H*L2XX^<0P9%?!1%N9@W6-O+T-EZ1/KI@WQ(8_1LJG/.34YGGD MAC1"T]#QCQ(%C)?UP\>^V*D-M$ZF/$S("6';RDT'W2,6BN/C3FJA.#?M[R)P MQ.P9-?8N,N(%WKZ4YZ_UY[?(-+&4]H#P"-D 9H QY9VN]'#W%W3)-9VACE+( M\XA1L3W?*S!8R\5(R>1[ WR15^2O<389\Q77+M!J!/0;4ZD\8&\[KC!R3'Q3@8W!6Q6V M!7&/6!0P50Q3>#G=:WW@,5G$- Q=QK_70&$8B;K*M( )X^^0&_+-!8U:H=4- M# :P10-_V=,SR-<,[VLF8<=X Z*&_Z13_<(,[MW<#M MP#M2/HN7VHE(F.F#^D845'K,D*[ZS'UZ7J$#DP9_Q;0PR_1?1D8C&W-=B< W M\Q<85QR3G!&_N60J(RI?8/1$3.;OG4=.9,J.:D*=:43G/CZ(A)L.2D":+#>@?%M^CIX!0ZJ%$ BPN2'V=X "9T M\9>?%/Y,]%EQ3T#S)L9_!/'DK.&+;\\]G@HM![]_K/C%=!2_&,4O_F[\(@9] M3P:F*LN+'CU?#OX%OQ[__!HORMIG$S]:DFT -P'C^'$!!/X29[.!\!&$VQ0- MB&7PV),O?+"IO[^'Q<(Q"0[P.%I^IT8'GS5V^C0ET_Y?+,IUBHZ%20TRK9!, M@WF.Y65P[.P)&+B(4FK2F 7@J)OP3OR<#]CXCK$R=-]I-@U?\K3H+678<\R5 M'#/$D4-F@."SD#T &*N(91CO?J3=_5R%;Q)8YDY.@ L*V2:M4'T-0H!V#)]+ M489/HRF>6$;AKHC#!;-D8N-DRJ()UAB92G>PZ *XM(V9%F&D).PG8*8(E'31 M]LTJ"P/0C1C?0SP5SR$Z]M0P%9MRS[ <>';.^"'\Q/]Y@OTGMQ%TJ64(VLCY MF 0=9'TT>LY"<"^KRJ9:J)BJ.,\UXL.-[5[7\I]&YZ?6LN[.2!:I^4?V%4[L M6I@H3E*[OOT8HA!A]"V/Q@KH+%Z9F@.Q$ _N&TP#_ ! &GD'1(=HIYBJS#%M MDT2P^?ZE_.V'Z/G8*BBP$TSO+1(TABGA M7PJ>#"]$Q'9B$H:G)\J$XKGEPG. M90ZDK#N ^0/4T.BQP6#[,T"_.&@IWE1 MA&02LC@FL0MHU&C1B#4$JC2F?UA75HB2-=H$G $,PU0OHHQ&TN#H%D3+X5%P M4V2CY*1>!S]RE?20]-:H<@CDE,0\@IH&M;NPL@YR$=[)6+%CY%LRTC!!IL$[ M^'/9 09JA%Z#7*:G,E$-1]]3A!RJ@,%)O3C JPA'7H\CX&[U'!+P/A:6"RSB MEAAA1-FY'A1KATI/M&6\!0 !^GX$PO%[N$1@\7S".T>L#Q^4]V)]>>*)&0#( M%@DZ#0V>(\RS"23Y$LU+*P0"U^6^F^#[1R%.*K.>Q6)B0 ^1'.#;=",^;?/)AW\.V[#!SN?YFV2?&MJ_ &(>,XUY MMB.0&'?SC1&E<)0TX9OV -Z$J "([@5#']@:030]3HR+Y#.\W[&CC8D3R NR MT# NF1![#9(O\5E9SLB_:L.T2)N2S#]TTIAGV9,Q*$NVOQ!X%X'L8=$G<%%! M_,!N3$3TO'U52"2(-0?.[KV:S^$##0=S0VK$V^?[^#D]=K2+ B,R /Z^-XI& MT".=&D@I^"M'HZH:K MDXT\H<3Z ?4]V*EOL'W*":CCW;^#0!(+NLSLP08D-?CF64**]KY#@HA\C*;/ MN1,?P9'NST-MWOX5AGW?"Z+?P"8#NS=6KAW+VMF]:5!48N=,H;.\RO@010Z% MBE9@9%3LAF%90;!HC< \0.AS>N8P/YH]+$="AIW/W'F\I/?= J21/;6I'1]W M4D_T'SD5CVB=GNW) K43*2LBL@/MRF/VXQ)\)L8QI$8NTB.K4[2GCFG*&/E,;&>=\B2]0*["TA"F:9CC M;3T!*2SJ@$[I\2!']W_Q']H,'MH7/W:?/#$;TD6OF/SA=W=1I5Y($Z%,1"WT M@T/E'?T/:"?="X8H7[MS]""3#IRL>UHQD5(#XD:H*=Z7C/8W;.Y='[C<')*9 MI1'I= JB5"B@\HL#; "@Y&[W@)%&08ODUSAQG7I\EH@[(@A0%"C!F@ !5" L M8P@<8R)J8*8WH;93\DR'G_OO%$II](6'P,.-M:^IHJ' 2!M()B2@V!M]@!(T MA!=+'[NH8@NS )*YAP@C#V#(,TK+#A0I M/,P4H'LQ//[TX.\=RNF#9BO-G= M% &S9W<( (EA6E,@:H"84V([O(#M8T3&FH.B(C N>;Y=&K2P+YT1U=E"X9F\ ML#X"\&13H4?=Q0_"'6):(TX0P4[1(U=A/#HPO806N0IE6GAGDC3\ P4"+-JV MO %2A(.IO4CHD,A$_3FS9V(2;7S_=9^H#SA6Q*MO2F?S!(*\O._NJ'4B!BG ML)[LXM?S'ANO)9,0OQ$\&U%BQ3EC[-- O"!MNBA![Y@"#6QK -@OA$+$#" M(Q&*2M^55!:"J$4_8P2L"%ASM!9 [,@9Z1]WD_@NFDU$IT#,\"(=?+-(0% H MO@>RO0YRH^%8$$T"ZG68"\+W:.80,3@>00RP<08SQYX$_(_K$#LC>/A4A M#!&94#+*=96,"5(IH%% M"=V88P$9-B5;OL(ZN.I=!8&M?G0-R0_'J"6)%LV!TN,8\BC5IGGP.ZH2!"L] MG?6B@?!8<,B^_^J#A8=DHO"0*#SD?.$A+P1\O*C2GBW@ X"'[,JS".\D+4G4 M)"\YS@I933P/!LA3FF7XJI>XI\3NB[O$?.6;R(Y*+#*8L>10L-T4/RRH2XJE M4MNQYDE^7CY78#4"1N]%3BP,@S@=PRO\A:XF5R J@,R*-2.LB0-5EI )(:DC M,#^%S'>!57]B$-U.U%7365 RKV.ITM GX--#1*P 4*.N.F\CNU4]*=2Q_KYZ MQNE_(?D*)[8(U;#&.4=]-1*7"^X9F$5E.QCY)JS]WD2?DQ4#HTS-=A>1,98Y!9X(N:Z/K[B@6^4B]'#$VHE(OO!9+*8B3B MVX^D.GI$7_^DZTC$2X6IK:_W$8,Y'HJE2=$.0@5"Z5&8#@994WMQ[7B#"K$\ M>BE=_E7B*PDE9X'#0,:33#&/*>"I#$DA MLY(W<, QZEGWB20?9/Y>MH!\)C:-2/1>*#J3)2R85DK 1)>4-Q@C&8PG& \P MF'DITSS+I2%.D,N0Q\ _9"'] A(.V;Y*3L MC 5[51.Z_RO.%_^4R,O3&8*$"K#7TC0]B*MW0._!@/4_)^N\QPI>AQ3,J_ O M?K\4CQT)F%)3ZWI1-,T-/B:XT_-KQ1+&REKH>N?,ZW()K9!F+ "1@N_@C[E, MKD3M#X9^2V(PPU/3KGIDNM"G#WA.> )O?+LZK;"W1=M2G#H5@C!.\K/E;&&U_/VSUU* ^V993FZ^9UW3+C[N0LC]59B*9E M)?@5.]P*\>9TS#X6Q X\UF$3!O^Q"'Y_Q??*>N/OLO+<6K?:S4$\MQ&68UZ\ M'2KYL[S7G:VE^JGE=7DPM_AEH9):%C/6!!IG7!WVQMUAUTY[T38T6.OSOQ], MY[V=!92Q;X2><)%26X(AWY798?VQGR](XU5?/\\3"L7[_K):/-Q,"JL MTZV[$J:/">Z*?Q[GB+Y)69O'[4"@H<4EP2V5E]6NNJFS=WWZ40>@^\)K>FUA^/UKH=.%H(#1 S'H;;]&D M&R5ZI"=9'GW!;5M%J^ZF/V-[B+H#F=8T7S=/X[@!ZJFWPB,0OB0.\&>#E2$(GE-,RX;J&J9- M@U-)&M"NVM()J)Q ]9-L:#8*#O!8\'O\A[V4E*>@XI7AH MS:2;^*K<*_<$L63/1I+]V/LII3!]_@;O\#Q5IX'Y\/YKXM?$@/8QWP,SA3 ' M#:A9SKLIT4^BFINBU7:_QB+/2L 8\Y^@_NZK#E4)BKZLC> MI9=[2.#'-E-LBJAMON M3'7JJ._TD XQZE"<1:RQ=[CT)V\W>%KGE MXEX#(I)^B8B\/W5XWSO':^S3CV<)QR@I5+?R[7P0[][SF4PQGEL,,.%@K[C? M)1Q!;*#/CSW9C\:8D Q7Z@C;V<2.R&PA"2$7>R*'!1("YNJR'VL'M2/]L+Q0 M2<1=A)@_XY'%@KKG\X6SBU\@P3BTCNH1Z[@_G1^E0 J@PA9I;0TOLI:D@AB, M9>SJ(AI@ZT/$LS5V2#W&$\8W7[KSJB(JYAT8PUOC(_',7H&MP)/5;O;ON0?U M,5FN9\P&VW!JCJ:>JC[B6WNR=B%GH0-&+JT=DPW7G@TNB(3W*-05+8G6E 8K MP0]HUXPQ]LIHX-"XA;@)8L-)A/(N$**KX6E93L.V:G[B7P6"A]XKWD&+6MK&T]#_T"361G:BE1,] BF M7WZ(>(-($BRC&:*^5X/VW-KGPW*&B&@Q<097P!):], M%#Q"0&R?BQ2HR6?G^C[_:O&"=^ Z;S)&_CJ)!;[!>[HX4NM5B^7GF0V\W;M9CJ@';\@LU9 M"<#)CW@.43B_"!L- B>;"@JR!6PEG(4KTDS7*UI')S2WLE^[W[-PTOCSIJ'[ MTB4MXN,7X_%JU>[U#BB(&N%>O2E"]F[]E8)<_%=/-=4V3T(8KFA>'@8469&] MX^RJ\6Q"(P-==T_@W2L:N'>RXU+MJ8*T/AS5_DG%F">TN6H:SD+8Y)99JY!+ M#P9I=R3,YU77X#/NDS2^EX9>2->;1)#/_G+^YQNWN+GH=H5_5 >C>[30!8G' M] N^[&I&S!6P0D'@_UK'0!K]%\ZYIPENQUL(0D/ <"/ US3_ M>PT _T:#0!*TN#N;O^U@JU[;P%T#$WIB+W\E_$U:\.#76PX&]5?([*_J(PAI MR+OTF6-(NZOP1 N=>#4=/+P()0Y:!QB*I_<)@5?K%G/HO?JP@+Y0S4".DVC. ML;(F!4+ MPH%DH)A-'%WOZA)C.;60" H2=;=GVJ!3$@*$2<7B8$?O-AJ-LJF MB;)I?C>;AO8,%ZXU-<5EV5R*]]J"[WV.O\YZGQ_+HWF-3/EK0BA_)C/",*B$ M[E61"6H!@'3TG=3$(Q$BGAEOY7%-B<0;T)AO$"_@NADO.3)&J]\%5>^L0+CR MDB=)::4@J9P,Q^/]Z43R)Y@&YBRDO1-9P3E5R7D%>!;03$_ M#=B8%X%/ZU"%93"H/FH:(X P6L7;^RNU1MJB:=->47C0;">@$;&1)'M"#A(C M80T.CT!0(>*-Z5?QH@40 M HA:0)A78(T^>'\L4^F,2^G_?)]?WG*-2FH ML&OZ,$*:X<+3DHH8,L+ I?T-=)E^=4VJZ?FTE^S/=YCX?3^]LI!A#/33GFB\ MX_-J-U&2?6W;"W:$[$KJ@@K*)9)297[*$^%S5"^ ]0/WC5<5!ZL8=T\^(KJ& MQP;\(!>&U$;U?@YJ/'J69Z)O7#%YPMP,G41P+J@,]'0YKQCM3Q8(,-[KF054 M =&R%)YY@0BSEF^S\'HL/M?S8^?T$_WO0R:;9"P0X./PM5.+L'=71.*@ MTMXJ[&/S-O^2EE883 5!;O!B.#7T\$XSK&"4.G M928)^!-A(P!_6NT2HW)0J9TJH*'4P8#]>]E]A"X?!:9=!1C1+T7BRQ'!=05' M'9,$+8Q6E"G@RR,YA_+>@3PT\ORK?CXAV3_QA :%=O9J25C2%*^NG4*C_;#N M)!^T=N5D0BT T!\(H;J^_R=@GK09HA48%7LL+3JY:SO43UX<=,2-5H :>YH M?BN9O7*$Q.X) 3C ?4G%V)T\&PX\?^KIWO-5'TC1&"(-;05X2*Q.0>/ Y\], M&ARB<"5J/!;OA&"Q;;QPC\=O:UHZ0S^;-%,Y'!YRF?NAQ27 M"?>JI#4]X3?MS1ZKN,NZ)9LB^PNN^J77,P.U$=%Z81@R=TE$0#S$,!#NT_0C M(/E$N*.GC<2[(^+=SA>TJX-&^;/7LRNDS8>RJ@-T\XQ/N7];=7B9^&.%*%\.@F M_/C. UF.&B0,XD;PBH>'ZFG[<8_/5 0.!%;%+Z>VJU_M(8](V\P@ M8XZ)AW\32AG&5GP<:1IW%D!0%>N*N4"#]7F#0[S6 V!*1'XM7XHT.]),BLI M,(&O;I6#TJ D.R>HE>Z7R QU$*9?M'P')(4+VNL0##^A<-MGU#(Z.&"5&)=] M4T<8C?(6L< %77."GA%'MA+F@D&%-2JJ QYIRERA=I484=T-QR:]CV!-%6U" M""+:-G&.OE0_WB]HYEMK?+':%S!CX1*44(W'HQ$+J+X&@3H*L@XF"1&_/8'D MJ:+J-4Q\;EI?$-G=T?_^*Y'[)]R(8.0[LWQ#8Z #$WH\#2(+_?/X!8&(CNZ0 M-DID]YL%(0V!-L' 5FWK;SP225/J?@P3:W\>$6@LB; A2;'T!DGY$Q )28.. M.34%>)^'NTR&5(8P&[C=P<02&O2OD1:_5<( ME?'U"20M92Y./+@B9)R2ZF!ECW528+,< C2>Y2.HY ]/M\-A3_'=[P]PY'P$ M%I2YYXF%' %2M00XUK[B3!X1/_$4B7[#;&%7 M$1Z:A.FBML$,C5*L';NT0OPR%BCOOOP0.R LH;:;M#H,OFHOPX.6APXS9AT! MB84L2T_$]7.@?-%I ^V'X+ND"KY?<">\.S _>2H_@8' KN&3R3!X4WT_Z'T* MOQ!U;P3U<278R]C1B,$-SS&AFZ>D#PLFQ$?J-UL+2$YL1[=VQCTB['N.'0A+ M>8XQD4JK8#NFY5?H#1X2[M 9:11-(*F 0?GI-*9JV@=SCNJD-EZLU5 U&YIZ.;&PD(ZFRM9&J5.KX8EL9I>'FA<3A MZ@_7W5HBGBR; Z4P+U98:[RX2TP@LO7I2#D['/?Y=B&I+DNI=GI6Z8]F(LR9 M>3KRII?.-%?K>$WM:?'B<%DT'BM=F/-@GS?&4FPGTXL$F[8WM\N)/$^K39B3 M.UA>2'&/FP'NDVURC&JZGT1DVS2B=^FVJ4DNT) M'GFPT7&/'8C%Q@J5AQF%'9:TA(VJ,/+(\NK-MM%(3FRV6JA;**/4VW*W(Z0. MEU^MG7QVRRXZ@[BNY9SEW?BZW<[CD8?OJ0[:R+V7B^J\,4.KF^Q::!DPY\%& M5S->[YN;]'5YV"S&\ZY8KP]'$SSRX$:[S9Y@W"B]O+HI=A)UH=71K^NP^N&1 MU'4AVVWPELLB8]0<9M?LM:QVA,SA1M,/=G.1=HS[)BDT^2P[3-5O^>&LWEWB.;.'K7>0Q2>9-=+A[JKC!WI4W%%7*'J]OFO+BX7:V,LM(8U6Z'F7EMF8.1A\ \ MGLJ]MLGER_-Q?69GG$X3E6'DP=5G-ZG"M%.;3LK#[;+=*@[R<6D((P_V6KU8IU2.E!,YN!,]S?E M9:5@9C-J<2!D;GBQEA3OR-"#K=;S[5IR([2O67'C+&MUKIBWMGE2K^9@!SG^ M,>^6R_=ZN>?&XS?3\3)[5\%CN<,=))OM:[V;7CZ4ZT;]9K*<3'HIC,YXZ,$. MAKW1S=+LCW)J>FMGE_QCNY3J=6#HX0X>6#<]J:U6)7:>E.=6);%-:%U7X(Z0 M2%-O)>*H,JH/XL:D(C:Y ;JU.S#T8 ?L+)V9&/E!9U <)RQ4N)&Z-3KT< >N M/JLM>#2\+1=98;6)CRJ)L8#''B&3]XUUTN"YTD2MI[EN,3N8QO1745BNE=AZV@^40LPGN"%DK/9:RA;X]<=G64,FN,5HE:X,.##U"U^J3 MA]M,8I7&0)LKHF5#Z=1=//8(81L]IIRMGK]?#/BN)6[&YEWF[H8,/=A!$IE+ M/;,9+0:M-G^=FHTZDCB9P-##'=AI==%_N"O)+"J)U\*D/V ;"SQM^G '#;6* MVC>;C%ZNK^/9C5%2;[D6&7JP R&QY3-3W6X,AF9UGAVR2CF!^2\>>K@#R>&L M87Q8S ^OD#G<0?66X^=Z?YLIUY>K3MM*.I6YY,+0@UEORP6K MG\FI&']9H]MKFH-L:D5F/=CLI/HX&\WUN^R@5]+=DIGG*W<],O2 R-SU-HC]'#C9E?I MV[G>&RB#@5.L#>^GJ]N\P!\A2.F1'.]4%D)%+0J/Z>Y=F6C!KHH1: M7.MN*+!HVYAP;-F>5U)DZ"'QY#5U5ERDDFSK-O.HY72]Q[I87CI"CU89=[I= MH_R414IIU5DOEZYCD*$'&Q@NZMNT-=F(JM,?QP>=NEF)FWD8>O &3??FD9/2 M_2K+"P)OZ'IF,9?(T(.]3NWZW&TX:Z!5A ML(P;E7&=O:E5,!3P1ZC5^&S3&503B4U!1^GD4IK T(,=)+*=4:L_6UVK MP]5MMU48*F(E188>[F"^JL=GF;ZZ95NET?IAN3$V-QAK^"-43N$4T7S@U6IY MWG*=\5TA.^ -,O1@UNVT?E_>LE,!GVLQOQ$'9;6])4,/-HNE'#015G-[(,I] M]:;3&#SDVQT8>@!=97:ABT-.Z;.MHB%@,GSAI@]#_(Q(_NA.>T/K&F[%,V7 M'58Q<+,1[\=>:\NC+F;OHV"FG9./_,$['8G.V3G_:9@HG2#4=A)LLWM*_,ZT M\OU?8_(__'3/^4'00?-@\1D3EJ?C0X18./YC%XH%G@.P5!OA"@J[YY$,1Y,9 MD9[4!18?]D4.E[?W:-#SZ:H!3PUZ+KIT(@3YXV,:2 >] MA1F.\PLG]+PTT-K.O^\732#Y/T&YL+T(@*"S!0@/Q.:\:_](2B,$0(/V4C>? MG)<$I^W:JHTV0?^^6"C[!;S@X0:0?L]F+W$VJ-6C@),&$QD9+128?6JXH:CW MF!?%%O-=J;0YZEYIW?!6@[))8\UP:3P199$T8CGHQ^;UG;O:T903%T+8Q\C6 MV,-'8OH_6@6!>\P5N8>,U%5;V_LEEUNS]A2J5Q^17(\/%?B#"@BOP((>\@/X M=U4?@_JWMM<(2<:?B*8W !-M?.O6W]\#I'Z:AKIX24Y_=O-O11GV?4_9)[0B M3CYYXMXA+I[T(>7PO$]D)ICZE13.PS5/G"1>-?#2:>+"0M_]'\+;AJ4]GQ:X M=R3J%OHGO+SHV(;_ ?6@D4_V#AL^/1USZ,FT37]CWH(8UGKK^70WY+,*S0_1#H"@_JWYOQ,@_$[]DBZ^IY^Z ST/ M+5G8'RJ., EW;'1B/^!QODP&OAXR0O[<__['EE]Q[2&LU0V"L_28_%6"BQXB M>HCH(?R'X*Z2R>@A+N$AHI>XE)>('N(R'B)UE8W>X0+>@;]B(V9]&0^1X*.' MN("'B%C$A3Q$YBJ;B![B AXBPH@+>8C4%1\]Q"4\!'>52T(;R?F)2W[Z%K=8 M,\2IR_@Y42>\L=SBA;0N;Y&7:H;W2:C%+0VU*)-&[+>D87J"BS%!H? _H!KO M?#>OOPF_QN]H$S1&;7LNY/U[N%ST^;4#TQ8%X7^_[#D#4I#\74K LU<<_^[0 M_B>4 &(+W@P 7K9R?2P^<1H#TV=$ BY%!/6/C03<&R'!SY26#X0$O\GY0W', MDH30>'Q6=+C=!:^3A$@U MB1<+Q\4E]LI1,.=M,VR9MM"FM8A:ID<^@D[#.\KB$Q:OTW YF73X&[%58JL5 MJ:^,;NN50=W=Z]:6^(5N;9Y&LNL"G_CF9S")L\RCT;KIE 9\TFH5TG9[5E=< M?(#DMQ_I+!]+<8=]AC\+Q!\39?[X9,1!_AD08.&82%@-[M1E?\ .V'A5=YK; MYJ#;W[@7@0&O00!HM=T..M\$LCM9R907[<=$9G(*[GZGYC/B(LYQK"(-5UJA:O33:5*S MA_WV(Y5.Q=(\&['W7W?E?@84^&W^?B8<.!-_1Y5VL9YK##-LKUI7[ZS;Y;#V M"/R=X[_]R":O4J?!#V+>NA@&?W%^W(/-EG=IAV]NA/E2PL@7/++'C=[/F'R! M5_+N=W)9F7>W;+4]VR!9;QO32?X49R7C=2BPF"2>AUB&/1';>CF@\!,B"C7G?#8T.8MMYP_PY$RRWV"8 M'YMJ?)9CQ)84$Q9LM*[MYD-]WKK35]'&S0;><40@-:(V?)K[F"*LZ+S4HB9W?U M-5 [, 9Q;#+&)4_HZ_E2B.)9B3X;HIS%9/0'F'(FL6&]7M4[^<>E,QAJI5(_ M5]/*K@32-YB,N-0I348?RC[TSO:M/BG<%P6I1*$ZY_#E[1/[!";VLN% ]:3W MB$\_;2S/>Q_UWM9;E)61\N.L5FQ0ZG62=PDL_K0@B83R6\_LME4 MC.?2G\6O=WDTX+D0G\^'%V]E)_HY8IQ)=,O=E@>#^_RR."C>=WKN*+9SHI*1ZPV;[;E^8-PGV6O M\X_IX4DD@+YU/W#75>EF,*\F$[5EIKY9F:1Y%/OM1SJ=BV72GR9R]_)HP+-A M0)\/,][*Z/-SU#B3#-#K;/CY_+I5'"S1H*VRK=1*68$,0,PWIQ("/F[(S[,X M<%G5'*+HF>C(;RKA?:TC?\4S?[TC_Z1\YR<\\665$/@<%0,N[\A?$)5_5F;Q M$Q[Y"[[RSTH'?L(C7U:]B].7M[B4DY+?HE)PT1W\X1U$Y?#^BZ%8';*]Q?7O;*!C57M+%.);& M.):^2D31NU'T[@72RZ@8W[GRKW^7PI7=43:U%F\%=5BO]1*-&9>^.4WF3B[9 M+6J+3II7TPUN:YOI^+V;FF 2!G&[?#H72V5/0L8B.2&JYW&^-9EQ MV>Q44S?;E:NDDTI^60)! 6)\D^QI)(6/&^+[;E7]9$2YZDELZL4)X*HX=Q@>TI MPT))079:''>P#$<2L'.Q9/*$^==?"OI/';%\8<+8*8'_3++7=?TN>9T7Q0=6 M>5S>]1YK-7OCN( ;),GZE"T3/J9)YDOA\Q/U+XL_OUZ??(I"4L_+%/E M?)V;#)2'&QM-5NOZ_#39T^,LNS;-]MHJ*[U148D_Y$;9] 1H%)AA&-56HN[<5@+5+L@!3IQ%4VJG!W"<$T MK?$8NDL7'$6#A:*VE%%(S4=WE5W@+43Q.*]72BE%\@G2$^] =:'&Y=)-LUKF M;U?5:3HYR-^+)^E[M1W<55J=;L5@A[J6&4XS&WX%#(P#\TPF%>.X$_9'^.H( M$X7>G U?SB0/;HO<@S).F>I@N(G7)7TS5.\7>4"G]+$UN"*VG2VHJ/ M8G>BV)VO=.0H=N?W*%IIPZ6R4U49EWG!+72% 5XP<1)?SYU5W-9K@E 9S"<= MJ5PJ/8YK/1=(%@GE2<787-36,@KE.:WIY8^QX4S\O6@]9BH)BR^4ZTWCMMEJ MN%M;S!-D >-+\C0,/HKL^=7]5PV\1WV.7SJ*9HEB>B(_7!33\WZ&G!TM>L+5 M-H/V9.!V3$V=S^1[\S$S*!26)S'A"'>"D1;+RZSJ+.\[*[U3&=H5+.,EP(23 MRL22Z2B>)XKGN0 [SQ_@RIDDP,*JF\\EW6E*[8T?.N:TC@K+QPF@4OK;CW04 MRQ/%\D1D,8KE>6-CT;-DL;O=YC,3I=9CX\7-N-@IM%?3UDG,1$-#3M6JFITM M]\2&T'6G\;O$E(@08"9*)F)<)$-$<3P784SZ VPYDQ#1[ MN(G\SEM5>55Z, M9K72[+Y+A @P(Z6O3E3I,@KA^;7-=I$M*EJ,Z2++%C$XZK;%8#!FRE!]&O_I M;0U,7XJ@?<$C?T&'1Q3=\QR/HJ0E1%CRNKQ'5CR6Y3S M%K2X?A(;48HK]3=]X7;"5@MVK[[)%G4]AWE2$FQ$Z50LE3V1;^/+8444Y7-R MI#B3'#?I/]P^WF57=X/6;46=Q;>WL^XP#SB3_O8C4[?[>Y-#C-)L=I!O=WC+1ZLJYS4GL.?.[\= P*@MU$+_.N%W9UAQ[0D@7 ML>OAXDXL)M01K=Y=7[M8K<\2H^<#?] M[28/I(Z8B;@8GSAA$_3>BS8AL$7K5NC6 M'C:(*Q*!@1J&3E2V*PI&^K7]]PU;U)@HX"8*.SJ'DW"?TBYP]@NCS(<9;V8=^CAEGDMW$V4CH-W-6 MGE7&SFK4G*I+K90'Q"%-WMFKD[C)HTBA3X7_%\L9WUP(>#8:Z+U/>CDRP!/% M=E94.F*U>;,MSQ^$^RQ[G7],GZ87?.^A+65K-Z(U*.;M!2MIJ;11)#( &'/2 MZ5PLDSYA!>FO3@2>#?KY?*CQ5D:?G^/&F:2 7*:3:[J)MJ,ZRT*U*S^V99VE MJ,.?4 SXN,$]SR+!R>-]+@_QOV#4S!<\\A=T69R^:M %GOGK'?G497 N[\0G MC[:XQ"-_T5"-+W7DD]=]N;PC?\%7/GD=D\L[\LF]W2<[\L4E3/S220N*8(*#$[(?'*%H[U%PC?V M[4=_:B+$W.(_3"VFK,M(9FY%4YHR"2[&_/<_HS^F&N]\-Z^_"<]$QXPV3%ZR ME14&(Z:_6:#]2XAP)[J#I_0C^;OD@V>O./[=4>1/R %]W4_PK:*A6[;I$+]: M%)D:Q>=^\"(^9PZ__7#A V\47>OGAN!Y;01%:@N.I>C(LGIH K_N2HS@LX9) MC)<_HC:2CRL[-9FRK:(1U[+J5NB73Q*9D^M6,DJ\)6X'2ZZ\07JAE*IS>8'G M(#HWR>=B2>XD!4-S/QR=>Z/(VS\EVO/UG,HG,3Z%.<*V^,1$*&LZ>U]VU)DU;U66 M7%PY27WFS>;$KG._/,V/(F<2 BCZ]R?6F\W)Y8_?46T%%UUV7B &D M\!Y_&CD@JKSWJ_OO(7.E2(AIF\8,2;851;=$,3X?W(5W@;<0!0C]MN[K$2B? M/GE\;E*H9]:=ZV%ML'R\2ZGQU,J5>B>1!,4I7K!3SEX/^/4M&^?2+=5HY+&^ M#>:@3#K&IZ+^GU%\T.79C'X7;\XD'Z8Z]]RJV*HT!M6[UN:ZF]UVQ<<.H%7Z MVX_LU4DJ8D;A09^*.$0D,HHM^B-]^CB)U-&(GS>,G,'V*N/JB'L8%RJ*FF;%F%M1P:"JBSK^"$,V M9.,KMF'B+401-]&1HQ9@?V9[NIC(ZRXR8?UNHR9 M3O5NPJ&,G+]O)B>G$"%OA%7Z'K6$19EWMM6'QW+^L7J?%_@D6*I+ M489WY["7=R51X]$W5;1?0RS%>KY:KMW-*VPU+5VW^YD;5.B<1.C@;J_95&&K M+M1-IIOE*E9W')>(T %VJQP78Q.Y2.B(6I->H,7J;1#I3%)'IBS.^&&V.&![ MZ]L[SGH4K4K7)7C>[LB&*HHNZE%V"W^NJW\'4:ET7=2R^X>ZF@E*5'UNXU M6$>\*:_O%G;7><":;RKJ7AIU+[T$B?!2NY>J^=)XH^:%KNIPF?S,*HFYA.L" MXD3=2Z,0IT@(B+J7?ICNI;.=>)Z0LZEX:=2^]""G@ M4KN7VKW;PAW/];J#NG/K#GN=E7X/V0.I+]B]]#^VB('S]"CZ6J3$UPX@I>B. M2._];39&L$+1\;KV]T3ZZ4Z9(]0$?OZNV/AII<-B\]]^^+#&Y"T+V1:)C6HH M(CFB@JSPFVT+X TP"\3@[]'4X!+X__*ED6 !O)L)[DAS31/(5$T"C M2*$1_T5S\+4Y.JR%KT"<8XJS=[,FLAR-E! ;8]+)6")L$5,E?&N:@3^UD3D/ M/8D[1?0&8'FX1O@O,T?VU)#A)DRO0PT^@C'![ -N5H$3(CGV](];O"&TQK1/ MMLB4='.,M]6G;PB813@9_&4A;LC=XZGQWF2RCJ@QY&9'!(KP(/]Q\2E$!D,U MPC/I*$8O7\1WQRRF&#!@V[#2@L+?%7-PC7#)$Z0CD]R8I.&/,6S =>+EX>IU M^^J6P!ZIH6Q M3WKZ9'B*\'+PA"9:&*:-GPU/*3(ZPIAF6!1$#?@DF&.T"?TLXFTRHDU !.D$ MR)&( 8C.!L"%,5\Q\$:&B'F9A_U'5E8__HO_\2],TI!H@L P]6XUD!?A=CUQ M@67__7;"\[.],SA^)Q1Z@B''TG.079-__^__">]^)\)@*J 9YG=?M T=:TKY M$4]DF@F*CTPDJG%QC%?^+FJNN+%\'3-WE>1\;^KW0#R&BV X]HK/_9L)_0P7 MY M*X("^%?O9$FL!YWHK4(2.Y':=R_S7Y&9FB!J_ZMO2$>5("*VZ,"/M#VQQ?OH MVX\^R'L S("=@'4!Z(H_0L_^'+#NW_2Q"Q1],;O0U-#=IMO;#H9:^]ZLW7=T M,SX!Y> ;72T8V;/<:]6ICE1UGJ@Z_*0M;5+)/!Z9?3HR]6"DKE,#Q2@[C75O M52G.[NMB1^ /Y[2X[IHOR6.E+&:W\6RRD9VLIUC(%S)/1RH%9^GFMK71H%CK M%HI%;J)KCQVLN!S,.7-GCJW$W4EY.9GU,IG'0K*D(H M.VV]RW7JHU:C!2,/5B^*3F&H-];%@WY,Y$ M%?4VFUI+:FIE=H3DX4:G-\V'>FZ"1!QMM;(?*<-;=E,KUTG53;2SS^:7C"LDC&]TLEWU9TUH- MM6YFE*R4Y5K3Y$1("0;)%_A:MFTM&YW\,B#(QGS[J8B7%=; M[/*F<5M<]/OQ12\OI(XKO/]JQ&JL@NLG M89V\V+\>3KE..3_!([F#>[HVMOU>\F'JE!T.35-:J=!(ZGDA>[C\ FG+A9FN M/[ ]998ON[R=2$L=(7EWK];-M=H)''JR^R2X>S/FD M65*+P^YU\?J^O$W>YO'(@U?*6476D9OBE*W6KA_J?#'!/[9@]4/\;'93331? M] >]JC%8WB0+\DT2YGSR2L*UIJ:X+,=G?++QA!&3457,N!;")K?,6H5<>C!( MNR-A/J^Z!I]Q!1B=.(/!ZAF!R9,P-W\F&86E4Z9&9.45,C=8N"?Z!M%#'*(K M3<45\M>2=XNYBHWE9*H!X!4FF'7CG[$@)(+ A)@-Y@?_@%R$69%A8L':>*4@ MYNL[^)_=#IG:F''1:_9R=",Q(J#IANY-R!#I#$2[\;'I#$?#-XE\#8G(A"!" M\^P_+3@1T\#*3YPL%U+GR0CN'Q@,9X4:3Q#K)8)061 U\E:]*<+GOD1]@)JR MF@[6IK!B^P9^NWTC]3&S&[&*Y'79O\,-$3OZ>-V"9DBJ9XH;";4%UW'52?ZV MO'3FPY%VEW;RR/W&($L2%W@-VW30V\K SVHTH*R/#4TS7)#MB5D,-'*+P W1 M2#'831!!OV/ +AW3=OXB=@/#L? (Z^_O[Z.>O1),Z)%]&9^:L;%\KXD+"WWW M?PAO U;UI&$0#"4J4.[+WR&CIB=\'VHXMNFOZLW&T3.\+MPLF;O*OAB!&A)E M0_,;>,XQ?FS_2OS?"2W^3M45%U_"3[4$3W,C"_M#Q1&F#XZ-3JP>/.\'X7[! M#[)3\_[8P)U.10]Q 0^1O)EMG1=(?CHNO$6=Q1@5O*W,8N[ MRGUHQ'I HNDA5 E))%,+X5>JT5/NC; M6='?^9AO44&(QE2\PTG>KT)0WA):8X'C@[HG<;;)#A^G)9NMZ_.J;E;O56O] M^[W+GDVW:"+[6*O48*U#M^=J@[DS?'??O"Y6(X]4"--, MKG"-YBS?U?G,Q)W?W(BD1@6'16@^'>,3F1>0]P-8R8LDLYF1'015 41IZ2@T MRM-B_L/(BK4P+'S-;X:7GYSX_"R/X!S"$O/7AZY]_RQSK>F2B40+E1#];\4P M_;%Y %L3R37=[S=3-.8C12?;QFB-;PKOX@A^]^X>[4EF'$^6A_+@\3&K+NQA M(B^D!9Z6PGJ"V7]_ G/F&9GP)S_DS_(9/SHS?G^\#UCS'^#^4Y3?#H1ANS"U MZX-ZK[:\G\\SMX]Q%Z,\UJQ3)Y3$OZ8&_1^RDJU4];$W6RQG5X> MB?&!V)D;FC7IIB9*'G,ZK.^F3FCA_GHX\75IP>7[J0\XW0=PS=*BY*'2TZ1C MT1L'&E]LN8YSLK%WOH1/Z<^%9HV_9,\E<%YR4-\H[MI[W6'^YE@#/=3QZR5F M5S3'&2DQ;/RZ4*=, ?RX72[/9R*<;$8P_U^HNEV!\>GM/8!RF M!*.FPU6-3?R]]JX;8RMHQMC#_UK0N,]K%ML->J4<(1]FUYK=+W0C/UBV.,UT MDJ/2=.MB\I'Z]H/G8ESB4&#^,-3C,OW#[XU)D?QQ4>3D1.KU*661IS0$J]DS M06XL.#9=7*][=AU5I.P$TQ"L;^?XEZ)%+YR 1/3B_2_!4[4C>G$!SND3R!]S MUJVZ??U6+!<3NCU)N>5)\0[4%W!2)Y.Q-/]2UM>'SZCV6NV>/I=Z'X$2&(%D MPX$.6.]"1DZ:Y?7N1WWO9)*=E].L*RBCTFUST#E;%ICJK+*" MVW_@V7DA8R_BS?5DF8-&FCS) DMP+\6?1+;X"/5_V='\[D?]4JC_4AK90X\? M<^-R=U%.%T?Y#C>.3U/W+L9]R.;FL[%4^H1ZP64Y9B)J$ D"7Z&XPPN2P(.R MT(SEE"^R+8TKWB3=G%JW@1ID/W]9%K]H9H32;^!??_>C?BV4?HG#SZ7L5N(< MMS>H]MNZ>O-0OVYN0+HGX>4_+=A"5/?_D"[,/_QA7M/NRVT:?8Y]U6C4PU@Q M+1O_!)U% M[XX3O$,+-3RY(FKYQ4+#E!*^T"96H:(S=VB?JO)XC"2[;XHZK5>07RM6\/6B MJ$D.27$88,@RO5NJ.HH,MJ::3K]<0/@14-]8*%*:3=^2#B:";@ME*5^VJZR2 ME)+7=D^LY.UW?3UU?M=97=\9I?*FU,H^]E6YI6SPZW'IS-5A/$/P>J$<#\,Q MC_>H%VWF1M0=T=PP&($"?-K_#/]K(FN!+PQ?N[:Y>D/D_Q T:(@869$9W;"9 MJ;A"^(8VC#)?B(HYQU]@- .+>E:8].#+AQLW@\!-3*U"#R"2ZJA^0-.O2CW"IMQ^62AH@+]K ;8 R)O!EVT@WQYC66!AA[!KC!%SAHBV M%M!9!F]!FC*N8:H8_RR"AR.$@L4PP@&BH+6D.3+"_ FMD2DI%I)W*&.?YEC,MF$*@_MA5YJP]6E]O)+BN>%U?M^L,1=BC>S= M(LL_]@KVH.J61^.YRC8[6@<+-E>90W,Z,Z*<\8KIXV+?^IGQ MAU!C6IR@X,'C?/C%2X_3=BT=9UFGF1[-6N-)HM#%+WY$O8J_PV.)ZW=[K%O3 M*@_+P['.#@N%9#LQS\ZOA?=]+&>9C\?K);L_4+1LVUGTKEM:$TNNV<,XNG_[ MY/;G]!1ZV9*AF-+;C,\=]Y3F#T K0R\1MY#T779,:,B+F>1O/<5+^Z2J$Q=6 M".N)^4))W(CEN&P/U=%=I>2([NM8/\=[8R)F@G1D8M:\>05(_*8& M__,W@TBS+MZ("V)_CV[Z=K?G?+#E/C+GH0>9JFA<'W>&XF"8K&;4F=6?:T[G M=0]BZ"B^P03Z#]X#W[VWY]"MXJO'J@]5>60L0=%WP3(00!7&=L(Z985*=:)7 M0L!B',)+04I3="J2'7L\7S2S*"2(^#M8,F;PB\^!$ISC";'@;6A(Q/MPT#,X MU_;/6O:/^C,A)7C1?BN^6/=8P6)1SEU:6W53[G0FKW[1/WE, ;0.+'B:?U# M<0D,'<1")M.GP0*Y8=J8(XX=;8S%(ORVSY%;$,%?1C\,*'N^.KQE>"E%=T1J MY[Q4"^:;0]<^$%5$Q;P3-0>5%$O2# O+&1COUW8!JP^J9SH>"0\WE07??E3% MC+@BR;Z8(&VU4L%2NY.I;,B(T*%.02/LB*F$Z9&E'9 MO>"6:"F%8 M>S-9OO&-,!+-$*D5&^MSAK8BY@I:[@9+1@14J"Z(*2()Y_8U?PE$3$P21QN@ MGM:QW9Y7K=^]W>[IX(WWC-X^" $]/ 6GV@AUTC&SS I(4B?$P],YDW#]O^$ M28[EC=XM5\;[-.:*!'] WM3N=B-FS.)-?N"@N8'NB_'ZK#KY95LY"$W'3MCT MGB5/7N6H;3PY5.762*].U-Y<7LQ:ZO]G[SM[%%>V1;]?Z?X'-.?NIWVD-M77=!%PT-+MN&?V'IOEOL5@OX!2*V"\@:GLM\D&< .GK% M(1O@11X\.LJL"M#Q]M(>UTBNOI(@_!V)V*=214)/EH:*,"PS=3Z==YW([XJM M*L"5.6KZ[M%)B=7M#S*38J82(0%IN;5H)!$E&\CUOFJ.^AQ@S/-)4)XD*BV> M:(]D);]JDD7^6F!<]>1G\=F8-Q4P6]&ITO.HO&23/WZ1X5/5NSZ8(SW!CF'D M XL>:ZNKC?NTS0/N9)_E.\&0>P511%(*SHM\)ZAL)DAG;H16LI4.)2CFG$F] M?3$--1/S80/U1C;S#>WD5[V4&^;8[DNEBZI@6?)HA36!Y'FN8).TQBIL[P"! M"'E11CKAI?8T=+")Z(X,%!C"Z3ZL?5#J;&S GUD_[QK>^#C6YC?^63L1[@5* M!?!S\^&?,[#$Y@3?WA/;F.$_\1H(R!N&8_^$DA)(V\:@Y.8BX&:+AU>_7K#+ MX0G$WUKTB^.+&/!PO6^G%*\8B[O[KD/=&@(WVD M'H@&_]&/7V6P *IG/5)^Q:"Y8R!!CA._V"\5\#$8WX[UHF,R(CH<$3W-)3NJ M.CKK%]#8'TQCM$]CQA#%5S$E>&1%# 4+&_\SQ\9GAQQ];XS_>&MN0%?!-"": ML"4S7&U<+.@L"/\@4@RH+Z"^$]07\:D/Q7SD$=RN;I^D,RCSO!,X4)A!'QR1 MHV[L$QGT[V7+MIYVF09H5Z/JW$CEP^TAX6BOD(TMH;<;LY",J-I%<1C+T?RC M.:]3Z$=Q/V)G2JH(]'L!_-N^9ZFPMA"@W_Z.XM2X>B%0/@5 ;N\ VH8C\:C MPF@P$J-@$(W3PX% 1B,#D4H(I,#05"0A_?#>*FSN)(B&519M4*9)>6NHL,5XA^P*Q9Y&VB-@ZF,X,O%RY%IFI*:(Y8R]'MJ;SH59D]8[2HA=401\YJW@1C3S:O).N-J>SOE#CY'1YD5JN MJHHBH;>S+T?J$[WN#GFES'6GIM49F,5QI(SF/ ;3A)E(\<3S.,V72%/EFK1$ M%2KC0?083.5%/46ICEOATX2CKT;1Q#(-)XT>@ZDHM>S:(M)JD#5%;/5TZ;GX M+*&1D:,M]>>,%F&Y&:>5E'FU7ZUW^\DD''D$4$K/C1/+R2*JM.*+S+09-;O* M',UY!*;)(,NJIMSND*W(L+XR#6&II-".CL"43PNV-HRG -\MC8K]F>ATJH0+ M1YX DU2J)A:3&:G,(^4.2"3(9#./FBP?@2G5B39T8[:(D+*C3V=VE5GW.;^3 M^N'(ME)GN@MV0"@:.:IU8].VQ0[0R",P&1F3T^?-A:30J9I53U>LYF*1]%H\ M'XZT8Y2;(>6)RPO+B9IQ.G0N.T)=*(_H+I(QF8&\;#;Y559;I9A!/^+$DEZK MV<.1SVECYC1T1^;EP6 \**[YSI3>=+9\ ='FLS4:#C(YWN&U]:A1'5 MRC\*6E\>]K/#JJD0!;6#*]V-6X^]BJM M'8Z,=V,C,[4H*60NEIB,R0:12_))KY[2XNJYUA/EGTTQK.7M8X 2UY1#3994%ZX97 MMN%P)%W-=116KS(\092%:MM(#JUIP[OD?3A2:*ZYQJH0'RM:0FJG&LULMPVW MQ![CLSQ?K(OC;,OF-=M:+-C4KD:2ZKKE &9'@X] M0H/N]7QOVRS(&",ZC6M'6%U/"L M1SS22(N&K K*FHPY$]98NH/^N(1G/0)JE&F/.M.I OAYE2+%^+J0$Q<--/0( M5GTJZ@P!E6YQK4R+M6P]UGY>X04< 8L@A12A*[;#@=PPJ_;[,U/IXZ''T-+( M2:[2TC-EGGYN22F+(=@!)"J*.H;6,CGOYH?Q)<,1_.A98C2!JLZ3:.@1M#(* M,3>[ZJRD.$J>IDLQNT46\*Q'T*K7AREQ4.K6N-)ZF%5H=9"<:'C6(VA5[+6= MLJJ$P\]5S:2X90=8-)[UB 9K:[$FV:Q3)PD[9Q86U72%Z>-9CP K5K( MGAG;&L@N^N.((I09B:%6E+:6QZ?L&2-6'XC3D13GG/FD9:]L76S.D>5S! E2=P!J%;;0>$Z>LGP,)175 M:F9-E(ZLQUL]HR%P-:F:3S6&3KJ9=T\9*1TM/J28>;VK M.*OF9)B8R!4[.SYEI+3F#64PKK #)2U,^[FLMG &4_>4[F]1Y4F\7(E'N=Q, MGJ6,>DJ(9<>G-/HZ,]72:BQ"D^EL5[=DKKZJF"<5)3#-9G'47:0T9AW>DJF$UG%&R2R&MJ0 MQ'I\2O\4734GI[L]24F+9D(;$T0OED6U[C=0>G$R[>TC6/[1JKLYN73ATVHM M<0(D1P6UT?;<&BYB8"5U:2^G[6=-I)K>!"@O!OW E&#)%O:$CD^WR<0ZQ\I2 M?,C-:3>A2;6,S!:2%SJO]G8.H'V8B_!B7XX&Q\ )+"]5LKLTQT0&)LJ4KW8QDA+_"E\D%%#FW0-S M:(C@?/+PBG_ 2_2/J/B)^]#?>,V&8\&OK7^?,]MRS>2*]U:$3C]8@/QFT?.W M-P$?')T0'-O8//!"$_C)001CKQ:"/^8X1F2;FX7Y+Z3\\..'ZNHQB7",?:L< MYUXP8&]^=.1L!&ES [7-W_A4[T\OX(,.F[\;9]D+M6Z'"D/+4!T;7#C M(QZ(HJH?+/6S"Y3]=HV0.!4@XBX00=(!(NX $?$P^V:'U@ 1UQ-- 1[N @^! M9+H+1,3#5& TW0,BH&0*..(^$!&(IKM 1#Q,!V[$/2 B$$UW@XA --T%(@)_ M[KR(^&0+C7=#?=?;=6)S!O +1<4N&V5[+!B(AHH>_M\/BOKQ18!$V#"3N&F7 MGL1;1Q3]E[QUFQ\E@+Q#HC@-Y'WF MAMNVOCLC-40":OC3%44;E3L[AZETZXX>:<&:X.,G(OJ [OTL!-6["7$F0^C6 M.[Q%OR(47[GUOL_1N\0+4-Q7"ZI0)!R[:O>Q31V-[;FZU&K[,;\Y0X;5PT'9 MC>V8 KZ(AP=0+XHZ[4VYYY]ET?T[H(NKT_/M>W+;0WS^Q,UJHJIPO*+SI<&L M6*F,GP5W\AL=W*%02.H2^@^W$PTG"N.=Z*G26G-=/4WJ;;Y;6[8I1%VG'CNWM6_->('-^-Y5\[S+'OWU[-BOPUI@+*/9W,XP!Q084 M^S@4&]AU[QAA^%;$@0'&63;N([%WP^*$)71I"Z_#:TJ66V4Q\!I-MMY;SE,54LXFQ.9D\LR1,K+P*/HC)MX#Y!;*\@A7Q71,5&K2EZ#8 M4[9P33E4$ Y?%7F$M,']B- 'E9=W)1S/JLX#NKM7NGO[6.T?H92_&FRA+ZV* MS4XG3Y&UNJP0AK3HBY7JL,;_1EMZJ%=:&[7RFGEQ0@U/,Z7Y*&8GHF2WP25: MZ=F,IT>H8$?LQZ_84X0Y;C+Y"+F+0&I<[,3KHVNK@/#NEO#NSDP*?,CK^)!? M45RS$L$.ZRJ5X@!?+BN-:)0;9%#]*.0_OJ>Y'C3=:J#R%6-4]A\(IDX8CKW? MK2E(N@;!N0<)SIW9_[PUX@*"#3)V0?[CSZ'81\C8/4ZH)7)IB[6QI#,3NQD= M\>DV+7:EOK9>Z^-/6ZRH64W*L60=6%92G#NR=^MI9Y6A3DTRM&*Q.;8KI&7[ MS:9PKRG4,OB$-?N<[AJYQG-D"HWJ?G50Z"8B;!P5[V1__*(33W3\4L==[H G M UGTW@\D5JBVH_(QWY7+'WKQZRO/F>KQ/OO*\]WSA;')#VM4C[&IGG^]KSK5-+ M 6U?B[:OD1^]KST'M/UG[/F!39('. _ZY]6:"*JWW'GUEJ.R\4$!E[MGJN!> M?E# Y1&((2C@$I3L" JX!-3P#15%4, E.$L8))>_-3B,_?C&)IW@\ M%A1P"61.Q\*9E:UEP0*O%MU96>IY>"?F%@IO)TQ\P\1X@MQ 4<'G\G/HWO9D< M%'#Y(^CNSRC@:S%TU*1 \M"LSF?9/L$[U[](KQ#M))VW2[E ME+00C:ZDYC,;F28'%.F5<(E%(T$)ES]-;@0E7 +""PREP(N\HA?Y%=4U20C% M14)JD"1!DD:] Y*U2'^,5)=7Q.5MW?6@*5Y'&V:N6YVQK5JR=QJG6;MYR]T)[IDO00C1;=H?CIJ M*K4"MV97N8;1+S0&%(7*N$2B3Q05#^H"]]V>I2I8%;*L;+ M"I%89W+S;%Q-Y%PDEY"?_:Y@PH[V_]K"4 7W(SF\U58=#A S(GK(NJ' *VS$A:>O*FSMM:! 1*VQ/Q_^!+X9& .)^2*@A M/%PU($(G0)5"PQ6<3#8E8B:8<)LCN"1=E.&R#K8H0Q *D*D@H"!4T(J?0H(T M=2P$.L@ZD)F&-AQE.8C4\0#K]%)VKX=SZ@9$B3-491'BP38%"WA]^W M0@L6-"AQ[5QB]Z!4F6!CJ OU*-($D0S(11,P(^VL+R?8K"#M<1PC* M9\L1)QAR87ZF(TFS>DS5VF\7:^LEQS4\E17TK@8Z0[D8:92Y1L' MK1\*U>P'508ZHU+8[ 0GFZH0CH=="3% M6.N%UH0D9,&*V/VED'E._OA%D>R14@AM-NZ+)0%N5!M"I24A:@4[>O^?"]=\ M>Q^&!/-;(,S"[22Q:-@"+;8'-+>8F3>I(%VK\"]/0FPI3S 102X %G4RY!WH3)E8/J)GR.((+< $2C!@/6V%UYX MT':FB2_E0R^.* T] ^&4S+'V%@+EI020^,381);(.+1_"1*N"#E[^+=PG2^6 M,=EXBWB-+MPJDDYD!$R,%+F@C*H_/4^W4U79U+I3##T)3KV=%:J,# M6CM)6,WE)$O%)#O+YR;,@"[/AA:9@X05"Q^;: =TA305A%L%86%SGY_&V+@, MW/8,=X*LDMWG2<8F2[J6T\U<3[&6[I4!EZTHJ^BLTUUP.9.+-85U[KE13"+ M'1]##!W"[*@, B;-/6L)\ZBH.I+'HTB)T>0_-4BC9JAJZ")>K!U*XN'X6^H? M-!!I?62WHXN-F/%\8SV$K74KT,O=C\2YD0JA)T M]I"D!KYI/E(-%PI&>V)(").R]9K A-\,!0O^#%E+T F61]!IA\\=W1C"[2RP M.>7+/5_F^2:\)XD="UIM,V@*8B] V)>7D8,7O2,T_54*T%Y?04<"3CI2 51" MGCCW59(#M0*2S]9&SL\<^%L!D>D8>@'8.0W]#<+C\!.D;UW6' TO4Q.6^/-, M6.$Q3]!+T,?(IQCM8 WELFQ(\#N(4QU2-?P.LICHJ(*- :^O?$/90B;G4PC8 M8OC?>'IHPJL0V]BF=;39GL]B@C$4*\@\'3G0?0 [Y%CXE\8,>[-P>LARB'D(3DA]&, M-KOO,&UW!8D,NC00W8YJXX'[1 -=#.3Q(=A!/\QPX8>984. (V]'E7VB]97> M.]2.!(Y//M@CVJ,9 $&"B ZZ9FC''MX\RV!O"\ /C6 @[GLS)O(S1 .N>NW) M,O1^Y)*$H?0ZUA]/^["&6P+[O+;AR?< #1T2?8R&CDQ#^ZB%#8D;#!9\1YFW M>9(GB9SN5-=5OME>N8?:*.-X(9$!-?#U>-O84^J6:0^:""XXLH/^JGB\X8=O MR!55+PRRPP:9SK'Q45>?5@WU0'=]-'K3]<&0]*"0AD"HC=(>"+8:BZ#W5):Z M]50,0G,/$XJG%D&Q/^V-D>8>/"^O^%2+N ':>+/%AIVD<)8SC789TGN7" MHE1IU^KL^$JP&RXGQ+@/1++%55/:K-1['FLNA%WL%.SN6],>Q+(^@Z VL9BD M6L5Y0:E9#L@K;&EM$\F7]M0N6(CM$S^8*=7T;2@3QU;Y/:6'$SOP:VC;P.7C M);3AFE*J(2I^6'$XT#KPMY+N]LBT:.9F:;VMY&KP[0#B:P;?;YL..&^D^E6H M(Z&* Y2A(4#*?T\GFP>[V.C./9GH1V?>D\GV! IB!VJ$]PR%O[$5$(K\._0W M5OF&8T&^M/[]\ZYIT(.>_QN_-H=HJ*HPL\#/S8?]9:"W3KRR&-#"(##5ZIN% M$"H8V3\%QS8V#W!ZP7OB9S*\,7NI#7\,>N*G1=@PR_Z%-F2;FZ7YKZ2\C7Z] MM'@L'(_<1ZVRJY5WI,/1Z!^W9?9/VS)4@/%[J>)Y/323=U)X\(I;1J4J_Z@M M4\R?1]ED./:@:#Y#^X_[T=&WJR=Z<:5]MV7B*/8*Q3-_JPP<3KY7O.0[IZ/@ M\)EJ ]Z//CMK9>:ODT(B'+FL)/A=6NA#G]&C@3.1P/T(_M\F@4 3!)K@#)K@ M@0N&'@;5 R5Q227QP&3R3CG^0)><49?<^MCXYB2 8(>& #Y&23@4BO82>F=3 M%[?>YC$=;*9-PVT,31E.DP?J J"MH2D%W2+\>=_2,><-$-X:2N>X0^#'_8)+ M!$?G_,N;Y'M:%2SO"L%(7@Y>.5I?V^5\_#1GF3-GSTK1[7.RVZ.8 3W(YM7/ M]X\^2L?MW2KHRO;D*/]F'2;@K,-TW797>*X3I_[K0I]W",(8DD*A,J^FTMFI MDVF@[.$E+R-Y5LFM&>IWQ,X5P[>W!M-9Y X3R!V:O(3/';HH^!?M#E'-9);)YV_:YKY):7=>[[X1I4:;ATD^:ZYX/.1WW62NK>T M%5X>XJ/0(;[+NBPQFAF)7$Q9\C%M4">ZD6&FJ'R]-N5738=7+ >D7X!UPG30 MEY%HK96*N]P\22W+F_2PO<, M=EW1\/CS]GV7P2ZD.OZ^L.YX<0#\ JJ#<:JISKS%CWFZU=.6BT0YMXI\XR\<%SB1W(+A0^T'B-/+'L M<;C]',+G/N)>M[=GK[K=)*Y-X]VX1==;MY>)@H#9I^S6VQW5N'Q [=:;"PS5 MF^J*G"#K9<.R"G[=B(+.^3>M?^ ;A'!U)W2(R,/MTZ_)G%I#)>7V,&)Q3FO8 M3Y*5:K%'-J#,@79K_ ERX07MUL>0.=\FZ+IWZ!"@PBG?^[CA;2.PA\(X H6Q M9#CHCOU-5,UE3QC>?*^W/PIT45-79:/-UG11L7BZ.^S%.]'.,IUJW/U)(+&Z MSD:7\[JC$)5*-9<@Y-)"= =Q9,W2B2W/NO.*9PYOO]?:2 M*#@,?4(4C=K.DH[6JQVR:PN:PT^>(T!L0%$4N^1AZ.\0G-T4?K],Q?5S5QZ MB_0*.3F"A\0[@>>%2WQM.@>D<35F/-^N \)QY:YHH4 4HZ52EM?X=D1KJLHJ M7TW^\&M@.4!*VF^,&Z!AU(7J?'W\MAP3#NTU2K"V=^7NM<+6-=95TX^+V3Z% M7.CQ(4BA:I(5KA[*0P"BZV9I(_P4*NABV*L?B4K+FT#%A6HM9PBU@(RZ$UBA MOU']+P"EX@*HJZ=-^=N]F38U;_^-B_4+(=M 91]G<#)9@^1HKG:U2F>0_B]2 M(7S'1SO]=SH>=*+-QE8/5L#,WQ,$#@3-1NLI^B35&T=&2FPJ!4VU,_E>2%[_^ __9R I1!8*) M[(S)II#>QK1%#.];PR3YUT4,V,,+S!2],UY] Y:BO5W@5>-___N_]E>_LWQ0 M+4'#_+FQPO>VY1?TH[$I- ;$T 2"0@@C^.:?@NH**VM7#3!*;8+6/ )$ MB"+#-/M7:.\S L@1-%&APCV8'10B]']V6(MP\]#P:/0G%H]0#*+9#^;%J+&- MV4^:"F.I#/_T=Q:EPM$+X6K/M\#^Q0XS_Q%"$Q/QY+_:AGC2LD*?(>U!=E$/ MKF3[CW[\:N.*D%!2(]_ .Z?I*S/AUQ[:7R/60TB? N +6^UMX\0W.BYOT.T; M\U"#$=B<__$+U6]_^J,EYB>4UL8=@\9#P:N.+YV4IYD57U_F4IFA,F?73F/" M6:3;@O(T_E;-?EE'C7T@MF?""I,H.H$!-X$J;[LZ,'&?C%T-5URW%3>D&$+K M0Y"AG3,*B="/$^!$NWY$-B2(3:U_#15X1P(("VQA!_$0HH)->7'#5'"S'K_( MM; ]$X)+:0N;.N%^P=F]69[VC3#<> /.-H$FU@IO8,_XVM0AW[0YPJ_VBG^C M>NNH #F8"5Z_GVT1=&CI^_SD-2 R'0SD=<:0AXU-+\L^&'LKQ1*.S184)%E M9[QF/HKP_2K -;[U X"@&NV;:;TBY)"Z34.U0D.?7- R2O!=CJBL-DUC'MD^ M1%76$3 WG6(,<[,[G^TR_<5228NU.C=_9O.@4R &UW:2(H&PNB3(P[W(HE!AV":Q0RW?'M4,LJ2CJ()T4LO DZI*I]>>+A$LD+;0N&8WEQ;7_V$?SLDVYV80%6H1U!;03X M4ZA<3H?^]CUH-&CK.4^ (,T=P42MY3 N2H8ERHZE&%!?R):%_C>;R7?B81\P MV2=X#&UYG\\P5,KJQF3I%CD]6XG:.45>"%HRR9*=EF1Y5QFRJ8@[(6,DQ1IERJAE9NC]^D2EU5 M-SB:J8YU]QX6UK^7]JS>MI0"$RGIC"'"3AM(T.'C=?E_Y/60TMTW@"HA_Y1%N'>TUB/)- M- FN^WW#'?, _P>0ZVW!VY1+=T:LYI?NP*D1E+ M%NF"0BLEBLDLC,#2+1P^^(*"Z;MAJ%'>!QGW22GT.^@40"]&.@.X1<"KP/S MV 0"\E5;$(SPYW!QIAY"I XG@,1N'X)D,]]3J UTK"&!WRX:>IN"::B0+JSW M/=C=BC_LP[Z,Y+^9^?OC'=2"WX];-J&/ZE,$@N@'DYY[SK^X31R7@&O?.2$#'*W/'F&0S5^V PI#]S(?7=2%T< MMWZ7#W](S?BR,O;T=D%#"XE7K] &[AX..58VT6MF7B3G*'8()6L-3I?>GVYS M[;$U <#>O-DZ\ I]+W.S7"087G MM(6PC,;.Y5X<"^FNG57F]8M'6S#\V.9L MID*JPG[I/@QFP(MRX?2$)VCDO?;$<%4J+BFR[5I\Y.!ZQI@HFBAXMK<$S_$] M>-E.DLE^0@29CKJ]47EPK2O4P IW>(DV1H(S@"5D#F9@)A M#)4BM"9 .+1WAF3?[G@!ODW.4+D/ =#1Y*\%D0^I1YS(8('F!1) MD6D9:<49UOW^+9!-K#D<:CF0W3?OM!#_ [R!%29"M%6H3J>0EC;XW1Z!AR;$ M3#6PT[O!B@5M$2\I@:P7RY8U3%[",056UNIQ+WA9VWWRW%[#8; M#A5&2!--!$3I>R%W=*+4](79R15CLP%^XV$&; $SSY=_0J_ST+F= M&$M&$1VQQ$M&A -TRULE6*+/4'\M_+B]=WD8_QA(X6OFYY5$G$%#!91 M=YRU"DS'A2,3+T<*7+%I)"HCG:>)?#(774LLFTM"0X)\.=+1G3Y/9\HJ*2Q[ M0TTE,EJ*0B./UCG+MXKZ6C8'9*UMVG2DUS)<@,K!'ZVS*[&.W5H\KSC0DV,, MUY'SU (UK#A:9R,YGPTYIISC'&:<9&?2LUE649W8HW6:;=/YVB]->!SD^2P&8_5NRFXSL3QG.XR74VJO1JAM$8UYWG8 M(0;E\AB./,)1E%O(\CC?*RHRK"*64KY -XB$0M>;39F)TZ"=:QQ?>#H] M[DXN/,7"H=Q^_'L_,)KL$.+D6=OE:(#[^C.*4L'OA1KI U+FB&X]E[NTR3B0QN:)U!#\&U0G_CGQB.!3G0^O?/NV8N M?'-W>Q?'NQF/DN#"S (_-Q_VEX'>ZM]:01PK$W M:U,&4#\SU%\M@!%^LV=&@(=KX8$.OUG%+$#$U1@BD$QW@HA(/$#$/2 "ZH@ M$W>!B7 L0,1]((*D T3< R+(,!-@XHR8^'B%VH^YS]?;=0)^^=6XUAD]U\?: ML&BHZ.'__:!_?)4#H^'(92D@,7NCELP'HMU[EV=;_H&,;33[LK["'T<+=)B] M; O.WZ4%;G>0[?RT\*9M=N&:2H] '="/N&Z#UFN"*%"B8.SJ<@;-M7X7;'9\LXO/HK:O%]*\!1D0 F!TORUC8COZ8,;[VC&W0\#=^FW^GY&P?@?-U]=6Z]=EL &K">O$I9"-WU70)<>RS4VQNV=RH9G/17U..M8SF#%Z(B7GOMX.X.@2 M^:Z"?WSJYE;=E37F7R0_F]5S:]J_!,.EESV;T#B?$DUJ_T9I/.K_1!>\-IF?6 M44(@.= E5X[=YT F-^0KB.EC/WY13.R)C5ZD;X=GX-X7Q=Q("J",V;>0 E[* MZ;YP>GTI4(K4;3!I31TD>[PQINPUR3\[Q8 H:IA R]&P7RF M@^9=Y"RNYV8\: ?>=PX"/KXH^6BWW3,X%2ZC&63/81,*(=IYO5DN*DSJ]^V+ M35TKN!.(F3J^O'A"<"5B(Y)7G@E3H8TR:W=[]:18;PRBR-%@Z*=X_/A^^2-$ M5^^#P=\^'/@]-OG>P;M %GS"UXBFE$I]KCD3OE5WK.PHK:0'M=\/,'Q0%JQC M7$VD36U.YAKT@%82)<<>C:$L0+VQHT\LJ7;3Z<:M,11 L=<$T&?"KT&.Z*LYHEMSWJWA\FK&Z=: ^91= MA.!"T?\\5&KFC3-?5)!YN8O,RZW\_J9+039K/CELHF5S)D0W6[ MD>=8)7F)Q'%27XK*=#W2>*"-YNF>69E-\^-!#!_TBE%/$?JXA'V0@ D2,']2 M N8W./U=LUXJ#AN1$IL=@BBX M%51($QKN=(1\BK,7/-WU9YKIWYWUOW]ZY8CU";)*=I\G&9LLZ5I.-W,]Q5I> MA%_-DC0B$^6NKFB-?&5JK&R:+C8@O[(_?C$L_411;_'K8^9.;G#*Z]9;#A(K M]P*6(+'R?H#S1D\FK'4,CD\MX=45.6#5"&15 MR7!0+?V;"+$S7GR_];YN'SBYB*(:MJM=_A:OF:.ATQQK48N*.:"?L&W9WWL!-R:1RYV ?[6&WM,YG\_ M7R(#9[A>6$G>*9=(=9VDI7'N(IE1I=@8U/I6&?#SE9Q7$A6[2#NH35>0+[F8 M@W-KIKG81?A;;^R>I$$O.:CEJ:ZD<3'2'6*C\?>\C?_%;9U^;8;Y;;WNMPO5-=;E>7A>ZUS#,>W) M<4/O_4;I,V B9*(>IV@@W(+@-1.V+*@"\ T9U(U54%7KNX)+0F(J$^]M&G##+_R>S,_A51#'Q.H<6YH;!HNA)6)^B;CY)8D M6R+N@&9ZK91WK7W5U5-HV]IUG^R\*N1[Q=5%%0@F$D,3'T=;(8-P=8GJZJ_6 MN:/HG1CQ10D5>5E!_;__ZZ T_#9P@UJE&>;/C3S$7WMH?XU8#R%]"H!^ MMV!!8!()BI$&)$DS@R@I)N C( T '8]&Q!B(1V/1'[]>=+?-*5R36I%3KC;@ MXM5QLB83(]0M^*AO:Z<1Y><]NU=1Y'Q"6\[*]'HR0OUZ3W1XG=&:O8SW^5B_ MEJO7FLN)R9WL%KS($:4X,R4B'#TL=ADV8S08TCW5V9?-=2D[6JDM^9*<8,W5 M<#9EUXU3O77KM4*;SBZ[BB)80_DYVELI0C)YJK=NDE4C YXQ"WQ.$Q:K=29: MRE*-4QUS:6O16&GQGJLX*678DLPLT:DF3W7,?2:G$IO),#)/K*#Y8Y)DE.4: MI_K@DJ4542[.E"J9+D0)KD?.V].#/K@OFE6_W336;P9[(7[82"Q(;"[85Q'[ M:DH!JQ!8X",'2&B+LBDZFF6C*!]J4!D&X9 FB*8!X.\-319#0%_(IJ%[VD?V MW1?\6_AZ!=@A:P8MF9'7'-23^%!/B(9E;U02'NR_ P+4H2?UGX7GLIPA HDMX\[U8RBB;=RV',Z*AAPJ4JCI1-3U'#Y BDXW M0B-D1: ?H#[O/#D M-PH0@#T-KXJ.BAO+[VT8V1O ]>1$3!S;74G M!D1$S=6!U(*HD249&CW VMPEL@$: M?M:!B

E5^.V *V53MFU>G*1+G'^/_0**$2U4A50&\%#1X M#\>S[;J?/)XYG"0D^PQB.18R/G&O9\B",K1I9=.[UBU;2FAD&EI(V!IN\"/T M$*V#GK>( 7:&X0OIL+$\H> P#<*7$J](DSUYX?$IM!Y5*:1#RD $#AE/]NZ> M0YAHX5#+@3S[3[SW@I +A0W0\;(V[]M[AV\%JX8H> \@'WHB#+T?BL69 M":G!A)(X!,7M B!;&V ^EAP,K'2M4\@0%(M^:. O]@7I]D48IQ [APD3SXEX MG>=#$P%Q^K9U\-#/O,")_N?"'NRY^3$S+#3%J<)'^1H+)B9IQ\<,/7Q]J MS'Y=!_FQ.XL;HZP,V024H4R1=@#UX)EU;*C6DAH2E5X]"VXY [H%L#=PW(I< MZT1'#6I$OMT.U!9X/TB.R/ND M)>](2\"@"&%#ZPJ]RG\[*'2/K!(T^>7'?'%VH!^#LBZ-:7H3,_=U M;>713_F\$9(Z$8QJ;MBT-LK** B*[(%39_P:Y211L2(2EP/I2FU1C"FCZGA MXP.^D:^?UW^K(>'5K;X3 CORF(;>+8Y?WM;^VQOX&I'K;[?9;0^44D8SJV,I/QBU_"X.$?*)8F*!H?L=#-U88.@&AFY@Z-Z11,X: MSJE ,--9K^>QPFC%S7-BC)[:FD/47:\,-LT^1:@+1AYN3>)_C*7;G@ 3X(N# M@;W[*1E\3T7&SBZ0_^!"81>2SNA:T.?#5M0 XOY_!;SS^=F;XQ2W_ M1UGW]R[KZIH2*^WF-%30@8JC MM]L]@%(QNU&$[7:7%-:\UB<)9BXM5@V3A4W&20C5E+) M-I9*5VP-)6VPC@RK[JGB)LR@V>6%1"/"I=GDK*FVV<6JEARPQR.KSZ7A*I>< M4KR\'C<[SW*^W!PG486'HZ&CE%4#_5ZCK]!JHQZ)T:M92QT/J!/%:NI&J<;- MV]$A61I;HUDUDZZFJ08:>H30D:4SQF0R69(YOAT?%--:J^H-W6#TPM>),V!H M9V1+5 W+,4_<#&[9F87#JM,R!SED'.M5Q50CZ5?&@&H#2$G[C7%^89C+W"/^ M^$')>#B$]AFJ#:%AXE5)V)Z:O%==Z2!3<\/[4#>\X&V;9,USRCM-A*A+< MWSO?_;V/@9T.D\'UU6M"_?6P#AU<7[T'1$!Y]F9=]@ 15T)$()KN!!%4.!%4 M_;@+1)!A*E 25[>1R# 3%%LY(]0_F<1\US.XWJY1!O,H/G#6K-^'--]C;1@Z MINCA__V@?WQ5[D'C^++'?R!"M"LY=Z:+\@$)O&RV==?XWZL^\VD2 M^)".>2!\!^+]UN+]0B4_SB;(;W@:[W<9'1>(>109?[]T\/!$0-VED+]Z_0]? M>-_Z$$X3+ QU@7O[F$"2<8L%++*_)IIOO9U;'"JD[^ LU3G.#'KAVS_\ LZF M%2/*>A9TRS8=U%D 5[#??+5EF33FF*S/,'ZM>KY.44:D61]PK9$PEQBV&B7Z M7V_ B-91-O0QZI"5U*76Q#!M]#EM:$-9!U)20QVR3APM5!M12FG,N1RIZ:VA M; J9T5@?>[5"Z!CY!!7%)8X6_KEB('$'9ZK/U)*1NHU$N[T_BQ#^D#&&V@DA MGBA#EMAT[:IPKAPIBA1)]US*Z3 C*1^_@>4U>*9JQ:X1'RJY;KG837/35EQ- M>E6!*(I^8BYI>7US'G@OH?X]-OE>LOJ[(^]@*-D CH&RMFX8F6Y9AKA#7 M^>+<3HR&7',]I!6ZKU(Y$.'35.OKEAOF9_@NI#"LNK!"9_]/".]R=SCHI),- M7HFIN:X6859=IMOPBHQ%49&Q>! @^P8!LC?892^3$X3-KF+'?5 @#!F9;\WU M]9B]-1KWH6P"$$"F$$I_I2/,G.=?8DKNG:E8W,^L> MJ>K5^;JV_2%DGKCM(9H/F"4W"SK=,5BN;\P09)7L/D\R-EG2M9QNYGJ*M71_ MISP04DUEI)G*OF):G;!#G'HZXO32?%;)K28.W9\J]><.JN& ,G:QWRI]'$24 M+K_=H[*:J&Q;:&;*NBC/X"@MC30Q5O^W(2 MH$\I?2K&QEA%8'FA.*Y:3D,:>\4WHQ3]% L"24$@*0@DW=;V^C)W3ZU2B1X- M^RUNGB!RXK1%--@(XFYHC$42B2>:_A;'IRZFV^\]9/1RXV5@6;Y#[4 2PJ68 M@03);FB'9,MR<'!)-"S[BPG";X#2(,#TK0-,2+K__7BVVR[;P._X%A780X*] M;@)-=I#DQT-]/DXC-CY=F;I(Y)^C MQWD0?;L3\@^B;]>4"I1-P1'Q02^CI"%?4DE LH -?)XIU M?SK1%,3F;A";0\;=4T@'N*;E1:R^N]KTW1B"?USL(HC;G=_V0UX].AZ,)/@) MB=V-NYUYK;%522VH_.11,7Z25Y!VP?1.?NP:*[*T@\?!CO M'6:7U"3GEH;1/!=;CGEE45ZX9KD)T1T?.@N&G<_JO%9<]Z=&+3[1.RYJ"(*/ MXQ^G4(.(VS>*N)T]>WK7NWVX0-K'6'B2((:M$MTCR)94ZF8262V5K(T1"Z.# M:T_Q1.+QXF-W9FK=E=GI!<]42!L$2J5O3"\41-M&U()PV27#93=OYGD@UBY: MA.SF6[V]6WT5"ZUJZ.*K$G[Q M->:)COY6C_D_([:VZ5I\+]+I(LV3#SK@4=N2P7Z'08)*G 8X;CUXLL(X^OQ3 MAL:F+!Y7&=^O8>L5X@MM*O&%(+.%<.6T,JZO,:ZNB T$18@)(3^ MY\:WP9/P+PE(+:#+AOEV-<6A-*6RHU2GKY3<63HJT0LNDCZT>)C/B#U9![71 MBS<)2UESM)1AFKB?95J 6FK_AE;,$X95P30'DF(*G77*6G+$)*X55H+$M@3W MQZ\828:/&OMS0OHPZ=VLRPX"_@$"%DOBSQK,+-AW"O M3N!?1D(#+T,,UZVL>U42R">26:7&M/)*KO4\@A8"235+8V@',V^2 )))EV*] M"Y;.NRIHRS5C*.2H44Y)1]=R6:U,D\PE#V=YG"Y^+++2+ MV\/_$Y)O,>&YX)0>N\[G<0/?>H"7(T0D11&5YC#TV@P!Y"1> M['AOUJ0J_9R2R_-$0XBE%I-QXUV\")NI0Q#VL@[%$*K-8.#W8'P@3.W$U%X< M:1^%X5#20L\JVXY!"-)/AV@6_=V$7,'Z\Y!\-@9L+8TQE2[,>HILRG$]1[3R MC O5&Q.CP\RKB(9L9V%T;!D1HV$FR!+TV5P=:;!SX^2=GMSG0U%R('73*F$. M24#01BP?J4P*YM@(Q19$FBT+JHH(0$7O,!PS M-(/O,W1\?]V G_%+$#5Y:M2R@&V%4 MD*1'+1_A9N$+_/.Y&G2D5D^^B06W"U^YW2*:X/,+?DWIN,B)DNZ!$6YF-)^D M>&Y$U5M:0QHJ,2(?7;8&S?(HX>*6$V]1/*8V&Y$@BAQ T/O<92','5H'+WRG MIS\/!YX4V*"AMH/;BTNL^WA) <8JR.D\0W8UCIC1)EFIL=!R8YCP\?E7+QN_ ME4;ZL> YP!9BMS\."2=40Q-H4([!!7Q,.2QJ7(V?$=$R+X-6T7KN3+N-$?0? MJ4@T?%QI[A G.T0("T%6D;((WW5@ZV6DT6MJN]>K5U2!8*)H\,1_V3;@CUYZ MB6:]K_8Q0Y'?$'D0UJ>B+QOR_O=_'70:WH:L"=%0#?/G)C>QMRV_PS&-(Z1C M0'B-C(41?/-/076%E;7)];/A*+4YP_)SF]^(X*@T&:;9OT)[GQ% CJ"I"4MB M#V:'$5GO9YMGIM=WV7_X3D=E'S6V,?M)4V%,&?!/?V=1*AR]$*Y>A(LC.\S\ M1PA-3"0Q_M4VQ->CQSIB;/4@>NP_^O&KC6TMR%)I)(!T=,?')USAUQ[:7R/6 M0TB? J"P2:*,GI/U0I<<-I027:['"W6^+#<:R''YX;UM.S(F]I>*6^4LGE[1 MDCD"HWD]Y@[H$R/M8N*Y5<]F2,W)6M:JV&BMGAM0=!Z-!*FFF'$7R2B?$_,D MOY S[9&,6D)%7XZL#YYC2J0R<+BT8F39*Q?&7L^8PY'59VHY%98Q[+D'2[R'73?%$=3S)IO>>7\#T<.>#*?8>>CMHD M;:Z2C>8XS]$U5-N3>3FRV%IDN76[QRF$(1J HE4C,W;AR/C1R)K6,"7=,KA6 MN@4UVT)BL_4Q',F^'*D3L_2T4C$LLE285*9@U>H.I^-!['A'NL+)AL@68UQK MV8/JC%Y-9B4T\FA'1;%O. V]ID-?AVA23+U8&BU=./)H1TV(C8PT*QED3EH2 M$3&VEB)C-/)H1]EX6\^*#C?FY-%B7%M4"VO:1&\_W-$@"H0A-1)9J)L!)!\A M&AL,!488Q( T',8I5A2$H_6F>6Y(ECN1"N]H_>J\V$MII#0^1?OC:49K+WMY MD7.F1:99H(@33G2I^MDL-:+$9VLW.3)Z.:X5V ?5@.L95:L[*.5>ET*7L#3 ''=4(R!(IM-(6D8.JFMDJ:K#"ZIK9MC4 MI&+G%)"F"WQRR15K47<0/WY[EV0DL3"*=GD"@K)J3HP6&4YQ51DNN1')TH[P@-=IMSV MKP:Q>BJJ*0HGC"K5B9AMY]?EY(]?MFL<^[>R/W7(Q!D[;W(<.]ES<:'5",R# MP)P7U$ZA*#E:%$Y?A[RE;3,;G&,:DJ&J@GDT!H>%X&_12RV,[9%J0.Q 7\U[ M) $4H45UCU !LTV- U!"HUPA4I94$.0:A1@6T\A#0C(I4'3=>[]DA#1C M 5 TT/O3U4,CT]!"-J1-%$)!_PV'DM#"1.OQYH-4Z"T&3@6GD20O F/CI0;D M^$5R9):->@+&?(;@VL9BD6L5Y0:E9#L@K;&EM$\E](FB)$R Y*JB- M=FQ3\=Z-'90V?%-*-43EQT:?&+96,XD!%R6[M5%=-QUSEE\T?H0 )),9G!72 M$[B27OD*IO%1J*T#[1WR$Y% FUG@Y^;#_C+06WU7$WE=HN>M_;-_*$MP;&/S MP'-L\9,#_W?_B)(W9A=A@*XWZ[G4MKE9FO]*RMOHQPZR1[?KH?.\$OW@P5AI:A.C:XL(-^^@@7'OB) M$W.[0,N%KW@%B+@2(B@ZS+S9NR_ Q)4P$0E'W[RU'2#B2HB RB:03?> B( C M[@01 4?<"2("CK@31$"SB8T'F+@#3-!AZLW^ZP$B/H>(3]Z ?]>EOMZNT06F MHWM(5[D0>NN")>>%@6BHZ.'__8C_^"(\&";\IG#\;7AL;Z^=.BCBOV1X\)+# MNVEI0\>51]!Y0^\(#ZZ:X'TLZ*A. I!T7,8*/;&-__SO\#R$\K:P.@M@/@Z& M37V7_;T%_!_P_WGX_X;5?GY;/N#DDL<>NYM_Z*^D-'6LK=3@4H5V)AD(AT X MW% X? 6MQ_^>B8C]>/(#\WYYI_8G@NY]HL(D>28 O>?"WWS_%R80+Y;TP/2! M:&%C%FZH(\X\$G4$M' ^6H@SA[0 Q=]#28J[H04_HO; Q(!0[X'$,+W_CDT M/4PSL _?M@]O74%L[T!<'9BAI*X[6FASWBODG?9!I^: %.+1H<"?0>VTW[8/ M_[B->]+\S]NWK^/_N'T'^/ZS]OVGXGMCM_UQ&_?,L8?=][V'\EY6?#QY[>(1 MPG/W0*OOGO*\WY*L,\<$@P7?4>9MGN1)(J<[U765;[97[J?NEJ"Z0KA0OK$ MNJ"C>QRRL:TX=/1-4]#'H*8#_V+);]],V8SJ"*:,3M@C2C[X.:)O]- ?7X]6 MNK2JKHM*C6LMAGRZ,RPPX[=NLGRFZ29\F6RU9M ]E6KZ_I*H[6T6@M[U;VIV M>T*;9'DR5AG-FXLF9]L W;VE?_PBP_1QM:-'"'X M*.(YYK<:I@4\%_#<(<]-3' S3=>("&Z?X?@2[ZQ*W77MN3A?]1NWX;J\Z0YZ ME<5TJI2(PJ35('5RWDYZM^))G.4)N.XKIV$#MCO%=EG#,6_%=6M02;1'];S. MS\/.F].6XKF,VW&E!1/5WV':I0I":+ ^0?9GPLJV7Z5URX63* M":Y[Z#S)2W_\C4('07KD =,CWTVX7M-WW_'"QJ:1BGJZH7)YOBM%R'XQ,=#< MSHULFO9H.L[EH@;/R3,RU5ZFRWDQDQS$D/=.7=1[OS7[_O7(Z8SOQH_7].N/ M^''09--*<]U8\377G21<.D)79S?BQZQ3$TJ.G%6Y'%,E(W0D-24$5$\KBOCQ MDIY]P(\!/][(YS_BR$1NM#+:1IGG-,.J+(3FK"&Z-_(_: V4HZ72,L_)O3X[ MZ2TD19GZU>BHBWK]WX$C;Y< _FXL>=5XP!%'DI38Z0]!O<2#,M\ORN/DN%R\ MD8YL#N?#9Y(JN$A?\SV5!=GB$'%D AVSO&1$X(XX\J UX65Z CY,73COZ"F0 M0@+$JC &+THX"K.9"E&-*I=YM0M/%W)\M5T!;H@#)S&-)21E&ZBKL\N+&Y3. M_TS'4;2,K@_DI ?C_8J'1TR*JQPJY9Q@")FD1@Q[< M$,3RBK>BTJN2;*$12##Y+7&&8"*HHZ>0Y4 TH/9=!GRD@Y$L^LUW/*&&AEI M'1$C!S>+VG7=@1PQ-@7-"H>VC451_RA#%*$B1D?=(:H*7Y@PW(Q&TT-@-Y#9"V;# ;K9PJ 9_ MI:+&5W (ZK<$/ B<6.0$*NGQY$7CK,U>=0"9 [<"$D*B*LA:2!,D"((QQ"&4 M*H(_X<%\ I0VP')4&\-QLQ7+Z\ODK0DURALBN.&M#($JP_?X./+?(Z.MJ;*" M)-&N3Q2P ,#R:^38$$Z>U#M:PPA Q)K($O3*]CZ R7K&*&LF$Z67YJH4(4MM M]YD>#.*M9.T+)YYP2\6#-F19"-E, (.3=_7_R&P*'H%\!Q8 U05W:4'7NPU=X@Y$DQ]("VR\RJO@] MPN6^?4FQ:1XT-@'6%H'>31N:)MN>Y@1^U70HF;W6,![07O0EW=GXV#[<=A[5 M#1N!&>J\EX7>#?.$?H':0-!7H;$,> MR-@G06T"+ OB$D4/\'Q @#^=0P<&&=?0;,=>@8L:K$#QO_=+_**]GJJG=O2G M.L.'G>D2+U9*4(B MK>;J4!U?F]+OD@.W9Z[\1$82=>XV[8VY QG2DJ%KZK4TPAX]!*,@>G&)<_=O M^60LK.6@<@Z0KVR 1B1UJ0Y-)NC7&^8*H=Q72G9B-.2:ZR&MT'V5RH$(GZ9: M;YZ[?Z-K2]K1'*]2I]>>!6HGW(!8!E;2@XITLF/+J.J..L4LUU*ZL9GL\"V9 M%*!E\PL*-'#-WVBD9^/:1J:D<88P,?FDR_YO+$X M5J$?MML55"RH(*9OV,?UK'C\5#-7+!3@NU TU:I[1O_)EJT=()I+5[+F7+=M MY_26&VLX+K3ZHM#L>[VY\>EP=-(^:BKMQ6Q",U.&ZF&&FFYO0D/P]UM,'V 9 M18G@)AT3ZGXNT3\D)M5#;T,0J H_E?:8\CD$+:G#"6P1.: MJ>>2]"3"Q]RC]CC?N0T-0X<9-JA9O+,.;EA//>A]<@]XH,,D%2#B#A!!L>%( M@(E[P$0@FNX##U0L3 4]-^X!$Y&@4]E9$?')2VCO6JW?J9CS1T3P8^UW6]6= M_FI5=YH*1^Z[=''*CY@(]ME*L 84<&@=QF)W30$X88;B,BT;Y7Q^JSII(/#N MH<#L!PH.GTVT/7#QX<.@92#^+BC^'IA*=E6-T7%AZQSB\:Z*$GBT?QZZO^[& M[JH6NQ>.N_55F/\YQ^4T+YYU;Y?3OG0U[:O)OLDQ[@-T3/ [] M59%U67.TL_)<+C-5JI1IZZ00EU:-A3#AA&D<>WR6\5L>^-W.@5Z:^ZQ0>>R_Q^\=:Q1\J7/0)65\I]H;CJL@U M.;DIZ?*T..-KI?&EK>)N?I:KEAIRBY^W4AU*+#5GZ[H[B"*KF'V*7J:DPI\@ M+-[-#]\KXUS>BKH^YUS)2H+\]%RJSFJ2D]048=!)FG8YP_2&2Q5!F@AC!9ZSBVYT;N8*)?./-/:"]_+&Z M'I\0^ETS70>5Z2"B"*GE\S,+=#"N-2YM+G-:*[;6ZY$FV4I3PTEC" :I!:K5 MBLQE]HFY5$7S[R\V[BZT>#<&U1[K7,<.=HICI[3HVO^?O>]L4AU9TOZ^$?L? M%.?.;,Q$ "L)?V;?B:!IVCN@:?>%$%(!:H0$,IC^]6]F5B]L(/5)[ZJQFGES=/%RVQ&/1.9T8I"$]=Z@= MG-YI._AMLJW!#'YNC(NU@V'CL%+ORIZ:ZQ_)S\?C;9%MDK^LJH])V1"GO<.F MJV=NSR[ZG3A>O*?QX@(=@%:5BN,_*P\8SQJ4:3 H-T/)W9N2"*0YS%DE WE\WD2?TJ;8A*T6YD MZ_I$/^QP/0%[2+22^T:[)C:3%@I(K8/%WTJQ+Z0$MKX@RWXCA^P+#^(V0G2V M%S>6H:O318I?.>;9=?,LYXJYA_OIZ?"QUST<+:'X\G9KI?C;A^P>*Y)%31(88T,+5 QML"EM'P 4*(@";K^(S=8-5L?9/!^O8 M8=@ ?DO]X&38"=S%2YIF4#W^J%UIO#.M>T &$P1\1_\ 8ZT;! '0-R ML*%G!%FQVC 2H5/'+R(=6BIEB@B4!"N52ORQ8%K!TBF. @Z.];81D<7&BJH< M#T*-EN,-ZZWZY33\$\1+LYJ"#B8E_3F62X>52S)LC.EV>B0@4+7R\@8R.NHEEGXF];,B)0"@94J-NKEKE].SC?= MD4O640ODU4>??F70B(DN9>?K??SW?\T4,@DL!:RH9]D_?2\CLBQ>0$6FID.' M)%F=%*4-(_]4C+$R=<*:>)D@_/\S\%32U$,64W+Q3R'R;]R0A=W$9B!>E(_%01NC8*VO_< M6NKK=7)-]$N,F0?/_*,?_]ZRXTY+6V.!P[!(KA(M\_(:L\[N]+(-5*B,;J:5 M5EHE!;F9%5M2,].2M69!$G--)9?5E)R8%M/IX@\VJN+[/R4E23IZ/C\0AW>- M0NDA^UPN7'50F#OIW1^,JX<5,M)K8A5:9N9;=JS&^;%4;[3% M^_X#>=);Z8N>5&W*37&^9?_@R;!/"H?@\[6*4R!-[W9P7X*6"Z-/7\Y;C;N' MAM<@O8XSSHY/NM-;;+DP^F-3K9;%P?&IF"L_U)_K5[FG;F<,*G%A]$O[OMSN M7[\D*\?3D\/TW61\]6)A?O7"Z+EBH:H\#3NRJ(]S^OW1P9E[WJM"RX71Q_>G MF;.TE>V)P_OQT?6%='=)LN-F=G'T)R=S53M4:H^5I)Y[=D7WR79&B/&\T+)P MW3RR[1>GUJCG[*=>I9R\OC MCN9-+V6D_\)\N\FJ7%,;A?/>=5ZJ.*?5PM/C86<9_1_J/>,I-]"?*O4S3\VV MU*E[:XRAI3S?GKS-G=8 MO4R;;0.INM!2RO9?;COZ\%PDMSC):#4KMEG)ART;C^OG(\HZ] M<=N]Z"RCU<5MIJD^RL^WLK5)OV(T=N6OV_??<+^EW^\ M.L:;-N1:K'0L#FV9M$(PA0@!@T2WL4R]!>8.FCY@7"2Y&1DV'7BVXRD,/(M] MJ:@J H6A$=;QP&H"@R:TP7P#U(B83"..JQD!K_)A$:@UI9$)%B$>$\.@4#16 MGPA.%RS+) /4"\RYT'A%>S"T'U."#]W)IT@F V(ZS&R<[RGXDA;?7V8/AB:@ M@Q-/)O:1EILJHAP6M4](;]:QAW]:]4U)TIZ3FE)YR]QO=*:-V0Z+2VP'_4XF"AZ[[ZU?B4GCIMZ MZ_#RJE']"7>/W4/7?'<[!^;]O%#SYE\^3Y^-9NA=S(%P[UT3%'/&LD3 MFYR>IZ_&*&R7)2[-8Q!1A1P<]'F6]%5@ D^7X5%8!XQ:&=$VP1&G,H1^!*WA M$Q Z3H(J;]"/MD*ECJ&;]#SJKTB$Z^43"&)!,^*.4-#0)45^_D=JAP[]YZU;)[0D$0F( 0U' MV'IXDDU7K;-JMC&]GABMYE/MXO$<5*%+3 KKZ>4)C'0MWH,)\V_?LLD\KX Y0#<,CXB-6Y;@R'9]92JT4#F#8:)SS"Y"1UI0 MZ/ MGF&$W6,7K$?FVR-J;? E@NZY#.$;]I=:YS9A-SA+S7?P*Q3F D1F]:H5'['* M/R)07C.PEP@,/-"?,B)K_L0#(2)%T4:/*N4[/9_)]13GL'7NUM4G?5K"J^#, M B=068*[ML3:>G>Q'["@U[_:FC:L/9XW+PN-Z;CF#BO/!_VK\S&N-O_Z:A=\ MKE6B)^Z%#5""P_YL42 P#MG'\.BF.!\I_P\]DP8ZZT ::!2YOZ4Q/>A8!S?> M4PQZZXEN 0TP<)Q,,"!\ #K3$BP$EA-:GJ-3>%-VKP-"H:L/4L*)-28CQ)U# M'$Q^^'43X>94>G$;S$R@-XPH2:C<6C([.KCJV3:Z\C K#GY&^@/#FA*,$];H MS;>B:TSV&326A\"%./J:SH0!K]6F MJO0F;N5:MWJ=03N@7+KUKK:&H$OPU+0WS8[HU M2UY Q-[(XKRBV80#FU T%&ASVD9Q@H1!>\,26(H)'G$6QL/PF\*U>(L 2;E5 M@EDC;; Q'-J.1AC'EF? Z9\.,)41SBM('VZ88+8NQVJ?M0N"2 A+E*$B@J=^ M!"9-2KCV(YV"T@'YP7[!8YXW#4!V*D!YT+'C*>!^N8CC#O.(MG)! M>2%WA C *4&X-L%;@W5:JJHX*$SIZGS)YV">=C0AB,I+0N\S_-BP;V&!@#8L M,-EM&G.EZ*"Z'4C%5)Q"&,DF0[[@9M)T5JXF0B&0T4>#EGF7?4#2$_J9@2=(G)Z=&C^LXN9 M!K,SC(K6DE+Q-N*]%C"],),N*?_[C@O9PT)KY2?^% MINU?8B()7_V]ESA@O_#P0(R1\7:!$%+F'62NF!(;HD0F/A*[08A8-NT((5 V MQ;"=*Z3$^V_F/V=';1;%:_.@7?E4.K_7H%UK@79[3U&M^=G*NWSRU<=MJV6< M_49[6[A\^2S>VS)!LNUWQO,)3DLB*BMY4RUNYW'YZJM.,-]@M][)"VE\C[7! MLA+O9V%^JB#$[#5J#5=WW6[P$.62RA#*V6C8T5N==(-<3-6SJX)W]W+=86]3 M)#F3**9SZR@-D=D)+MY&181=6/>J3N]VA.[V3^^G\H;7>GR+UT^5PX/K"[.G M9.\ZQ:/'W.##679\\]FWCN\>&.SS2C421O^YLO/XS87.NT&X;['*S?@- M.Z$_OODBWPW,[-(J]]-7^4!JMWR4RW8NGZ8/E:E&:KG;!^]>GXPWG]K]2CZ( M( C7-*?,OV6.:(;9-/#8;(N=KDTZ77X2R)0G+2PQV^Q.*7O?KYJ]2M\LWQCI MRO"JW\+7^S*K3)U??$T;.UWQZ8V=K@TX71\XOMF'IU[Y+)?S>L?CHV*OD1[5 M:O4J@]B#XRN^65A^#YRNC^1C@OX-LZOF\YZ6Z>)5'>-=PJK8FB^W[5W8OCC8 MM#*_LDSU58$@=A^/QOO0;=,BWOM;MG_9-*_DE1[P[/IBJZ5)U6#GV#F^.G\^3]QXM M8$@O2'.)G+A8AB/VU>.3_RO._-;7NOV3OW$]O^3H&^9+O_UXFSSN'1O)J^'% MM""=YK$>9I8=_7SV7>V^7KB 77TB]U8EBV##??BM5Q[*W9U>7)R>J]FGAB=) MK4JW>$;(86DK#^5HV?.9AV=O6#_T%=M&7FW%C[3> .0J9%-R/D[NWF":/0?- MRN7B7=_TKDNI7#;>]8WONIC*Q+N^R>PFD%I[_( MQ*]\^Z&23W]_[3!_ _*NQ@K9U3#,.VK\NT14UA9+?=/+]TMFL0I^&M;J/-(Q MTO)(:P NIE:IF]EZ:IH%3O-##6BBHE\.OOMC:AL;$3%1E1L1.V% M#,/ R[*WS9FGA[M+]?RP-[P_?;CICTWSX0"!*YDKF$NOWA7[Y7SYS=6^?DZ+Z417Q@%3S:1R_Q:386=-Y]N MN\0F%%$]-J)69D1M.W5_)^3:#N[+-Q2%6*'^HV*PA,?\#5EX=]?.CY+Y"T4< MRF.G=7U_7AVWJ\T\RL)L-B'GW\I^WALC3,X,PJ<-#$K7WZ.],\6RB&PY1?4?18GP#^_)VXI;PUS>2A@W3AY0G M6F6B0M-2'_]:(AK/]=%#H^Z-VY7I49*<7I:>CYK*N%FDUXOI1%I>+$/Q]_X: M9[/"SVI' ,69Q7;QI2>HOZ_1MO579FM*Y=KZNKZQ(??QQW.-V\E%LZCI$S%W MIVE#QW7;Q:-Q4Q*IX?;NP]E]>#VW"(7'LMDC2?JJ :XU\FW7?Q3ELR4.NXXL M_5?+LF,\3!!GF$_*S6?B__=_S3PQ""P!?!=FV3_]$Q19%G_:(-/#U"%)]H*! M1@]_*L98F3KARZZ,Y)_.G\$I3--8G9B2BW\*D7_CABSL)CXZB^S9S*,R_K/9 M=V7^A^\\I>"D01@M64K1]W_P)U]91DIEUD2K.860#BGS?XK0M?$\_^?64I>^ MML!_OU$U\<>_]%TEZLDR>Z875F)2H@\P7F/6V9U>MH$*/>K-0C&740MJH5G( M%<1F1M9R3:65D9MI(F:R:5+(Y'/%'VQ4Q1<.TLV@!;T_F6%Z>]^XO;\F++[FF]T1P^W)?%^\IA\TH< M%JUQ$C-',_,M;XR;PM#4LX>-^I%7>M2T2NGZJ I"4YQOF?7R5Z>->_E!S-V> M'=Y6*MZD))>@Y<+HEMU)DF[>RO64WN-)Q;UR&X4BMEP8_>GZL:,G MLE2H/97ZEWLF\\97>LTK^3. M5EX)1]"$.E4-L:JVP5*R"FQ&!-B!P@1RZ9=(40LFU9+B4_&@]^UHS:+WAAU@7\) ME2_[552^=#HE;;=$YZ^B\M%$7(&]9A(J@ULN*/0>UA%T$\M&@'"D MP1HB](GB>#:-_+Q3&VX55US4_MSROJSDKH[9;YM?R9NWOE*6?_R;2Z2EM=2W93)_IQZ;S;+) M9A)NXM/\;4ZS%#W-4O.YK%>5XZNSETK_L?E0$$]*3[G[#9SFMIY7)U?ZN%]) M7CGC/3VNO\W97*^FG8/IO>;\=VI6./<=6?;'$V?2TR8Y;DP'%Y5S\6)B M/EX<9XX;588-ETD4UZF.?T/=&Y_7YCIFLO>EZU^7W>I@58RM3+= MD@XQ5; X\,V&86&X8#&79>R\E,7*U5.OL*=$*[EOM*-) M.]*:,E\^'ODIIH3(\@4X_<+,!@11H=5,;#8%, A;\427)/UD2=HUS8!Y/:U. M=T'VJ8L'X8N9V?NXU!__E@U%[S,*7BACQ]-=9_6+6GU:TB;F=4\HRH/CM9Z) MZF)BEPI:'%0'N!@=Q:![9I..9RBN94\%E>YD@@<.J?/"-Q2Z@57!!SR4R)(W MX<1[MD-S-UL>?$T<)R7<(P:%;M)11O SR\-()$@2Q50)_ +L"*4#:X3)]'53 M[\-2A+9NPKDVS1@$8H0[!!NGT9MH MF"I1@PL2*HG@,V.FPO$M(."DA'^ [: #L;!!D8MIQ*">0!.#_6_*]:AG\6 MD#[$1N,510OJ<[03A;%E]\"LUF# #QK;X#OTF\]*%SCJ[#;;**=M+S\NC$S] M^7-^,C=HFA?!>84A7,\I370G^/*&%;\/VUS2&OCACT%$S)@ !],K!-,AU^WP MX^EPI(.)<0WNMIU:X.M'KFM)(;%[/6048F=\[,>Y;3JZ,9#R#I M$!6] ,SJ<(@Y4R1A9FK3"X)'][I]2A-3&[CCAXSR8"K"X(')+S*;[4JQ[:;Q M[(R2R=JD6SG.EB:%=$<^ZY=+/_YUQ]:"N2^0"5$])B29E !>T>EH5*P"U1TR M]/!/SC4@S[N*BX*N10R=C!A3HM @F&&L$I3"*4% B** +76'"75D,64 /4VH M0 )Y30L/G-,I_N/+OL#J^1RG#<-D[+/?BO MF7QH'7CRZ?GLVZG<9YY]SG+;H=)'A5VW/#"ZZ*/&@+]R$?Y*%L_=J7E1O*CD M[JPKQR#9FX%8Q2=4B^P%0M'@2E5CO4>3SP?A2KEN!.VA@_@#S1$(*0=X#=02 M_)?0QZ= ;L=UHJ()?T=%$N-,:!FQ@_#+!=X&_N32=#?8<@=9[7VQM@%6RVD' M;N8D;S]5RJZL."?VJ-JS@-6*KW,:JCF+FDMM(!J]*O>OR9G&0H8(=6&@TR)\ MQAB,64A@J.BPEW0_ \GG>&"^@'W'V(@;2R ,3;20L'_.O G:B=L%\<>,,"H( M&78O,)G#7YSPRWR[I;OVC T*>@+L)V$(I,$?PXHH3 17^H;>0U;%#7ZVX"7\G8%"6 *'@^263 9"$:&C\:C =)QB.;D5?F0K8 MQ$9BPPPT9K=2&]9G!_S>1.\"!FA[>+10!NF6YJS25-VT6UV'=;C3V)-F\[I$ M?\HW7,"S03-!5\%QMH%Q=)0OIDF83J#GT(1QT3UT;4]ECHX-!I,.K.$Q)07< M,Z/HJ _+;DN%%AQOX";'\8#+6\"8$=<)7&E7=STZ4L^TQB:*)D5P*+52PFD; MN;:MZ$94%88B#HYNW_$M?R[C\&1;.'C4FK=LQMQP6#3\][AKA3YVQP+FQM_! M5HYT4+]\A+#3!!.HOJ6'QT@C??\L,C%&IPQ?]8B_YZP]N&V!"3QZ9W]7+5J-U.QY]V66IX\T,M-_SK$J-I7O_7S3\F^0]@ MW;RO!_)0;%_<=#.B?'@FI8_O^SGU<<;HDS]8[0\L2\S1!"/ONGW 0X;W75WM MGBA.C0E(#0<.$T:2/E\?EW*ZKE2C?3)W/@REZ] M\^-?>1E-,.T4A2$?!@2EXRM&=D1G0J:!24SE*>A2"PXP/]OLM0N(RXYR.Z^\+5>9CNFG< M;Z"11V!_%HU!8JFP:H?].&* (;G!M^)6"NN5$YC99CKH(Y<^6N<[+@:RJ3- 9XU% MMH%T\!FT4$P:.MRMP6^C28^_7,!C+FPY78Z.EXQ+\> M:>ON#!_Z5SF("XKJ[GSJ].K)P:VB%X4\ M\H$"$Z$RW' MLEO<:\%S&-Y^@KY$;<-<'191(30YU.F!.+K@=Y3V_-TFC<$0_\+/&P2N7QL$ M$4RV&YBE@@L:4_.C5!J(2QM6RZ]<4T(EZ)8['"SS%)4&UV[A6L F1B. Z5[J M'O%[N!8A)GULDN 73^$K$QH+X@&C(-4FFB"T;W6G\G'=J;CNU%?K3KU2R^C- MM*BU)$+YU\&6SSK++8T\,@>?B0$7-BF62] MTU*UD+T\K#:SBRT?;K.GX]I +(CUUG%!NWNI$B(B%LI"2^M&&M^=YT?7#:77 MNC[5]":97HR;^<66Y\28N-/2HRI>NX=%+3\A]9PR;A866WJW7:G?.'@^;IP? MVMI19GR;OBATFL6@Y9HS.>NNI?:Z8'/"V:J O^=.KRR7O)7$:;8[=Y.G$^FX MH1L%J7IO/"9O1]6MIV6"0A*BB_$%!5M4G)2Y'TO]\6]%L4W,8Q-N0#/4P66. MG1\^KP/% 0E _/T98#0$]T?X"RB\#'-=*#;CPX#L_8%DZ8"H7U#N^=1GG[?PDV! X:W(NA^T?XTS_;S MO*8PM91PJ!MT4)C,S"3P3@N\GJ"UANUTS,;DN8!MOW<:FG#PW@N<$!VO6-DW MBY_0L"SS6:(W8I'O4C1O:$1XZ JO\/$/ BZ(Z@=,,4Z(<35JT;S2#RXEN+AF MZ9Q=#/SX\3T_[W,)=5PT+YQ0L MSI2WI4$WS\8C=-B<59+!D1/;?[A_^L=@+]G6F#+8_XO;)&+ MUX;=V>U3;9VF>]+>^P3OT=O\RAZ,05!HD2L]8FJAQXS16)P^NPNG"3AS;8(= M4:>\U6X;:YN85X-S]DK.S8*#_CHG)$()$A4,(4_X/ :CL;YQGBFA@=$(?C)9 MG'J=\V^])CR73M[/=@XD!U[YQBQ&8?/8#<,'+\@8[9O=DZK;G-XE'3%GB 6E M([;%XJ"ZZA>MV8]DQ?J&;PGXT]=!=:*"&L-KA>MXTWS]X.):ML5;]\>\+L98> M*YI]?'QX=)QN'D\J]7[[\K)GU3.UZ])6BF;?SJ10LAP13),T5=T@S+!9-+@C MJB@(EBVT\ARFVIB)32].J9*CF4*O&V[(R@3,5]^6XAF'^, (T6?@1[]CC>ZH MCXW11/\#%NVFGWRXC'?QBU6\9PH*Y@NIS$81>U93<_,7:S1(O]F*"ZGT5L$E MMT/DWXW*^=2.E ;=V(JEE+RG?/W)NJ\[)*8+OYV8_L**@]JEZ2_7+BVDI/4> MYS54.5Y1'=O=.=:?)?U^'^LO%ZSY/N?\5[=@90=_CXL6OU;K_)O(@U]BD5A M[)Z *"SLP%O<_3__D7+B/XO_NR)>9Z[:'I_^E=:S7[,/MU.4I^[;?A->VA>! M_Q7"_Q)P!Q?DVZ[37>8)%@L!X(1_[\WBM*N2VMM>[Y=2'E_[G6 97_B M G#->-F,<6GF';N2N0YY=TD%T9)7ZQP=D0.WX>7'&7,R')GU:8?5_DUG$\4W MJW?_HK[:-L_[TFI%"NDWYV2IV1ZW3N23D^MVQ3.2S\\WYR^9WLW&.#GO&+9U M6!KF&Y[R?'A^W7^:MBY*#)$XG4O(V<5GK"M3P-OFY"]+[SWPLBI!/J)'*Q\N MY$>JKZGJ/?"H=D@1;\^>W@59MIGZ_?A*G_$SE@"'/9Q+IN B[P/2[B%Y:6O= MF\.)."U-)G<'9F':O"\ULZBW)7F-2GN?-73,XNLO=+\Z%C\13PHOM?/:9<][ M?'JZ/ M]B[J<]]5>3,G,B+EZ).A):(N8X^FGR-\SV.LT<]<)S"3&? MB[WPV O?IEI?%:5=SQI=ECIZ2XO3>RXRK MCV:[7L=Z!8BS%[OLVTC2W3&F7J_N7@M37TU'I;.3ZW*M<5R\+FB3@]S)Z+P* M3 T*78K=]/UTTT-M'GGJRVOHOOKT/7;25^ZDQQ'+7=/YY<@!..7\S]HMD8U* MO:8VY/;8Z"4?'Q^R!T>:DIEVF@6*<[^(<1&[]!]UZ>-SL6MFPZ?.Q5G=/LGT M+XZ2E6,[8QQ.>_=#^ZX*YP)LAL);F+5Q &!G P"?C^SS-]&QD__E6_HT"#[- M\M $^TTEWU;"^KRDUD?N,#L/SXW5V;K.P2TP)R M$6LOB?D$+45]8('PPU#2H6X3!D?V%][X\"*9].N@3"9%8AIAL(E?!-GAG@_8 MGE/4#95#L T^ 0[TA=KY+.WL"7/[5HV4$Z[M0Y(V%A;6L>KX3W=7[1- M/_0SR:-A)3DZ+_WX5TJ)"S*;D= MJL1D$.1^C276+"4 XQX2E9)**-"*86)TBB$[FF$O/NJL/U9KZD_:KZ7J5U@, M"$&+/$58N?5AE+%/,ZTD8WP)UO$+3.M='K?/CB]O[<90.GU2#I*/VLWC^--, MBZF R\B;O\*Z8K7\H.!F?WQR?%4_%^O#A:524B_K=076' M1,]EX2A7/"A;CY5AUX'VY=Z#GB_1TN&+MZ%+90^#60SII:5>Q\*E\">1IHBC MX/4]AO+ *P'#+]=HS(?Z9"DX].7)3XB)V*?U*U[I5NCL_=7OE0W)UI!])E>=[1&].+7JU2\D'HAR!B?D[ MC@$8B!3&XQUP[D.LG4TH-#>G D@IM7V=-,][]P=>X^%X>#*N=W:("A\!\%M* M!'_[@]QIQ_5+X9PTDE[)4?KIOM*I@$24Y51^B4P,BQ"& M&G11^,5U=F]]G1[9'8Y7W4(T0HTL,604AF"HZ8Z*$'DA-IPU(*:/<$<1^O01 M@Y@S2<=R&22+:RNFP\A$D>^ 4GW=Y<7CG:"0JV HXRANGD$Z"&#(@ +IC3U' M\O-:% 40YM9?P$X,?]YF<,&L2#O3=FAJ]2U-;U/(.@>FKB68*:11N&&-W/2FY[#X MA^Y%R>Y\WI3U=YWGQ#A'EAV.BF"OP5/5I9M?/K[-GZ6=BYN*;(]'I\W;BY?: M,6R^E'FS6O(VU./F"; Q[7C5?BH-^ZHY;%RW'U3G_C8KEJM A4(^M>3%7!2< M83D&WJZJQ'67@B8=/ ,U'Q?B+7"BP47GW#'2)T34;\GP*GO]W!P\<"QFW?2 M=NX;[3B4VKJAC&ALT <-?*_$B22![\AV0#@U&>/"CJX8T.B=%$("1-%E@A!M@#]O)&/F D*&)6@YH:,A]5 MQ6QOFL7>0[-L/%[41?E8[@[.:D-EXI16?)MW>G7T&8P!WUEEK$M3%-ALG:7R MXJ9Y(1Z>'1ZDQ?/;EW)>R8T:ATFPIMWQ$MP .^A3X%O ,)&53L<&J\PE>]F3SL608@V3Z[R S=I-QH M*&G#\9Z4DX?[Y\XR $GSV9E>7M6?NKUCY?(Z?W11S27/$6IR ;[R@)Q56WGS MQ.P=2YFJIY)R]^@%^RS,M[PNJKU)_O3]1:,WNHV"5HN;"DI\Q%\_3TL-L0I^WVLY'-I9OD"5LN+.EL ME!^+Y4;'KIQKSOE+Q6L/2I,JM"S.M]0?S;(EW1>,GG?Y.++2]9=[K8_S7%Q\ M2ZGVO/-S46LD)^S3YU1^0I+/RTL?F!7^O7ZU=F%2*Z/RT?'HET\KU2A MY<+B1\[)98-D,GHO=]WI6+=N8)^+B[\Z>Y%ZVE6A-[Q^+@Q,1TWW^MAR M4H/NW<>28O3_+5K9ZRI/AQ@R\4EM>_K=[>3!U=IG*=/#EON>2W[ M*):6 9)VNUIE6CP=7#;TUL'%\^F)4SP[+[$]:>-X?-ZL MMM*9*F95+B[I^79JW3U-K\1S2^Z<=>^?VG<.PJ$N+.F^ZAVX2M-0*\/C$2D^ M%JN]^RRV7*!GW3D;W3RI]8/>]+)[4[YZ:!ZJ?N3VW$$8S5H>2@^CH M8@\+=NFAU9I8F(&RL/A\[3YK]K63Z7?O7K4=+LN(Q;LPN+MG'UR)1^18J-O=7*D43J_>SK#>0:+?P5"^DV_9_T9 M+*_ $06V:9\0A(LW_)LQWYC%%?AP@JD M6AC$$3S'FC$#SN8\B_G?-%CL)D& MS:RC(>3QRT0L3TGOI5:^/&W8U3EW]*VFP'CSWN@']G,9YA!WK=#^#R8O*"W+ M8][6$HMW$0>(&P_S%N]@.;N]LZ[=C6?L(J90H;@"3*%TYIT,MH@E&.G?@C[; MP$S^IOE_4W;[R:Q]=-+>-;*YXT,']ILJ+DF_G#%; M?#-C-B;$Q@@AQB=B%P@A2:ET3(@=( 2()CDFQ$X0(A9-.T&(8BH?GXA=($0L MFG:&$+%HV@E"2'(J_^;+VY@2L6SZW0@1RZ:=( 3()C$34V)UE/AD589WHWV_ M!T3=VX&V_=J# ,12DKZ*8IF34X7T7L.9+8&WG=R*;=*X*+47VZX;*MFO,U]U_K*) $KW#_2:0&"MZ2HA/.L,S#^U.7=)WZ'LV_Y';M?^BP'_ M,/?V$Z;DTM>U!XA(2!S';Q>\B@LM0]]0..5O:_S'H%=/3LTC5;5Q?W;KEOO) M8B_["Q6\^*%?5FNS<-VJ&:?%\W[O6KD_;YU?Y72%8))Q^L>_N8*/V3;%;N:^W.W>E5G):O%F+\)"M MQ\=LNUR_: SORVJCE'7N[&('-B1'4>P3>7$MH+JQ\-AWX<'O07==>O!*Q#'+ MQBSK7X_M.LMN5N&MN*#R&ZJFI9]>G30EC_2.G]NMB]%YN3E@C^'D'_\6"MF$ M++T%#;<'MPK'MN4X6#FTK;O?X"9M@^)E_V3).\G3WUYN?$LOFQY@=GZ7"+!G MN75Z\]2UQQGCL7 VA*58S&PC_[R MVV) *>5>:D]WN?M>4C^Z.R953>G>X5MY=)ESBW1?^TUGIXJII7=F-X8U\FG[SKI%-$"Q!=6"F;3DB9 MS$ISIHW+H^VON;-^-2[M>9M*]>8MS>SYLTXBKNU MYIBW?X\U;\C]V:U%Q\S]>ZQY0Q[66A:]!U=F\?.U^/G:MI^O2?'SM?CY6OQ\ M[;=_Z!(_7_N]Z!T_7_L]J+SO1(Z?K\7/U[YI1F[\? W@[JB$U-.N@4:FN(RW8OE,SO?3-E=ZHJR>G%_='?5T^0E"#](]_L[EL M(B+R;CG>=-JZD\K$W;)P?'-J=9]-L2[6UO"EH7BA' MM0NQK#7T\?AF4FG55+F-PB.'(..9A)2)W[[&PB-^OA:S[+=@V?CYVKS">R[K M5>7XZNRETG]L/A3$D])3;CUE%HC8O- ;LGU;(;=7Q[6<_)*3W"K$S]?VXDH\?KZV+X;RIKWLMY.7K?/28\D[EV\:Y;N3Z7F[>7%> M'2 L'CY?$PL)*7Z^]KN)@=_O^=KOX"^_+0:<7%NK2:UAMY>TKVI93R^-W2R* M 729LXGT.CWF6 KLHA2(GZ_%G!<_7_L6_NO;HC\]>NY<7"J->D677?'FUNF> MM'L(RTR?K\GI1"97W&\7=ALG+_9RO\1?Z@2@%Z.;GL*\@!7.73=A)N[/=.Y-DD5^ M.?CXL['[I75U'?9-;OJWLMAPP]V-;*"&./M]#[@6&I/>[[ MM9K6M5;,E+SK?&_X<'B<(<]/Z?I%]8= P$L<0$^N[9$U'<2WLIOAS CAY 4Z M^R#+>2,OI[[P5FH39^':%$H#6S<$#K&6$,9$4-2AI]M$$Q3#$*RVX':)H#O M%_")J0F6YSH8GP"1(\"&PC($';/-B>,ZV+SD&@J<#57P(]()X>*B3'^J0PN* MZ@A=.4 /7=,5>RK\Y5H= J/8"1J1D\5__#[HG](_?Z?"7G5'Z!)%&WJ*C8-" MIZ90[BJV >-;9D*HP_RZ0EFQ+4,WE00==T!L#&XX @G?KN#IH-$'6 9\*:@> M_!X.CH,=CA1;MSQGKC,!]JY'7 APRF:HMSP72&*"J#& MJ!KL'TL>H&,-!K8UT?NPH=#^CW4%E3(1F1'\V[^9\"\D2L@U#(XSN)/PU^5S MPH6ASM]KS(J4V^F S-R+S'W/?VV>W5T8C8%0^G'O]G%Q&(!CK(!_T@)M\ 1P(6FPRDV!H:"\PA\!H==:'OT&6G; MMOJ4=\I6'Z3#E$:M\__@41I9Q@B92X6YZ:[05E0J5U(;$6R?T):A5MJ9:>W( M-!@.; 3>5C6(8J,5V.6=^^^)TCC(.O!M7WTW),EAT)H'KJ7B/(;M?__7##AO MD#>65"W#LG_Z;Y\BR^*@P#(U73LDR;!_E3:,_%,Q0&@Z?)GY8BH3/*OZ&;R? MPHT0)#$E%_\4(O_G8S;XR24;VC)O*28.TW9_\9_YG-H,JYA^^ T+,2>-: M@Y^RE*)Z%?[D*\M(JEE&ZA0<=ELMU1);>?3S8R4SS8S M>4ENMO(YI2GF2#NO%J23LO(#:]TA MHQF5=MLR#&N,JE>;W6_%WV^G:WF&)K0(J&F%6JE@6SU[)E?T.MB5EF<+71W, M3F:11M]@1F@5I'XX= #??C8MEZ#UJ1H>&@G$<,@83&C"#$V8 )@MG"LE,5FE MOT4CHD1-2: YM5)A*C/MSH6V;D!W='[47B6J9P.K$#9Z98+)9AUJB_1UMFRT MGK'I%&2!0*C)W_#D8; M@Q6;-"RKA_OO!-O#^X =ZD #_ XWN,4-/.: \)08NCYND?>)8M+&U)X&YJ-2 MT G7;2AC?^L['C/T'6JZ.20RNJ# WK<4!U:/CH"''H5MH[LY ".8=<#,?=8# MGP]:<, BNM-CGP"#$!L73(=VNXH+.X",I"H>C(?]@JV(%&Q[KF>CMP;2-220 M'9YE*SC+Z%< (Z(U:S/?0M/;;4)GQZU+"Q=#7"0F4)YOS>M[G1).^\A BDFM M3F#A)9/E$_6G!)-@P_I "1R##9N2&$1KV48#0Z-=44]O)."S]HH$9%8Q YH+L% MVTS=8'";X%N?<[D?NTI'Z!-1Q8TJJUF;MC WTZ146#0;J>F8^Y(>!FO'=&U+ M\]3 ?+@>8<(A&>_[TKA-3P<3/QX-W@1W@3!#:: ()I5@(%2!XTF > %]%M3CH3HG#'E%0U4H9DQKQ/_=1^%#T.(@^,5 T6VN3:B\01$" M8IJEE<[JSM?&"EISE0MGEHOOS]6V*Y=/JY=.5PNPBM%9! M#5A]766N#=#*C_;M^RIW6%2=,G,LPO+S!R(1B;5WP3P2/&H;@OA"NIW4'5;=6;"=/C@57"F"GS/ AZ&T80UJ?!50NFQ69$+SP&3!RBP87A6D7M@0\> MS(%Y@=#[S PP% _&BF4'X@Y-39B' 7L'"PSE2P*V::!0Z4('1N$.!B!Z&/Z0 M:E($S6) M&LP=?"]V[8 [!:*J/S/V0!\$#3WZHY3P&PBQ#_%\1/TM\CPV *4'/OT@^CUW MWZ9XKS5[.P54B!A9Q(3A",PMO$H*-6;4M\4_X:086DAR7TM&^@==!V1&R>@K MZL02[4UU:6)>M;\Y-[^[F"N0*S R.B\.YW9SP5Q@K (>*!Q[OA9T[CW'HZ>6 M^Y1(!20J/>)=$DA,=!%MDB0.YECH3I?,DD>S%8Q:\7!$(,PBMA1U*+F\9782 MS&C'XC\'OM=EM'$P$A!0P$' S\[J"$:E(N*;<;CWC[68_"%(NKLJ/!,"/ M._Z%48NVR,N MAF"2,;LQ9Y();TT#C8I:%W\<=69@8/_$(.].4!AB(D#4S >'BFI?$N0(!!/B M9Y:F2_@'D_#[8BZ;,1L"OAV#JD9&@E5&UY3PX[$F?C+ Z)LBM'2-1Y@""XD% MU?@I@5,;I"V@+E&9E5,]B+8\2$T'2&:92: >B;)T F2J MXR8#'<"W"\?@8L 7]C04R:]5V"3:P54*" =0AFZ7GML6"&R0.SYCX;' O6#\ MJ3LLOH%Q!=UL&ZCSJ&5%%T(;TN]FLH;4KF4Y5%U$];UEOQ:#B4X_V,/=5A1[ MEJZ 5?WB=(4X7>%KZ0H;L8J0CU"O^PI?4?'VR&&A1=1,(*HB$0]D>%385M06 M")3KK-G@1TU #W!]0_5!8*G.F;NT$3/'V!7S@K5.XZ BJH2]KZ!!--^W HW>AM#BX4!C?>&020\%#Q^#+]D6*'AAT8_K1_ MW/.PF6]?!=EYP=Z/0%O2O518^*9OF=!+S[3&)HO>T MT*B7 ,+L)3!JVQNBF M^/85M3V!N2P-%']+IV$I9\%45)A30@BUDSHV.I7 LC0OEEG!S-Q0:;#E3,H=N3S"!8+:6/6^[LDMIY-TN,>@=ZINS,TVO#KTUQJP1KP+89FQ;F!!BAR8Z6R?L MC>WY %%IXXN$ST8Z/X*#E@T M5'S!/AF6XQ#JO9V IUKQ/\V 3N M$9X8E.0!F1VV%;A,VAVL2H$S3K2D!UIBU@-D6H):^WQ&S-/$.;J4B:-"5>AX MB@W+AK[@]Q.][_7IB'Z2#>N3]1 10 ;*%R %WZ0DVZ1 R/B_:A&6C>*R["B' M_8[ZE$![S^34H\;$+)EISE9D]Y;LW:I#.WLA.$KT/NTRBF[$7HYT06X4$NEL M,:0ZT\\J;#DS"13 ]R@3Y 33-U$44 AE&@L@DG[!#-PD.'XK^)3B'PQDP [?B80Z43L*#^*BO3CKCO>M=&4>YX,-AN*9**,GH.44/9U%#<" MZ$E=5-#A<)I%G7?.:CP!B!TJIN:,2.[*L]5:OE=^L /<9OY@AEM^S&"(Z#4> MVPD2Z=#":<'0B#<7I^KD 8� M]#\JE:A0]RU.#,G1T #3]@I]-Y/4T !UV(W>S'U3=#R55HHDX)MY-#DMDF46 M<=^9.&7V,DA9BUXB(B^1#C7DP=P=$<,:,#KAE9\YY>$.UF5*.. 2(@A*N:0# M>Q11*]AY$&Z$SJFZ:GFZ@M"D.^[GBN@J< M'5@ S\WS>V(&";.^?59T8'":=L'-;#H0TSSP0=NCAB(*ZDB E/Z.YW7Y^6B4 M5="DYV*7ZHM(BD,P"98K%KT""C9=L_R[ #W*6VW/IMP(-+'&BWG:6!?8:/,=T(=!NH3SF@(ZBTDV$^0>__(I7(S,P/;SQ==D86K8"E1 MAUC '4?V^D/RGU<%#FGH-41$%<[;H&KIE+JBGDG9ELZ/"<70A@J4%1X#/$Y$ MU^[\W.F# MZ;(,;1["8Z!+*DQ<&3CDI_^/Z#1P5![LPKB/RN)%,UDTBN=:_@5R*?G-^A21<%:D?Q3C;:"+.:1$R( M#1%"2K]3XBVFQ.:.1"$FQ X00DKEWZPB%Q-B4X204^DW*S/&E-@0)<14+I9- M*R3$)^NPOFNWKF;5X!L2_]ZZ^,%=P'9??4^\7A-R);"O;V_)2M!PUV2WK85-P[0N3?!PR^56&R:R[@-^RK?@5V.22'RI;T9%Y3XGM!"_\$CYT MK">VH2?V<$]B[;$;VF.KK/,[ZI0R#\S'*B56*;%*V2^5LFI9<&6EV &QVBL2 M![&^^&[ZX@;O;QF7W.$->ZPW/J6:YW=HS1?DWFL%236"EM4BE](P;Z MB^=H.7_'ZNJ3ZBIXLOCS/ZI*2+N]]H/S!974H(\)YM(/5Z9>MK ',ZOSJ;DR MS;#Y]7P&K7)&-KY2PUC()](%:=5QK6T3>@OP/C2S8]OK7A'L*J9&? ?>+N33 MJ>+J:,QTU;9I_&L83CL7GON"DIK/CD\*?V37H[#V6COMW7'-%0K[=L&R$UIG M3[GTO12\'>52*9$%M2*N6JWL!Z=^9]]G3HF@6I'$V!'Z71PA*9./W:#OX0:M M6D=]!_8N%HNI%9I7L2^T(TIK3D51K15[0]_ &\IF8F_:XII+[">'KL).T8MVS:B=KV>E=^ M.N1$5LZE7F\1Z>P8B($\CX#"("1C%)_.Q/A")UG#\2I<B9&5F::UV16C#KG1A>JP6)_U34Z9.!$(*ZZ'[M3YG:ZQ'0;[Q MF]< JSR'E1MT(Z4T:8%VP\#_J$!B^\SHK;\H\3,\6D&82ZS8K\PAQA24-/L6%V6)&65W*/0@N%R(_^\,'V M!QO#B_F&0->(IH2EJ5G-UW!': %IA/4Q25 *DY5PI#@Q86EI#CK/MRE)RZ7J M$_@7;!C6\U:)#^%B6K2^/"O^N]*"IK\NL?8,JT6*L5I8OY0T,5;+[F&U"/Z( MB HR#WD1U7<@CGUU$R!V,TG:X7]P7(4 /\J76R&@5"BV:,7GOF>X^@#KGB+^ M8:@ _P7+ZK WI'AP6B^E(;VTUDE$-;!];LT81OG8/1"#+T0U6H&(#N"6*[2 M$M@,P ;Q$G5@ %?M1E2AP^0L+H^)] B@*.TU"O 81:*@6!],)>H<$HP-[K$P5+\U.,(CB87846[/8! AEZ MB,)6S6!B6$%^'YA!02&CX8$C%"J(H@]@I3[:&#Y@\(K!*-P!B&([!.C+%/MZ M9!DC_#8*_I((L1N8S%2)/D+-%3&2P7)%X$0$/V1(XQQ1 7P2#12USNIRCXB/ MR0R&J1H"5_K A8@'8R+6(5HUA@7=X&Q!O"#X+FX,]2;T"71O6V.076",1H$8 M.'A,@FYZ"&JNNIYBS"R)*2&0E$#3".Q-(@#[0:D<(B1&99S.X$]A (>Y?2U/ MZQ .XC/0&$@!F-! "K2[@Q,9P"2^3FNV%]2AHW@6?%IT/SE296(>-XA,B,I M(GQ4)\='&(I "B4$1VD3"BUI@PJD'7&H5>BP1Y+@_\!.46#F /:5$R'JH*&R M"Z"9F;(8@,?H$2U!W3K?G0I1B5](%,X2G&*#JX=$@#&/.AU:^9 6H:Z/XG=S MY6Y8867W&$38G]D!WSF"6"K>V*,)12BBY5-/K'+^>(7]1 MU.EV&SEQ1.;$&V=!FX)"P7[H?3R\"-#$<4 Y1EJ(!\Q L='%I4)&&.EH-+4Y MK@HS'K%K=#21LQ!G!J% 8)$]?K2"93%06G],!G/#^H E=_6!#_LPPT5<#++N M HAN"BON@Z\B%@ 86:H;6)$(B$?W@2.%.^&9Z8)*%C2"WC05QQPYUD]P,#=M_U6 1%9?5RDM3GT4PB.F6?;-Z-MA$Z_DS.(54UT; A8'L$<^ M0#$]N;Y_QR.<+=M2,/8'1P:,+UWC:,D!'OL<7+N/* DC84A.H>*7V76(T*PY MK%_="2":&" U12"BB$+4)8XH JT9#"G4% Y[#L3NPV0'-!WW87Y.C/(SRB; M O>4!:A5BA#G>&WP[70.,P>;10($I B07SA5C?1I !&A;4PMP-I> (X*04%! M^#@HY[AC&EDT":?T]FZRC:'48Y"F=&V^>4JAUD'YT&W@V[+X^\!^H^K#0-1# M.J$^@F\1_P#ZUAST.0TV3[-U#GC%NHH*V7 ]'8KAI6$X!#01\I#F(8XK!B=@ MUJY@,ZH$IA88YO QBO@$]]_9OV&+K8ZM#+JZZ@3*J:T[*ML8?C>!K@?1F#GN MN#0 P4TI(P)U];OC3L&P=5!UE%0:46%6>(20>WT,L!E>20!_F=8H EE.HSXS M@2#DZA!:K@_"8!8YR<>8Y)<;E,DH %EH6B"<&)AD=!"&OX37&]0RCF ;43!! MHH%$P"XX0I9_<1#ZBPEZH<),@DC'S.U#&]Y9W( 9441OAJ*0G'RB(*(\./PV MFHYH<\P8?+!K\!5VU;(\X=;R(BP@$H,X.AO<&8V;>)< M!^9MQ1SIMF4&SFXDX%5A#O3F3)YO9M\<>C2.S/3%B"0I^!L[6"PX(HM2%L\% M_+>8X#"Q8X4Y?"9(#L6A=LZ<-EXJ*OD)"J4E>I7H^!L(0HE8Z:8G@)&.^QWEIJ=KT, _R&E,ZE, ,.(6IE-BM//8-COEFTC M "W+)D"0Z=F9AQH1.,*BES4VAI=G0R!X1GA,E49B+*;5381H9.I_SN!?$D&A M1BSKG(".@=[3I-ME30TP%4!ZA3D+%.(R.%@4 Y>KB\"% M@J4HBP=[)B 51)P=-$8Z;@"A?L!OR^I=PJ-3RXB00(.-A8J9U*+!'_J!J5.' MCT.O,[\O$:8#A?&D$16'($E [3G\\C&UEVD,-C4(>6!X.(CP9RH[8(2"X6'IA) MSPA"5-$(>G#+@-(IDKAQ3^;$,/3/PAB^Y M2UX)[ G3#Z'42NYC"1#2%W4#X M..?\IUPA\8"\%;E.8\K,SR?!>'60:<*32_SA=CP]01%T[?_]:)X8O:QR_/7;.[P$GADX"$/-^GD)FC[58AZ= M[6!Z6#2FK1$5*\?#H;[&+V1MWGZ1X3=''ZRPQP,EL47O0YXE]RZ$XF;@N8"?:>% 8LQ MC9.S;&E'^(O%,&S']9.F?39 A^!O^"'5/;[//!N8\",1O'>,%[ 9 &?0.V,: M**W8],?OY2FIL-T73.R+4\O4)FYD>X-*K^ MX?@S^O$5,D+-+VO'=?'6U%+^EW2NK=,71Y26'DT $&XL Z_PF*BN\+2G-011 MW\E7">.XW/UV O_;YI&!%B$879P)WJ-XZH02'?F)Q0"X* ">(AJ+O[!WF6$0 MAC]9T6EBKG]MB8:U85'#VJ&L_3]#SW+_^?C&L?;(V^&2_N<_Z>(_CG#(C'9? MNI5 )$XQ '',$S_*P=W=-AFJ07OF[PET\0LMAIA41U3.,*<7TE,GE,)$[GX MHZ%]CX K&BNZP$JYX$%VQ$OT!9@#.M;5!H>(- M$'M;$J: T'05F#TLE#X^IZ&>CAX/3+; M]^G#W)^=>H#"#?NT+(I9316;65G*-C-%36H6)#77%+,Y62MF\JVVDEZIR3\[ M\;?*\B_GP[\T"]2US4-H8(#!3CM__PRJ]V\.P+GX<4.(_*>]9F,0KGVO[$(M#; M/S[ZFC^33V7S,;3W+&=L!^T^E7NSK$),B$T10DKEXR.Q"Y204[EB3(@=($0^ M)<8G8A<((:?RF9@0.T (T-;QB=@)0L3:>DTLO M3"[9A4DEO##!A-65 1>_+3W7G'ZX=C9:CRC;ZUV)Y0J5*YFORA4YG9+EO98K M>,VZ,OGQ=JQD)6O]^,K8Y>GB_RZL=C5LL%#X==_80-H7-?*K:WV%#6+UL"+U ML.W"[#66Z+22>LZY[:"3K+Z",XO:?0?,MD(AFY"E%<(),(&U;2J_KJY^>8$L M/O4=: ]>^RJK=3.+9=N4_W/%Y&97)=M>52RUYC#!BHE\3HJE5BRUO@?E_UR9 M\;SME6P*R&<;T9,RKUSGOV)8G5'\/5&YN,+Y;A!<^;2<$//RJF70?A+YO>O: M':5A05XEJ.C:@W7KT1CQ;-I-2A=2WTX%Q7'9?8C+UN< EUBUAEG,)0ZKM+J8[7Z* MFW%]_R+R]OV!=6F QC;7N\;DNFC MLNBOM)S^^[MYNG% 8X'.*-HD>86OWW8CWOIED;[ZZ.RVA4$L_+X@_+)B+/SV M2?A]F+)B2OIVE(T#N/L0P W1[G13M?JK>VVVGU)D7^,LZ6PB5USYJXS]I.&> MQEDRJW\1MG?R/@[1;D=TB-E8=.RQZ,BN]G8GCM#NI%VX;3/XU(>'7[&EN.UU MQ;EC2Y3"=_-&OW6<(0ZR[F:0=3\Y/!9CL1C;(QJO08SM J4W+\;B8.O&+&B> M$AL'6[<<,?GP!8V*8:BPA7N,U*9$IYF,) M\9M+B#ATNI-6WK:-VC)'#O91J!$)>Z08'LUT19!/&!XQ;8EBFTG+-BP=\9\$D):3"-ZU-'0NF&<&T M\L==VZ9RG'BZ#['0:S"$;9Y*(/S% Z)_QW5=?\_2BG%Y@=T(G.S,%=S&0ZU; M2QN(!=5NAPAS\;U/+)RV3,-M)0/LQR+W,R9\RDS?%FE;-O$-85>9K!+4XYKL/ M,=\;V\(56:;P5XN8I*V[?PM@_:[)^(T#*[L=6,D4$V)V]>6\]N.T[G@49LN+ MC.._L9C:2=.ID,BG5XI>%TNL[['(WX*2<5!XW\0T"FF5AJV^_:AYJW+A%C^_0*WR[E$ M9O6U#K?-\+'\^Y6KMI663MP%=H@#VLR"_U]7 6&U_HF%#8OPY0>GN<+CH)LP MBOLSG9N?Y3T1NHHF9"3!"DKU&I;*W@8*BH,O" ^)2OHM8K/P35I*"+(H2Q2+ M[5*QU:[ /Y)3 G2GZ9I@6J[05WH$VDP%E;].=*VE8VB>C1_0AXNZ[;C"T%-L ME]@IH:0./=@I/A66Q6)X&M'PH:/EV8)-',]PZ1QYS]BR;5M]VAU\/2 J!8E3 MPJX$37%)2KB%!H[2!\YV,4$&?**!8NL.?$]_C\O!&>-*$[@/&G%46V_!X"UB M6..$0"9T,HY0ZKM$[0DGEJ&IEG!Q41;^0F+*XC_L&_J'],_?"0&.$NS6&'JC M\[&A,QBOY'4\6#;?UH1P.B)3X9+@MN%I%,HX-7.:F.D:&[W7L4\W889BE1LZ M5=SSLI6"X4PU%70;^=;Y*?ZY%U:H$J\_XJY+D4,UR52NG([.F__O?_Q6=?:A(DJIE M6/9/WX*,+*M+4*'_E*EFZ9!DRR9*+ZD ,>V?BC%6IHYO?!13&7;> F=.'_Z4M6 MK;O WRI\6R,C8GKD__Y7_Y?G_/)/J,194%^X&52)@.@#+G5 K/PA2]E4EFE1 MF+\!:TP(\-NTG)+_3*"V^:-0R*;DF19<^,'/X7M?= H@DG2+2E,F>%&;^0.% MPE818,#<[1/R")-W$O)!";8FOSI3J+#X!$-Y2!0W[Z_XB.BGO%Y1^* I6) M$%^'48&K>*[E?\"D+?UD1BA'_ W>)E1[H ^*3,Z[MC\U/J3$%OJQ.#X9!ID9TV'[= #=]6:%P)@0&R($F)^%F! [0(A8,NT&'>! 2+&N MW@5*9%+2F_EV,2%B0OQ>A(BMIATA1&PU[0@A8JMI-^@06TV[0HET2GHSL3DF MQ.<(\VW;N+D^@^;DJ);;M]6SC7:B\ X78%F6;WVT9EM&R M=>CFA!@C@DO#+A7322[V^QGG;@5!OWC7]OV([<&F\7!:O&U?,=#B78MW+=:A MN[EKL0[=6QWZNDOQ+=7=A@@K[4!]CTV5,]EXW#1X2Y2C_4=>Q]6)/=+5E13V M6W<@=!?X]+W$DUTM0/!.FL:.OAS/%>1$5EIA,8'-L^CZE<7>436?3ZV0I%N( M1?^Y8D)N.YP>2\YO)SFSN6PB)Z^P[L:V).=O+"<+F57"TJ[]7N;-*BE[>,$R M9S-7#**Z]EILYKUU>U8?,]IV2=JU2:#EP9YM+W?UU;]$.9$75RJV=N" ;""^ M\_TX04ZM$$=I-T+SJRC[M1LKB45^+/)7A44O9A)29M5!FFT?D%CD?X$3LJMW M6+;-![_LPVS!89$*=(!;RU6,O73]MZ:=MEV-=TWAJZVO:_6QD4(V(4LKQ*7? M__C6]R.R)(JK+!V\C9N"_9QV+']C^?O.S6RNF,CGOL'-;"Q_-R9_=^ &8E/U MRG>H<&:TRBK6R>R'N3\.O\<(*F9&:JU*4BY5%*)E5F4QE>=E5G,%\&W\+]^I MW_KY^JM8*+ME6XJ6;-&YL.K2O"8K=A&M1@[#T/JI?_V1+J3R_IS^IC7'Q\0P M\+] EV@)UZ!(*R^F#5OG.2ZM=NT0U875**Y@F;0>+^[8+9E@(?>P0OI??\"1 M%R-C8:LKRW:[0EFQP8K8FWN< V*:<%W]CMKR4:6DMJE0JC;.!TDO.5[ZW04(R2EAZ.82>7^3,RL MDE?A_O_M?6F3VT:2Z/>-V/^ T,@;\@0;(L!;\CBBK6-&L[:E)VG6[WWJ* +% M)D8@0./H8W_]RZ,*!\D^!9(@NS9V+#8)U)%W9F5ESF8D_$&.TRAJN\#&3AVKTYRM7+$+Y[#-&[E@>]DKX(6 M*Q"O\HS;JS!-DV1YF.6/?Q'>MS ^!X3.$%YI4=PXS0!&2!I3K"_MQ><1C.A; M.0R46%@*. %\8,,!_&NQ"+*,N@BDF0A#AC6B.I'+$/0UD?DRB?\-4UB7:.YB@>"Z=- MYR TL8,%KT3-G.J."2C-RBD!$R%J@Q2)'UAF(?T.F%C4+ ,KM,!"DC@_GUM3 MAA4VP/# )@/R#:\[^EO<:E$V.H)AA;6$12A5PETQ2I& _3?. _C;FN59GFB^ MZ[!.RJJ#Z=>H1T( L F^21A>8X;05K;>**M5%TTXP)HB?HF $*PTN")^O\3D M>VL18UD*V! PFWH!8"2QE48 T])KL! _X&X=%R+,2>+K/0<1PJOH)A$&0 2J:0F$ FL)&-$Z=$O M6/]$YS'OF =7:!01D 0-G\(/.+N2@*EA^T=4/=>CQY6 M[?CM1-E:T FDF;KX77M\V&UA?FNX!\P=<6Y#_(<&@T:89'+0//)6>G(QE4FC M;')[9*,= G([%OE3I'_GH!F@>25QJX7: N(W1E\+]5Y[&X4=O!G88*>P;5N MK6H49FR]([/U&FP4UDH;;YN<8*R^H[+ZFF6%@^.$QYF ^R[GI.[1-=$RCW7; MOC>T^U(=SOY+\VX4;NWN7,,'H@9J!\]C!P USFHW4'N$8V: 9AC4J-!V0LVH MT,<[GON&VA;;('%BS;XWN(^2>4[;1.\3(NA#$P.<&6N@9E3.4^%0HW*VH7(. M>-MM/[3>29/6?9_([="_VNDFFR@6?->EB9:6B74[W<&@,QXV6(U]#U2Z775Q MB/T'1P/;;3B\ME.,-MVFU8A.(SJ;KK#=&0UZG5Z_P2K;>T@T:-BN/C@L@J < M-QW7V:VD/$RZVXMTW'4OCBR/0.X[3K%7> @YI.*+Q%"C! M[3=KV[?@.*DA:[\%]&PDOI'X#?'Y8##N#/K]XSP$W>:1Y]%1 DC\1L/>;Y#NCQD-4^Z:"[XY:[2%$Y8QI M@J]Q)D)S7OL@AV3?O8>W=&2Q]WUM(5EFU',[D]$Q),LT%T@Z.C0WW#I[#\DS MATF81@ ; 7R7 .XY3F<\;CS4<[ "N'^,:&Y< )NDG!9+X#:0L)' ]T[K&0XF MG?&HT2BKD<"M0W/C$GC/B3\OJ25U>SMF[V)=JGX2-G>/9]9ONO"IA042K4OX M]KEKCWK,&[#D,(@C[!-O.6/;_<$*(B^1(I76+(D75K5N, [@%+W+86@8I^>L MC>-;PAKV[>'J4+6%U,=Q[.&P-HYM85?U5/Z9PQ8#$19/GR?Q93:G74R36/@G M4QC?IUGQNV42 "@ II:?2RN+BR7X\%/\;^EEUC2.OP%-II;(J#O[5WD%+\HR MYTJU:X\CZ\5SISNR'6O!B_JQ8\61Q 7C>^_#. E\43Z>PO-CQQY7'X?G?H\3 M6/ ;D<1A$(G:Z$/7[FX>_'\"Q&>P,GH?Q%#Q/.VY\LI7&44R3:6LO]/KVKWB M'0;KM13)"39'.,%/!6@+;,&',/?;+^$8<^ 1TVX50>Z""17LHPQ'^%E8H%R)4L3F2Y&J2/ M<;]ON_HE %1B#;!(HVU]*5^X85>;**5*%,W2B^NZ#R$ 9SRH8.<>%# :U("' M#_X1I![\&$1UT@+X/(!N!_W*LIFRX-$W,3PK_+@V\L"M(-ZV=B;5:M+6PY6] M^LML1FJW1;+WIZ V"7U^%62@/CWX]>])G*;6IR2>!=E/+P-:I..^YJ^7]'6% M I^[$WO$8K%*^F[?[O[006)][@QZME-[PIK!$\BWLR!),^O/7"092&_ /4E_ MH%PO7BQ%@MP=TX/(]!]3BU<6$=%5$@O"RX .0JI;!!1L#SYU48(M-7.J%46KMX(0@'M&/F M"F^%-8?XVT9OEQO+5SINY5B%JK\AD!L@;-A;@Z MJV!.C^)D(<):Z5;UU;.?OZ)EBISX!GX%2D@+V21^ MO@>QUB&]"8!;,*_7]>,"6.Q"+G#]R'9:2\HKZ>6D(92:O$7K]>S1 U236]&0 MA68JC9V;%'%I+X"2.@4:Q!]$&%YW0.Y8_<-XT7E<,W$T6T=WZ#+\"V $& M<,'V?LR5@S%0O@ N@70ZUM]E!$ ."0>G/DC? B")(WU[FHIHQ26] *WX'9? M?_G[?XG%\O4I_>F\_K%BV>B?5JR:X;I5T^N!!:"L&J#\\7=8-6S"?(SJ#@68 M_P'8'?*J8(\%B*C@?UEB2-Y4Q]JT8J=GN^LK=H; G[?8)!N\4<6/E<<+@0'$ M4C5GD /S,,-USJ14O)#ARU*#'QVCOCW0 FG5&(.Q?"5[U, X6")327ZX,JH" MQ",^KG#YF7;_ULK$E1I!8[4Z/C,4/H-,!5 M@86(@/4Q5+TXS?1""WFL0@3@ M]!?"M+9UH+,+&1;3Z?V"O-V L!J:2KT" $]PN\3]) LZ%6R0KPF0 #CXAYF MNMXN]PORV4RQY6I9YO72.[P >Q[8GP@V,@+EB$ %$AC*I'J MB(:OJXO&S<#SV36)W-'K%$@N$O"B"/4F5%0.1DYP<6@#I?,X#WU:%0Q<61@, M)T(@U8C! !,7) UL Z]=(K>20L:W,*>0V#3-X!\V"^L@:S414[2X\*XXO ^> M52B6J7RE/U27@;,J/P1->U+DN,C\BS67[#70]_4G*-*<%P]L^Y^9HE> M6*7'Z;/[9@AB ,@TGJ\8.O3@<@^];'OV9&@0T0)$N*;?>3L0X;CV\-;L98,) M(YN>%B*,;&H)(HQL:@LFNO;8X*$Y/#SPAM&=_L-A-V^IY'?UWDBI?4;_#!/K7>1+_V&VOK=(64.B,H-@QL&OX/!#[B3 MYV\-]V\W?'\$6S\NOG](GW?WL9+ &=C.Z* E08-]W@T9'#09--7:>=NZX/N- M "7C5QS>[@WN8(U$Q@6)K&S+*(]CDAI/TBM\$42\^VP>YZF(_/3' Q$);39IJ\J2:N8E$I9D!$F!E/::X*A]O;;S.V1 M28=9X>#.<^^MBYS["ID73K\S'/1_/""'SA#GH1/GX_2AN@73L$(\#$(]3+^3 M%>*FFR;&5F_>5M]WD>*M2JL6[K<)[3ONC'OCQI6O88K6$(EABHKRRO(Z]6J.JMJ)GJHZJB^GF345H8@\N6G'IF*/EG7X/UTI[DX*?C,7 MT3G5@"(HOA=!8OV/"/.B[!C 'FLWO1-)= +XL#Y.0=9QH88*M2-I>>734C\= MET];@"U=A<+'8D\SG.N"YI+"FUN)7*()C64L5/T5K$'AE0L$H@L60'14+Z+R MMJ"J.%Y\'@%\B-YQ?B1 V_H0 :&H?:^5$:B2Q^VKOYT%"^:^'=H6@@S8 M>U)G[_LS,' H[P*_Y+77B]CBNV6=FA4VQA]]+/Z91XI]-2@V;LI/@@L96=-K MS9B+-=ED[Y%9$?TIBE =86.X7&EX*B:+;IA M%FR\_$.QI1O5U(:7\9UBERG86\$,;*\H Z+G.G) CDS-+FQC)GVJ1H9%9G)P MVJ]YD+7Z6EC5R5=EZV %>501)#BUPDK*$B256192S1K>)LY&BCZ"J3ZKJG=? M9'(1>++8I-MUAH@@9T0"#3Z,RT)8UHMQUQ[\H"KS!E0;!M<"2_-"$2QHA/42 M6]7!)X3]KAH@@M@(J"91/)L!B%!B1/ /%?BI4PP,H]<3Q4C""'IT$G3-KDZE&N'F)ZI" MXNOI%^L%;?$NLG&(;)0<>Q2EW+PCM_D=N4@1F^#J:VIEN9!FL?=-U:FNU5&# M,<8 E5:;0H=6:G=@2NWRN(0:4VIW#Z5VZT@AQ/!:KC.I.MFRX9T M^8]Y%L;QM^8=F 8WHNBQJ)+6%D?LGF&F/]B!0660!#+R4$^D61*3S[M@S:W\ M?&Q9458F)//[4M4[#&%:"9H"S9<+*LM'!DMA\[&9GG+# A\,Z.2Z,CS:'E,P M#K"BKM9WJ!_+[X(TR9= M6XD^,,(UE_Q+=''!R_H[Q?ZKD9)0@ #DFJ"VA;.(,(TW@"M?+F'O7(-8!%A1 MD%Q'>*\8#&8E2P\]E0L1A.R;7/-::'WD&,(G %>"*A?\*S!,\]1"GS,!1F2I[DJM N0UF]0[4$ %UHH9)QZ@&6P4Q)">CK' M"12@DB#]QIN!7Q8@J\[QI:PPH%)E(M9V8N^5>5K$U+K$J+#.8_!;EL$2:$85 MG5YB""./E-.+:(ZS>C^: N$TQE2"@UW6]$QS#S@FG>4ATLT"21G^1R2C.AI8 M(;"^HD15SYN_5YP,WWEUFX!%AX%/;C!4LD&3YVU]$69CJ1SBVLGU/4I%V5#B#[T+TD^U4 MJ?K 0132P"A,R3C$:_!>O @\RPL2+U\HB?+:FNN:JGI/Y7LKBT4YX65$^!A< MNJ"E^$%I0;/;I20B+BL,OJ$@)8Y2BRYVTFK:%U;@_^W9F2_=X7#@NV?>L#L[ MZ\]ZO;-)5X[/^J-^;^CTG9$_ZS]CNT:]\8_PF^,,1Z/>N*M^V,91Q&VW\GX- M0*CZFHS?B"5:).!0IX =5"$O*$ZE+^R]*F[L'8LMTL:BLN"!3"8-E)4==>V1 M*517,;FW7AY-G39W!P;JNX:Z8X]N[5AIH+X-J$_NN'5NH+X="3,VY<+W(6'Z M!NJ[ES!](]?W8<.8@JX-0OV!6=9W6NX'5-.D&:/YL#9\_WH^O/F!W=U^E:)F M2[I:#RS>C,Y =3*\;WC_P7@V?%=T_^@V MO'7MU+8-WQ73/KH-WQ5./KH-/WFW:]^5.=Y@6A9=Y?$Y>?,%97$&$6;3/$;C M[GM#N[^_SXKWZ>V;]>_3VS>KX:>W;];&3V_?K)2?WKY9-[=JWY4''W+>>0@. M#-X';[P*M[:"(%M@G=?'"E&&?8ZXS< M2=.:]LC%[!ZN:O.UF_J=8;_!VDW[=F"/W$-=U2@?H@NL]M* 5FS5 MMMJB*/=M[#56(W9OOFD3)6 GG=YPTF )6..P'@E-[\D/;:33QJ#3[74;)>K6 M>:?'[(Z^#R+!E^J-._K=6O8HR[)/]MT7?CL.@]OICXQ+^RC%>Z1DWF\!"S?2 M:<#M]"9-MAHPOO"VM_N[+ O76"]\R9]^Q$(45%^C*+2!Q6@N1,@%JP[./6[7 M,>[>"YAO*;SH]VW5;]78/SIG=3G[5OG'<(F?V &F[?6?";4K, MVC>.C]8O7558G_+$FV,Y=:S6# H:U+*JVEO416^[X]I6'7RHYV1[3F%^0+J5 M,W$;3[XAT":_<[8:98TC;>Z2Z68Q+ $7S>)$V'SZK%5^VV+ MQKSS[.9XDE'N=9#;JOR4Q[D'3J<[&!K/=T?'N,?#'_>U,M^V>\3[SL?:=<[&MH;M===>ET^ST9!.466[>51SKV M%52Y8W0HSJP$8R_8_10X-9@!UT:9)19@\'*CTX#N MFF-H!O/KPQB@E\ED8_DTGV(+2FKGN1#_CA/L6,BM4L'( MXZ:%JJQ:O:5ND!:]7?5SU+UW!D9W2H]2CULV8<%;L%K"0")L<_/ZX,I:Q-C,P;9.%3YH8@D3 V2HW2V ;HDSX338GO,;R-4(L )8 MI22.8 7QN83U)-PB5ZVG,A9!J%-I MR= BMG@,J(&U!/Y#"[0U$"&3O.0@$Y8U%+# ES \PN4 MQ? 6$#"*1.[O#1\]6)-M_;$9 ?!\R+V.>U9*M+]2I'KT0L:P)K&SNM7-4^%&2\23 MA$.9!JQ#A'(IKDG[ 7VEL-\X0N65R$C!-P6=D05,7C-8%;*#-Q>Z]SG.#3_C M,H#\2&GJR;!5\SSPYL174]VBGAF*D,^ ZU3@2UW:43UZG@P+)B>.)1@7_:)5 MYVIF*N0108W-2^68+F$'L*J6]W3>Q;KNE6MI70*5/!_V[!$';6$A(5))A<1F M00)4G5&/)D59@'+LVD!D)1(M/)Z/^_;PQF%2L9#(\T'LJ\;;#M)?@ W,M9P3 M5;'N)P&H7ERXL)X[7=?N6WI8)D0 MZ]F]@NO1"1)7, ;[;RP@V"DK!>&?.8P#J],RL++@JG^PNF#C&]S#-_B7;*@\Q\H/9%1=:15:#>CKN3.PN^H\\QX!QOOK/6D] M']C#@O0*2M6N9IKL[Q>@_W#W7$K 8P/]1S)L MZ:\T*#1777LK/MJPTLY&KEE1K,N[*)WZTRA).-SO+ M57-OMJ'D$U.\:P_J%*]]G_N8>MH)T8RU<1HRJ-Q5QKH75X =-KF#+6Z:M185 M4 IBA5:119:UM"Y?3FM6(Q@K27Q)8IPF@S%0'="J3[,0PX1>E9_8%_'"6*WL M%)80$LSNJX16EIC.V<$NV4HQK%$AM_,.'*P%T")L"6 %L.9KVA>%AYF1 M )0KH XB#/9P6)5B4BQS C2S,/K0H1>A.XM4L."L?@4F!0^!OZ;=,XSZP@ MXS!"D/C,2T!=\D*$.:\1P^+_B"\!NDEG;05\:N"!"@10$Y0S& MRNOK2^=Q'OJTQJFL+I/"DV!R1F2&XS)*I 1(,))!Q)QW0V-U1A_CNEUB M (N>PL&.<. TR1CAZ7:K2RP!%96C:%=&SS4M3E$* MPY/7*O)L'B> 7#XIJ@ 97NG:(ZL.28!4@ -)2G#!EELDS^.,#^BR1$2I4-%G="501V?J8"65 M'CA79 Z%XK)Z=A+*!ZI+IK H-M50(X-6<31H#M;"#Y*K5W*W%Z M1=(4XJA9O,^=ONW4R?\FNA^/;+=7TOV3.#G:M;GQ%ISL5N]BKZ;%KK'Q65[$ MX05RX!M0T>!2O1<>[97X_BLF2?T:BZC5&VVQ+:A=86$]'W:[=K>45C+"=4RE2A6;Z[(7W9] M.;&K"'C%;$KI"&2YW)7,-#W33791;36>6,)'^$#ASL'0M0=Z%QU4G:1X]&Y4 M7"X ]Q2=93H5&I4O6.G-EE^YJ!H2*)E(!4)2Q%H^#0/0U?@:&^S/ 3 5R 9I MFM/1G3YIBF%MF#0H0;\G[*$3]E8FDE?+(.$ X3]%E&-0 J QX#3#E(T"33H< MVPT#B?EJU91'3H;3O@+H0IR,&UHM84LT3\8H<4!7OP>F\UNWTPDFMX(YB5OE4E=!Q'*^2\ MPO0=(,O!:K8$IJFN8KPV 6[TN=/KKP;6RZ?%A0A")*5V6^B'EC0Q,DD3)FEB MOTD3=[JC"R#5!;)VC,ZG3"ADVI+ .V5@ MT=K:+2YWDBZHM+*R R[ %\=(I;YDL:Z8 (@RH@.01 :+:9ZD%%Y@0T&=/Q#Z M$/A^D.(3E"^J+E'(N0AG&$$ 12M4!"R2>*+$1@#3)^=PA[,3/(2E$U:M_55D M(2W/GLCNBCU/I(1]L!SH!'?CTL_!6@+[1TJ=ATQCEG/JC&=UY%;L=2FN:9=X M"H-+J^5&T[,:*8,'1)W$N\*8)?,E#UT86F3J64E=.>%,I6XJ\.K32IPA!=3#' M9Y:T5IJ%F2J/PN";I"1\;;D"7TD2J;,4Q(Q*P963ZN4!Z9/ERBO:_<&S5#>'21GJ*+FQ:)P1%E5L0,\4//P.5,, MAL2@;]A4C 4^?R^3(D*04*$^2$IE^0"EIS-_@R.W %SPC8AKO([!,_$7 6F! M@.[X "[IGB".)P6\JC,_03R2]+U$DRN(JF_21!5O>M..Q 8'\RE0Q*ZCG+_' M*F'R/=XR2JR/EQ%(").&J &K_5Q8PRDGIE5N@5+N"6?KZ"PX?>0<80"Q2-HH M3R2K@8I(PUY'LU#W$_Q!"JNKFAW%I?PLV2]1/9PB0F(J"D]63WTV18BR^D.,&>DHV.%WE-(^3$OV/M12=X@D6"U MZ8_K#@@&X6_CEWYZYSQX)#]?!@. V 5($ M03:=0ZM)IK5)ZB&.7Y2'++*?7DX-"31/ F!%#MM- I\ID!W/K"]XH<>OTX$1 MC(DC0B,EMBLF#)9.;RL5^T'DT MF.J2;DFVMJH%"#-)0PRRVYUM28A^3QQPWR7XFR@%S8&T8VA1V.\VV)_P4"B\ M*7KFX%'+R0#S_$_@VT$C"!ZTH('N3=$2/KK[X3MZ9[3&XM^@@GI'8*/MJ/_ M[<=-.Z;(W>SYCI.=EFJ?2:??[1Z03]H*\K[KR**EN'91 S6'Z=M/"XY)Z[3- M%^H?J*78"N9MA0O46"^ZX_&#G&YGW+PJVC>B]Z:=6DX2VB?J&I_HH'VB9GS: MIV TLMXYRH:H2@D=6_=39](9#(QS=/#.D6OW0->X#<;?GH9B:8G;,Z8)Z$J; M,0N;]WOVWDYS=V=#>]_J%@Z/.L[@P,^/6L$=;72:]@*)]CM3A]Y=]C#OK7[, MLS".O]W<>W7L-MM[=;<;K-YM[-Z?R'99N(_+G>-]?*58UC<#OLRK&_11(5Q5%!!KB-#%^#17#0.P M#MV?>>#CPG1_#2I477;X+%J2K!<4>0)WMQ^2WYC!""+DQA>?*V5^":\?J8AO M682C3&+;B2YY1%:BJ75T/+6.RLH_U165S7#Y;KV7Y;0!JH;$/5@J-9(VED&B M)A6IEP13[@QR@66_UHL,>43WJ2H.HL:+<5_8*-0#<8FO:_QQM0)LC\V#9)OJ M%@6SZE.^7("PRKB\F>[T2_B9B2!4)2<9YM49/27,/\RX!0I5$LEB5@U44>&2 M>H%,ZXUV"]JK;LBVWDK5]%27JJFW ,8"_41W==KML,Q7U4IIS30%%FG%2E)S M@3V&D1AT5[NR1FME&(#[-*5.P5P6BJHZ))*[K1041"7VJ24R-XSE!GM<7HHJ MJ$01]]54%536X%YIZZ)[Q.AJ5U@08AU/#$#-T<%B =]BO;HZ__(*%'TK@'8V M%1-"_( :S+@BC-#]=ZI$6;1^*70N%OTINUWA>T3JE=)%MO5&U=)2U;HV3YT( MKC13;>^.A30L+$)45N# "DG-U $[R"*=8U.DD\5TJ-ZCV!54C.60>[Y\3@PHEI MV35 M0BK?+MFO>H"?.NK+\S!LG*K:FAR73;Y51LB!JEXDK5&:[!RK]*&I:B& MOB'V_>9&E5Q9+L 6:ZI7&U 0%=_$MGTYJJ?* M:GRL/ ?\_BGFMK.;RKF73?"6>8)%^ZGTG.[1M$0K&KN4X%/47BXHNRQ%V,0$ M !,HEV'=5ZA8SD'BGV"!K^L2C *M3LN/02#- RQ:%2_D*H%M)OX*O5(;*. \ M#'^$%[J-"W$6=D;T,OA5)&6!>7A^H5K*>GE(O[#/D.9+J@*)<"(;9W4SG0*G M"1#:);5]BLAM,-+M-Z1>[DU)YFL-OAO8&^!')=ZRA+L(=PHSF6UAE",U3Q'Y M6UOR7-6_=-5$A>31S@RRG&;Z%F%U9L'M#["^/GD[E^P85=VBL@PUUE1-N6N% M]B&IGY!RV&[V/E'&%7TRSF/B5&0+<#<\66I,_7I'->=F@)$/!'X<%Y$4RF#G ME@ +\4U6:L8EA:!:&9M*6<>J+"25EZR[:C12EYE46J,;HV-M7?\BTJ!JAM@UBZE;P:N@+RQWWJG@CPI",\K( MKU7]*DZFUR?J(U:E#50/+RR,[DN/6KH 8JIOU_IM_2, 6D_P; K;_-4[93FJ M[#+\H\)ATSP-J)(MMJXKX@^J/09KB\NBN3V,P.'G+$%-J3;&EC7(F'FP3+G' M!@EX'C]612*Q16Y1I'&QUH0,6^7,L;Q!JGU?#2=ME7"55HXPS*H19-4KHV(; M!.DW&!N5-D5X-%ZYR2T!3W@G%BDIK!Y#EP:Y5K\B*"D)T@X^3 M5#O)*02S=@J6NA:N$F&\5@ S6"L1&4X%I6EW"1_39N9->,:P%8AX8%< I)>J MU4L^O&#UEH>9IGT06LN8&QES:^/PNN@9#F,D^;+:I$]9DVS=8O^E%1!J'*R\ M70-@27P); G/;TBY4I/G&AT6UI7@CGI-RM/O%I_J/'(VGDZ[KIB=#<1H?-:? MC<29\+K=,V<\FPR[8CJ8R+$ZJ:QWS^T-G,W?]]W:]Q\RN>C]GQS]H(Q8"X % M?X;JK[=!BGW7\Z31X]#[G[W@\BJW;!]<7P!\/8O>?/ 9<14F1$$5J%@%6+ T M-G7-_HU9[S,(P6V?53UP*RW2UW^PJ04V3ZPJ'BN)1;J#FWX'X76MFU2,L2B4 M.\('/Q //TJ%56O"DE+?,6S\F5-9<9!I\26?YO(1" N?(,+:]VQ7@3,5H-;& M8V%<4\XZI[HHL@$J!\':<\7OP0P/8>>L[6'U%/S&E]AWY(,=ZJ]H,^QS9SAT8?$!ZDR.EB*,I,P'C]J+$AP^+?:^NM2;=OODR059$T$DJ@UW MWG ;S?+\FBR*<\0!GOV?H 59!,&"6ANWG+)<*$PQU9Y1P?IH[9"CZ%>RYA82 M\.DCW6&H.Q+A-2 &T#H+J2VG:C]!<3H\*B]B@M0H2'>A+_HKI=8+:9_;'7VJ M$@6+?$'FST)U<#S4C\ZS.3=ST9OBL#[%_R,5[A8A1DZ59WE=)(?X.;C8 M,O/L'ZO&%?6)R1>JOQXIMT2>4[0GUG&-8NOHWA=@"J329W-P;0,*G(!<6WM% MM3;5D"3AV2I/\-!R!"8F1\#D"#PV1T %*YRIUQ^(V>QL,I[,SOJ]:>]L+)S) MF3<>^9X[&7N#P7@MC-''125QB.UB/B6Q)^E\\&PRZ76'S:9S[RY^T7]T_$(# M@^1;"8ZG')RX/]K>U31X&>VQ;H2J2?G]&5U0>07V( 4&*C$0LCXP# Q+#?59 M>\JI^6AT%+%ABMXK2\27& [AX+;.6=='$'Z)$*^*D&6!$+*'/0&6*1[ Y7A2 M8\D2J:5#EN9+/&A,=0->LC#($M)!].K$Y::JD1C\Y0U8&3/K7;']CY@]07T. M??7;^R)2HG[KZ*UN8?_6"U'KG/DY#_%,!P61TQ,GSN"%9#/+&?CJKQ(F7S@Q M! VH=SIT=.K1 9 SZ?5_5(XB+1V7ITQ',O6H"U^BVP\3YO%4RJ:>QZK3(W@2 M)2XZCP4?QT_P? 0/@M3)\M:@HS9Y-VB2"CX? Z@GX$#=7PZ_*2-B5"@8TY:4 M".;G/*$' 33U:-3S/2TS86ZI8-'J,1_TJ=H>.UVU;4^ M)*0 ]!I%5.8DN6<6"^:J]K?%7CJWZGKSIQY7 \ZL_./'_2.^MWQ^)L M.N[)L['?G_6C^$^GG[]^^/#QZS_>??[P^_N/GW\[_?KAX^]GX]&P M.VC63_V>K@ZX2NO#!PI9NJ]IM59EN0UKV;M6VH3>+2,%SJ_R7(3DODGDEO1L M,'&[_?&!!@F<1P<)" Y6!1!/.3QPK]R%-)]28A@>UZK3H)" B/9.(L\QLAWC MA7+*@J]ZB:&X3/. CH "BNGK_",26)@YE_"!O,YCXU17?65<-V IB4IS_5#BE;="H+,(]2&78X M ;B\?:$PIE,G4C(W*0<0Z"4 8/'U6BXIP)ELY^=X3I&I:T9\;Q ]PL+N5&ZB M3@\NT^WXNB#LH7)($=<;W:L$3E@GVAG6>4 ''&K 3*5JIW1D(D(P2/QK=>U4 M^D_!P7S NFX0J8K;\:P7XPG+G!!)]V:+K'8^A]*^2H4;0407E)O7152RP6V*@LG%?,+"_572FON#YT*>D&E:2S M^;*D @5\,35)7(%#=XTYVN-B33($M$-6DVQ9(F MOO5G+A)UHXA<8WW-FQU>7WH>,5/BTZ,(BJ5$)YK4HM MN9"FE*FM#YWQ1A;/K]BC1BGTON*NU]9[XO=-8;#4:':D&?/MJ$1@A8"@0[MYY;:BM_ MB K.T-*:,UR#B%0#_9!*4EETD[8: >]8UW&NKW]Z(,YG.=I6E+VH);.N@51F M^\(8GT#^J2ADQ\*=N]W7)6$@BJNXH@>^B M,@>E3'$H\JWTY&(J$WY*24SX+U]QY9LP:T'&VO6?SF:C#HT]EAO*%+2MTU+0 M4"(PI\A$RKBF:"JJ]%)K\.5 O(M!QJ/62>4#F%VFKYHM"IN43!04@=#KGO6'W>[9M#_QSGKCD=^=N6/1ZPW6I*#[KPB, MNB#%[$O_BPAE&L_>_0FNWG49ZSY0N>@^6BQ686(14%#%,EBJ9P!(Q_]BOU>% M(9YT#.+^J/TL,5!6@K8.\ + YC0,IOT]CI[$;=D'" :\@)E8GU2ZYV;F-+2# M62T1NT0L1MT):OGNB,\*?XDQ$94RA,!'(HOD!1H)ROB@GY6=\2/[HGCQ2,"J M8^\;FCLZVU;58*#K0)XJ%+#$OQR[6R]GDLY%PNBBH%&>T>WGXCY0Q&/;UI$9*6132BG(T:ZBJ&<^F"F)<4\$/?3^D M])/UZLD?T[L$H((7Q+>,9]7'; M JFTG:TQ64[>ZQ!)043F*MB/U7--KO6@= M2E%K%7DVCQ-*KI]13;0"R/!*UQY9=4@"I +TY+@ BB>7U;3M=0RM@K)8J].U M>QLQQ296.9)OW^QH4XR@\BA%FQ8Y'SG!2)F@&A\3>[QQ*KJ07EP'X5MA\/AS MU[5'(_1!^<':=935#3X%,7EW C_#J81.6>^&"KZM,U E]0@O=I=QEG@I(WV% MCX+H>'$.;>E(GL<9!RZR1$2IJEA(EQB7F/R?99PL4BQYVF =]\B+H4@(&5FIL7ZV# M\/8!V1LJN%22>]=V5]B38UXK$3&6)7IB:D%L'W=TD@CM"N';WUG;.%2JMC(\G[7@0JZ&F_R8E\XHE MT27 Z4X!H(0R3:P?%=,T#O$(9+N[QH:&CSW5W:Y8_FX8C-= <-M!.Q]4 MK/^W.%O?LO.^I^M9A@AV201WN*M/@>WO\A0-'SP!/KC+-VIDN]]SJ?8KIG#P MGG_/R]SA>,;_?J$SI,:DPI/"_5U.P-YQ_QN72]R$_89@<)?YO1>,U_=F+-H6 M,O(AP,#8N88TC/5KK%_#'<=F$^L["#[;"T)5$BMO\S5F'QEZ. 0[F9T@1CU> M/.!/OXEK_O#_I/KF%VG,9F,V&V[?K]F\M8B(D?D;J,"+0_SR;\_<9X^%1]<> MM9H@3CDM6AD!F!MM*.%)68/3,/!"I>Q/HRC&*@?*-OP4BNA@PJ.'0 ZM-P97 MG -J^*M-0]D\41RM*:@N<:@,"6=Y95'I/4O?LVK-EC]1I23#XTV;@'LF@*8< MPD(>& K9HGEXP,3R203:6-":@NC'T$O31N0!$TF<:/>";K"GU@OG1T,@39N5 M1T0@QKR\P[PL[N^_^HOG23F;[98%_BFB7"3*:53%(4[XG]I/N@Y! RR^[RUK MY#5F(.Y^/Q4.I=O>U3(%/:R.4*D@<9]2']; [8 D:SJ$O&],/ZH^2 -'ZOO> M]_/&#L:/@;;'L)7QL9%V ;('PV%G-'": M0S6;F/M&]:-5U@$<=+^7T^0F8[/^FSL^3(>R:=/RX+AR[':ZCGL\J0C'FH?9 MG(5X>"0ZM+NC@Z;0IFV_@T/AI#/N3@Y>T#1MU1T<&OOC?F?4FS1MPAV&MCC, M<.%O94'ONOU6^<&$"A\2*MQCK'\[7 TN>&_2(%.W@Q):%$K<-\7L+M2X[YUN MQ?8<'!MK[" 4>72$ !9L;]CI.PW&KXZ-&&X,51X=,?0'H#+[#4:M32BSM7M[ MF@[JIDS*'C"N'^=8+_U@.=<9.IVATS]H+._-LMTW-6S+CMWWOIJW6K'1RT'3 M>.,FZM'A>&L&Z8'B>5,BYC'@>4NVYF%H+#(L7U*/EJTL[.R>__?05C'?MSA- MOI5OL(T2D1>NX204UW&>O9H%5]*O5GO5?: 8Z'6#7(M#_FV%A+YKT2OT1QP MZ[V9 JDE49WJ*"N]OJ85LES+_'[LJ-W;'2FWHN!FG9:1%;*JZV@Z,.B5,IH[+S8KW+HUVP MRRY8I:T]#.F>)'6G*=2>H$"#^/K(^+*)CFZ8Y/V6@"(569#.KF&C(LNS.+FV9A(6 M),(.?25IZC &]K R<54,A%VQXBGPBU"M"I. NGO&W%/K0J89_3G#IN)9$GC8 M(9%[J8I+D?CR<0+N*5T3*25VM8?Z 7'?A_>W8V],5 3D;=,W?B=L_ZWF!T-G&&H[-1SW>E M[PVGW5GO&:^#W_B0R<7PW=4<6"Q+ST;C86_DJ =VWCH,&6WK5'(X+L]=V&AVYMNZ!8Q_BLD=VKW> RP;%,+[Q!..6T1]X4/(( M8FQ&2(1!)+5$G]QF1]QJ/$V^QWC:&IJ?!H2^4S@\#2 9,MI04*-W5T$-?8;; M ,^?)"F&+S:M(?' MY@DH]7?4-*9PWQ0FN+#D/6LX[%7\-0W(AIIN5/3E4=/=6YEZ25"$HTM_TU#. M]U .^S-W48[Z'4-,1T961IRUD"B5M_ITJ5*9/7'2%%W"@-+:1)QW6S@EE;;" MNP=--UJ-G6]*8Z@>PIVL!Q*!X]K.H9NWON7,NG+';?#!-^Q8Z$E.4NF= )(3 MX66O)(OQ6C+#?_V9Q]GK.^?GQUX_4T<6\RQ;OGKY\O+RTH8)[//XXN5IXLV# M"YF^E/ZY2%[Z(A,OG6YO,!GW7J*L&4^Z@^'P9#(ZZ7:=GC.QLZNL@02 .\]( MOD@O!E?I="&!S'TZ8/TLZ1#7M]X@6F?DV:"Y5'J&Q7&^A(?/@Q3@%V5KARN' MQA6W9#%MF4T>'A#>"P@.5MX]),#4,&H?$33?#Q!ZO=Z)V^^ZCM'K/=L]3#HW M>KVU>GT">KW;[SJ[TNLKNIOT._POH_PBWRK:+;E.QW(FD['1WL>OO0]4JAGM M?3<0D(6M]\#\JNI%]^2_C1[OV;W#I'BCQ]NFQYUN?]0?3D"#=P=C=_Q2N(X[ MZ;O#_Y57)[VSGCW/%BW0ZO_,=6,ESLKO&:U^_%K]0&6IW P%9V&CU-8KO M'R;%&ZW>.JT.:GTXF#A#QW5[_<%+X0R!X$:#[IDKKWJ^TQ*U7CKK753KSM"H M]>-7ZR;4?K1J?0,_-W;3Y;L0-(=)>0Z0[ M&BI#9.2,QF?.3NV0C5D OUR'XC+E:Y2+69QDUI?K-).+U/K7E],.BX4/D6<; MH\08)>W'K#%*;C1*BM+8[F#O9LF*Q?'430W8RX&RGK$UMF]KI/ M<-UN=]#OCU]F"]=U!P/'=\_DE=,]V9G% 58&H)$S"M'J^+N,L(X,6!^AQ'HI MI^<)UE"),FLJLTNL"[3)",'41)O>_RH3NJQF_;\XC\X[*H BR'Q1G4(M9XSB MS76-Q7+T%LOARDUCLMP-A(*A)\S0>[97+&.JH)/@V,Y?#Y/GC*VR75ME%ER= M()]V>SWG2E[UG'VQQG\*A.LU);F(J+*<%^DAX^K M?D%=5]]Y^"*2J8AD>O+Q*I37UJE'91+!EG*-17'L%L4V0=!&*C#&1]- >,*& M@6L, V,8W,LP7S[]:'Z(T$YBP]S;V) M8J/[C.XSNL_HOBWIOC>GOQK==X2Z[XT(O3SD(.JO0?1MBA>^C"8TFM!H0J,) MC2;^2=>',;)J[]TZ?]>ZQ&75QN&HZGM(4RED#NP8>1IG/@R>17%D2Q M:HD\BZVNU<5Y7\+$^K_-(+>.N6EM3'6Q;AJ'_NL;>H_\U;)(+_C67";R,LCF M]D\OIS\W6.KSO@N$M?S5>I\G49#.=[:<1U!Z2Y;!-%2A8R^4(@%09O,5ANGA M)'7R;V8/-XH1QU623/T/INSU*JNF__[G?]R+"RO;4@SIDN0\ER?31(IO)V(& M,[\2X:6X3K7"G=A]I^#&KEX6 L)"(WWR@U7Y7/)E93T+<752@=F*04VOZ>\2 M%A/JRS5)\6QEW$)R@3X8UH57W['[6\)526^L8DK,_"34C=^_?(V]3==[Z?.M M%W:_HL3G#B9 !E&6KEVMO958ZY#>!$!A!?[?GIW)X:SG^!-YYG[V>Y_6\H3=[QK/R&U\^_/WWTZ__^OSNR]G('8T'(_7KENG_'K*N M7%G#\NTANGUM73L5@54/M#=[T1-)Y)]YD%"M^K2XVRV]/ %J@6G? M77ES$8$_HRYX.Y->OT,/?9;G09HE.-16)_(4=$PV#U(8>(GU[F&: MJ;2P6C[\$$=6 --,Y5R$,VMZ30.!;)*)>B!#]91'\!*-!RI^'B>P,]_>&8 > MHS3(-"M$+HE'%+>A6*;RE?Y070;.JH03\JG'_*T5#$E#-&_T%RP*Z9N:Q*P8 MN^J9=9V4)7IAA>%%V[R'9=T?V9/139;UB@"N#(Y.\"R,+S7(]-]D&[UB[7() M0+I3J!>_BVD:AWFFS,.MB_*-_,P/PH\/,B34?^_IRO3M;M_ >X?P!@(?&X W M!/"'Q'3O%"V[C>#>'+#]GL@%2'[\\F_/W&=WASU=NWMC*&QW%>5QEE<6Z.; MW3DI&UD^S)]:=U3)?(-$!JZ-Q8 MU1F[2;X-$NEEE-?X_8(M;A;5.1OD-Q=8WVNB& M#PP?M)L/C#5NK/&CML;_F8>!M+[8UI>YD+.9,<>-I#X^&5X,S%D,2YH=&W= M6OM3VSH6_E>TZ=Q;F$GB/*"4A#+3IF$N,VWITK"/'V5;QAILRU>2$[)__7Y' MTZZ8]GH\F_OX[]JE\O/GPZ';%&*PC^V1\% MP3D]9;2%AI,W%\%"S^>ME0Q?/C MHUA.F;'S3+QKY%Q?RJ)E53GH=TH[Q,@ W3=DKELS&=MTT.UT?AN6/(YE<=G* M1&+1TNX=KMJTO$Q7C3V0N#/LB9NQSW;W M<&C%M6WQ3%YB-6H=>I,,(,SH?[?GOY *X88*,S]+J+(8G>/K5(;2_OZJ^Z8S M[&/JHR"$,T_PA94?C\\GIR>GH_>3T[ L[.V&C/T[')VS\K_'H M8G+ZCS&:T#L^_Y5[>)+UOU;:5!SN;17[)B(B3XU$I\=4PFPJV#>N0UY X;/K M3,S9^\A23Z_3Z?WL;=Z_J=,F!1V$H'&;?8)R318);64RA\;<#GZF4AM^W'\# M$8>&+&(@,6BYEOL5[[:]?7_D\Y2E?"J8%E,I9@BO-I6&_5EQ#2)D<[272@.C M@ITHG?LAW4[K[X3:2.4)=7Z;&RMRPRZ^O6_6DQ91>[B]=NL]@]T^<..2$4NHIF)L72DA@U)N;&TN!>[/)XDR2J# )@@P)D;CGC](FX25F2 MJ9E94$6+2VFLIFC.J='K#2V;:XB;A3*WM-UBT/>> ?3)AH5^?_6VUST8FAK6 M.GF0LZ@DD?BY8W:=^4X9U\(!!>5YDP==3N\U9W?T=X M5;K[L?_E?TK*^X6G"RW"R)776.11)86>MEJRL5J"U6C'-PD&"4I"6YEI74?C MF._^.&MB85!DP6XNVCZ,;),20<0K\_@A%)%#P98K^1BO*HT)X+-3:5PD@)0H MW#Q4X:QBR'H<\F4_$*^#_ JP9AVCJ%,BGD 7HS(9N^.9J4(C8\FUI U(GXI< M9"QHILI0>G".8EPN<7$#ARHHA&.2&U2B^)!1E7$*=]B64V*59C#")ZWU7(MO MH2!!1"2,%_%61J":3.&SD^G1_GN+4X_W_$=3"W2D-EI7&&!="4*:-( MZ=@IX J82U$@ 6;@%WI$2<0E$11GGD,@N"P1S+:91=$SL$A,>58YOR43BR2A M8]L4QC%W5 ++//>(..1_WET<.-)@(&*(\25(J"I[OP:/B91\*2VHODH>KDM9 MN*C)/>AH:.*'5&=SUWXO^$F$'I1451I0F M5A^ MQZRY,A;M] P"1;74:]=KE7*S M3'P4!QSS1.P"I+-'';SF.$-=B:P^:MV0;_ZPB;:6;;Y:WO^5U;)[,K&D:G/E ML11 UNFR"M/)E>H("<3I"$ GBD@* MX%/GCF5).A/\BI*!S^,N';@*Q#TD69QBGX1Z73WZH]@=3LYC##1BZ>/W,J2N M6S $,*.\:/J,9)".3)7#@H# ;::.K7>>][?6_Y^Q5J6DDF@X4!.V%\[M@9Y[ ML%3#W/0Q6193E4T%!>:"7];/QW0=*41>9FHNT#M+E8\-?(-$ /U9LE;;P>%N M8*RK7FM<0F L="M26<9+(P:++^L0D-%JZ]-]"BV%3=0&]ACPRJI%@[^K<2T; M.!&2F_QHOV*85:),KZ8;]593WC M?K]]\-OZS46]].(68^V^:&UN,A\],QJD,@:7EK];,\W+00C?NFK-8+('[Z"6 M_3S$.;*R8DA783BDTXXWN47.VX<$[DZ?9P22-1?7_BK MN_K3QM\!(%36JKS>Y-X;=U_WRT#PROB%;^'QE\ AL)J\Y%D\XB5,\!&Q<<#> MXS":^3#:.V@RNO3VVWLRM>KP50/=+:^9>VK#7G7Y0'%VVXBPB6X((.5F M'*#O VFQLX@NG7'\EV1)5VF-4BD2-KX6444QCIWY(\51(&\R)'"I?1$@7CRD M/2F(W?>^ABLA:G_NOUB^?.B=A_]YF_XS7=8Q(8^N+K6JBIAJ+J4'"X*N&6&S MHU:S=T/MSD;]5;\9LU&!;;8MW\0I482V?!+E"78ZX%,EX]K,!X?MO>[2E7Q; MQ[V\X]_P<:\,'?\74$L#!!0 ( ,F"FU1CS"TTMP@ "HE 7 9FEX M+3(P,C(P,S,Q>&5X,S%D,BYH=&WM6FU3&SD2_BM:4KLA51Z/7R !FU!%'+AU M50(<<6[K/FIF-(R*F=&LI+'Q_?I[6AH;FY<%-L"R=9>J&%MJ2:WNIY]NC6;O MIR X+#->QB)AOTZ^?F&)BNM"E);%6G"+UIFT&9NHJN(E^RJTEGG./FF9G O& M=MO=K7:GO?L^"/;W,-6H&:/* =L*>Q_"7J?78YV=07=[L-UCIU_9YO?)Z)V3 M_GPRFOS[]-"O>OK]TY?QB&T$8?A;?Q2&GR>??0>F[[*)YJ615JJ2YV%X>+S! M-C)KJT$8SF:S]JS?5OH\G)R%F2WRK3!7RHAV8I.-_3UJP:?@R?Y>(2QG<<:U M$?;CQO?)4; #"2MM+O;WPL5?+QNI9+Z_E\@I,W:>BX\;!=?GL@RLJ@;]3F6' M&!FB^YK,93"3B2'S^>#M1!;"L&,Q8V>JX.7;EF_! M7R.T3-\.G;21_Q&8&AO,92F"3'@]V]W=H167-N"Y/,=JU#KT)AE F-'_;L]_ M(16B-15F?I9(Y0DZ#R\S&4G[RYON^\ZPWVWW]L((QJQ>0O$8P!9Z1?/[E!T= MGDW&1^/1P61\ M5K%O(B;P-)[H])A*F;?M#?PCGV.6 M\:E@6DREF(%?;28-^[WF&DC(YVBOE(:32G:D=.&'=#O!/\EM(U6DU/EM;JPH M#/O^[:#53%K&[>'KM5OO">SVB1N7C5@Q9Q>EFN4B(>0X\S5&2Q0V62KD.^R& MRY+Q9U@3GAOQ8PM>%Y21%8P/N&&\(1Z:0F,QB?F MVM+ 7N(2>8LDZAP"0(."R]QRQND3 M-PME;FC[BIV^]01.GZQ9Z)^,>-:.$?! M\#+*!1F4": CRJ7): 2)%> *X@OZG4@3Y\K4&$]%PXO48B6**$IN9[5N3 -:_=YT-W>%%Z5[G;B?_F?DA)_Z>%"BS *Y144 M>:^20H];+5U;+<5JM./K (,$):$7S+3;[?X-V/BVVX#C$+6QSY\ .8DPJ+1@ M.\>X]WNW1YU6M,0'B=BJ-8P-(B=+-0U7.%8^L'UANBOG-9J>(HZ)3@%NAB5R\2=T4P=&9E(KB5M0/ITY-BQI)EJ0RG"!8MQ M^<1Q!TY64 AG)3>H0@$BXSKG1'G8EE/B*M5@A$]G D1%X"41%&D>1P"YK$!JKQU)\1,@24QY7KOX)3.+-*4SW!0&,K=4!K#?=0T>6)L.[GELQ\ CNH%2CXKC6Y(057K]EUD(9BW9Z*(&Y M3(R)FG,IV[QC2 HT(:JO23>*H\@5[K1%![&R7NKUSFN5<;-,@L0'#GTB<43I M[-&0V!QGJ@N1-T>O:_*M'S;1"R/NL=7S]E]9/;LG%4NHMJZBEDAD%2Y7 4P. M?T12O%'G++7CJ'6LTF:9AUP#IBQP4K="_ %%1@J9COH3"?W<))L %1C)$./A M+U5_2^4QG2:I9I"PNMT+*!31BP%?-3DD&6).A/\ M@I*"S^DN+;AJQ#TX69QL'^7YIIKTQ[-; ITG&&C$,L[O1$E3PV (7(U2H^4S MDT%:,G4!"\(-;C,-O][Z#.#OD'6>HG:EY))J!%(+]A7/]HH=: M5JYM-IA[E/]QPS_+IULHO=!S@0#_*-\FB_8I42X29G,+8%75S+C=;>^\_WGU M3J-9>W&_L7*3M#(YV8\>)@TRF0!.R]_!3/-J$"' +H(9;';O[=2RGTWB1K!@A-R&Y"8XI,"Y(?F )E11"#CB&Z?LUWPR)_!S2L;?TSLN2 M'51:YCZA]CZT&+T7\0->IOA^;2Z^YK<(+I+K1$#?!])B:[%[#T#$-;$9^Q<. M$.Q4HSJD^'&%URB3(F5'R_1^XD\9>Z&\#H709?D%8;PXQ3V*U.YZI\-5$TWD M]E^,M^][+^)/;]-_9LN2)N+QQ;E6=9E0^:7T8 '8%2.L=S1J]JZIW5DKQ9JW M9]:*L?6VY=LZ%>K1P&=4GF*G SY5,FG,_&&WO=5=AI9OZ[@7?/Q;0.ZUHOW_ M E!+ P04 " #)@IM4B\X+OE4& C' %P &9I>"TR,#(R,#,S,7AE M>#,R9#$N:'1M[5E[4]LX$/\J>^FTI9WXE1 >3F F#6'*#*\2,W?]4['E6%/' MP<1F,WFGN@[-1\/E\;'8]O_QP?#2"EN4X?W9' MCG,0')@!7-Z#0)"L8)+QC*2.,SYM02N1,O<=9[EM@T%_Q=4L/AM7W,7[&^*2Z."* MP)FB,?.G$#S$P*:B)OE]PH[&%\'1X=%H&!R=G6*47DPNAZ*<&-K;UNSWW.8@\G,#PX.P_&!\_%T#\4UPU;[[I;<'8(P</XF"+(M0.;^[E?_;N3W*(.191D.54TSB MEPF%3PLBT##I"BYHSH4$'L.(SV-U.UD5DLX+N)P,VT:IHRRT84/->_-JI]-Q M^\B*M6.EG[S^.RP.<,C%O Q*U_H$N)+>Z*O9""A*&\$)$6$"7:\-JHJT@100 ML[2J2(I_0L.%P 2(!B)9!.-KS.X9UB7<<*[*9IUY8KRP#J=RBPD14Q2LL,ZN M4[J"8:C=H2*IC>-$^H\92XV2IH.I'EW6=\-+#V!BLHTZOW(-T 9E&,:+%&,R M1)NG*@1NPD+0KPLFJ$(QA3).PY1>=X-@# KP>AO1.V/^'!<(R31%=U=67D?6 M3525IO9VNYM]%0S/V-"=WV1HEN'1G!.=#C S2()R1DC5-JJ\0)A*#3F>$V7P MMAHFB!%Q&NI*4G1'D:,'BK:>%;,,T::BXX*11B_Z9"'7(M4&YCD5>LOBUK&R MM<4UZI+*6Y7IIUQ$5%@A3U.2%]2O;NI65G8I#:PPE%(&I2UM:,Q,%I)7!(// M-*7A"N6L)H93E!HB:X&N)0C:=#%1 %-4.4+_V$11@O-\_64I#+J0M*_P[VV-'^T0-*[L8V;BX!4K$%&F3*XJC5O[*J6[W?[ 4:RF MOAJ\7EYE]" /;';MGO?B@J?_UA9IW#@KM.OB )(TB_FF.6M$!,MLC9 M4\/E_QM%KA>Y7N2Z3ZX:D/MYR>QU+:J@@J;@8TU8.O\& MEFQBQ$1 QHN$1"B.% O:P@XLY6*O55:8%J@=]UI>"_3$O5:G9[NO6S=M%@F_ MS 1?9)&E)_I596H^U6#P78DT>K6W4%I3[?R,9[1AZ*I_4NU6ZY$+0;/+[MG= M.WVVH34"X?VOM];F.D1[SU0_S;&3Q*XX->TN*V IF,3V%)5&N*D_QI2O-"*8 MKNZ^&4I( 5.*_+G@5TR].I.\WC?K&KQ4WVVFZN5(V<7C2K=YXH7(6)&L%WC( M"S8!3!9*U#B&18X4)2LMI%V#_-_[F%$/ZNZ3=37WO:3^&:A7ZVP2G]K^/U!+ P04 " #)@IM4_*+:<6<& ('@ %P &9I>"TR M,#(R,#,S,7AE>#,R9#(N:'1M[5E[4]LX$/\J>^FTI9WX$8>G$YA)0[@R4P@E MYGK]4['E6%/;G'U MYMWI$%J&97WH#BWKV#LN&G#X#GB"I#F3C*0M:D929:UF+Q<)<=$TN M9I9W:44RB;>MF/.'SAC8X?"]#?Y-<-K _L M71B?@/=V!)/!Y9O!^6ABC/]\-_H(@Z&'+0678]O.ZP=1D*4!*N=V=[-_6K>G M*?@\3:FO8DH1^&5$X?V<" 0F7L(ES;B0P$,8\B14KY-E+FF2P]5DT"Z4.DU] M$[94OQ?/]AW'[B$KYHZE_NKT7F%R@!,NDM(I;>,]X$AZHL_%1$!1V@#.B/ C MZ';:H+)(&T@.(8NKC*3X)]2?"PR "!!) QC=8'1/,2_AC G+H%J-4G M,Y5&Z\R3PBIK]RJGF! Q)2G-C?%-3)UL9U(]U?Z5B/%:>>J>YOQ M57?3#1BHS$*='WEZB$'IEN$\1A_U$?-8N<3*303]/&>"JJHF5^ TH.QTMPCZ MI(#.SE;PJH _PP%\,HW1^A7*:T];>5D)=>>@N]U3SO"(@79^$M LQ:6:$!T> M,%)(@G(&2-48558@3(6*#->) KRMF@G6C-@-=<4U@@T96B!OZU[A:NW@@(&N M9O3*0JYYK 'F&15ZRGQC69D:<5V%266M"OHI%P$5AL_CF&0Y=:N7.LH*EQ)@ M55,I95#:$L,"9C*7O"(4]9JF-$RAC-6LZ12E5J&U0.<6+.)TUY/J>7<57JM%8VUP3D.&,9\X48L0']9 M?1L+03)WBC7[)V.!F-U9B*[:R33G\5S2GJJ'-S7^98N@64HH[L8\14]LO&8Y M5I@QD\M*X]:1"O%VM]>W%&N1;XOZO7S*X%X6V-XS'>?) K_* I84:H'\G,7P M$!@<8U!S89#AKK@LZ?:*\#',(FNSA&I8_+]BY49ZU2Q?]_W[>OMW>8-:WX_-%3;L M.T53LF8@4.\NDZB:K[?\WUY"]RVVZ3*6SO)5P'CP$'=/,S_)]237DUQ/70 C7C8:O3 MWQL.7LF/;SUFKO3/Q/,\'G:6#HCFY5<32_:GN;VQ+I+8FY MB](6-8R;\I0V@*XVQ6H/W?K%";UY=+)C=F\=GA2TAB.\_O'SDN(Y0+QGZI"$ M"X;#8WVCSS!8#@O!I*0I*HU["'WC5IY3!3!=WC[NBT@.4XK\F>#73)V/2EX_ M#-&UU$)=SDW5B5=Y-(,C;?*$W&JN[4W0?;JMYU$_$]!7QMNQJ)NU?,&H0O+AYG0VR[^-#WZ&U!+ 0(4 Q0 M ( ,F"FU0:H5]/,!, ,') 0 " 0 !F:7@M,C R M,C S,S$N>'-D4$L! A0#% @ R8*;5&_0RA-9$ $?8 !0 M ( !7A, &9I>"TR,#(R,#,S,5]C86PN>&UL4$L! A0#% @ R8*; M5)<=F!0'- ;S(# !0 ( !Z2, &9I>"TR,#(R,#,S,5]D M968N>&UL4$L! A0#% @ R8*;5/(;!T11=P 95<' !0 M ( !(E@ &9I>"TR,#(R,#,S,5]L86(N>&UL4$L! A0#% @ R8*;5&01 M #(?2 ]C % !0 ( !I<\ &9I>"TR,#(R,#,S,5]P&UL4$L! A0#% @ R8*;5&XFM &-^0$ Q+$6 !0 ( ! M]A"TR,#(R,#,S,7@Q,'$N:'1M4$L! A0#% @ R8*;5+LP:RVJ M" !B4 !< ( !M1$# &9I>"TR,#(R,#,S,7AE>#,Q9#$N M:'1M4$L! A0#% @ R8*;5&/,+32W" *B4 !< ( ! ME!H# &9I>"TR,#(R,#,S,7AE>#,Q9#(N:'1M4$L! A0#% @ R8*;5(O. M"[Y5!@ (QP !< ( !@",# &9I>"TR,#(R,#,S,7AE>#,R M9#$N:'1M4$L! A0#% @ R8*;5/RBVG%G!@ "!X !< M ( !"BH# &9I>"TR,#(R,#,S,7AE>#,R9#(N:'1M4$L%!@ * H G ( ' *8P P $! end