0000950170-24-025375.txt : 20240305 0000950170-24-025375.hdr.sgml : 20240305 20240305070217 ACCESSION NUMBER: 0000950170-24-025375 CONFORMED SUBMISSION TYPE: 8-K PUBLIC DOCUMENT COUNT: 14 CONFORMED PERIOD OF REPORT: 20240305 ITEM INFORMATION: Results of Operations and Financial Condition ITEM INFORMATION: Financial Statements and Exhibits FILED AS OF DATE: 20240305 DATE AS OF CHANGE: 20240305 FILER: COMPANY DATA: COMPANY CONFORMED NAME: CECO ENVIRONMENTAL CORP CENTRAL INDEX KEY: 0000003197 STANDARD INDUSTRIAL CLASSIFICATION: INDUSTRIAL & COMMERCIAL FANS & BLOWERS & AIR PURIFYING EQUIP [3564] ORGANIZATION NAME: 06 Technology IRS NUMBER: 132566064 STATE OF INCORPORATION: DE FISCAL YEAR END: 1231 FILING VALUES: FORM TYPE: 8-K SEC ACT: 1934 Act SEC FILE NUMBER: 000-07099 FILM NUMBER: 24718240 BUSINESS ADDRESS: STREET 1: 14651 NORTH DALLAS PARKWAY STREET 2: SUITE 500 CITY: DALLAS STATE: TX ZIP: 75254 BUSINESS PHONE: (513) 458-2600 MAIL ADDRESS: STREET 1: 4625 RED BANK ROAD STREET 2: SUITE 200 CITY: CINCINNATI STATE: OH ZIP: 45227 FORMER COMPANY: FORMER CONFORMED NAME: API ENTERPRISES INC DATE OF NAME CHANGE: 19920703 FORMER COMPANY: FORMER CONFORMED NAME: ALARM PRODUCTS INTERNATIONAL INC DATE OF NAME CHANGE: 19851210 8-K 1 ceco-20240305.htm 8-K 8-K
0000003197false00000031972024-03-052024-03-05

 

UNITED STATES

SECURITIES AND EXCHANGE COMMISSION

Washington, D.C. 20549

FORM 8-K

CURRENT REPORT

Pursuant to Section 13 or 15(d)

of the Securities Exchange Act of 1934

Date of Report (Date of earliest event reported): March 5, 2024

CECO ENVIRONMENTAL CORP.

(Exact Name of registrant as specified in its charter)

Delaware

000-7099

13-2566064

(State or other jurisdiction

of incorporation)

(Commission

File Number)

(IRS Employer

Identification No.)

14651 North Dallas Parkway

Suite 500

Dallas, TX

75254

(Address of principal executive offices)

(Zip Code)

Registrant’s telephone number, including area code: (214) 357-6181

Check the appropriate box below if the Form 8-K filing is intended to simultaneously satisfy the filing obligation of the registrant under any of the following provisions:

Written communications pursuant to Rule 425 under the Securities Act (17 CFR 230.425)

Soliciting material pursuant to Rule 14a-12 under the Exchange Act (17 CFR 240.14a-12)

Pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act (17 CFR 240.14d-2(b))

Pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act (17 CFR 240.13e-4(c))

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

Title of each class

Trading Symbol

Name of each exchange on which registered

Common Stock, par value $0.01 per share

CECO

The NASDAQ Stock Market LLC

Indicate by check mark whether the registrant is an emerging growth company as defined in Rule 405 of the Securities Act of 1933 (§ 230.405 of this chapter) or Rule 12b-2 of the Securities Exchange Act of 1934 (§ 240.12b-2 of this chapter).

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.

 


Item 2.02. Results of Operations and Financial Condition.

On March 5, 2024, CECO Environmental Corp. (the “Company”) issued a press release announcing its financial results for the fourth quarter and year ended December 31, 2023. A copy of the press release is furnished as Exhibit 99.1 to this report and is incorporated herein by reference.

The information in this Item 2.02, including the exhibit, shall not be deemed “filed” for purposes of Section 18 of the Securities Exchange Act of 1934, as amended (the “Exchange Act”), or incorporated by reference in any filing under the Securities Act of 1933, as amended, or the Exchange Act, except as shall be expressly set forth by specific reference in such filing.

Item 9.01. Financial Statements and Exhibits.

(d) Exhibits

Exhibit
Number

Exhibit Title

 

 

99.1

 

104

 

 

 

 

Press Release, CECO Environmental Reports Fourth Quarter and Full Year 2023 Results

 

Cover Page Interactive Data File (embedded within the Inline XBRL document).

 

 

 

 

 


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 hereunto duly authorized.

 

 

Date: March 5, 2024

 

CECO Environmental Corp.

 

 

 

 

 

 

By:

/s/ Kiril Kovachev

 

 

 

Kiril Kovachev

 

 

 

Chief Accounting Officer

 


EX-99.1 2 ceco-ex99_1.htm EX-99.1 EX-99.1

img161054807_0.jpg
 

CECO ENVIRONMENTAL REPORTS FOURTH QUARTER AND FULL YEAR 2023 RESULTS

Reports Q4 and Full Year Earnings with Multiple Financial Records

Company Raises Full Year 2024 Guidance

DALLAS (March 5, 2024) -- CECO Environmental Corp. (Nasdaq: CECO) ("CECO"), a leading environmentally focused, diversified industrial company whose solutions protect people, the environment, and industrial equipment, today reported its financial results for the fourth quarter and full year results of 2023.

Highlights for the Quarter(1)

Orders of $128.3 million
Backlog of $370.9 million, up 19 percent
Revenue of $153.7 million, up 32 percent
Net income of $3.9 million, down 53 percent; non-GAAP net income of $10.1 million, up 36 percent
GAAP EPS (diluted) of $0.11; non-GAAP EPS (diluted) of $0.28
Adjusted EBITDA of $19.4 million, up 49 percent
Free cash flow of $12.2 million, up 36 percent

 

Highlights for the Year(1)

Orders of $582.8 million, up 11 percent
Revenue of $544.8 million, up 29 percent
Net income of $12.9 million, down 26 percent; non-GAAP net income of $26.6 million, up 3 percent
GAAP EPS (diluted) of $0.37; non-GAAP EPS (diluted) of $0.75
Adjusted EBITDA of $57.7 million, up 37 percent
Free cash flow of $36.2 million, up 33 percent


(1) All comparisons are versus the comparable prior year period, unless otherwise stated.

Reconciliations of GAAP (reported) to non-GAAP measures are in the attached financial tables.

 

“We continued to deliver successful results during the fourth quarter as our operating model produced record-breaking revenues, gross profits and adjusted EBITDA as well as strong free cash flow. We exit 2023 with a strong backlog and enter 2024 with a significant sales pursuit pipeline,” said CECO Chief Executive Officer, Todd Gleason. “I am pleased our results continue to be driven by balanced contributions from across our portfolio and that our growth continues to be sustained by double-digit organic sales increases, supported by accretive, programmatic M&A execution.”

Fourth quarter operating income was $12.7 million, up $4.3 million or 51 percent when compared to $8.4 million in the fourth quarter 2022. On an adjusted basis, non-GAAP operating income was $16.3 million, up $5.3 million or 48 percent when compared to $11.0 million in the fourth quarter of 2022. Net income was $3.9 million in the quarter, compared to $8.3 million in the fourth quarter 2022. Non-GAAP net income was $10.1 million, up $2.7 million compared to $7.4 million in the fourth quarter 2022. Adjusted EBITDA of $19.4 million, reflecting a margin of 12.6 percent, was up 49 percent compared to $13.0 million in the fourth quarter 2022. Free cash flow in the quarter was $12.2 million, up $3.2 million compared to $9.0 million in the fourth quarter of 2022.

Full year operating income was $34.6 million, up $12.4 million or 56 percent when compared to $22.2 million in 2022. On an adjusted basis, non-GAAP operating income was $48.1 million, up $13.3 million or 38 percent when compared to $34.8 million in 2022. Net income was $12.9 million in the year, compared to $17.4 million in 2022. Non-GAAP net income was $26.6 million, compared to $25.9 million in 2022. Adjusted EBITDA of $57.7 million, reflecting a margin of 10.6 percent, was up 37 percent compared to $42.2 million in 2022. Free cash flow was $36.2 million, up $9.0 million or 33 percent compared to $27.2 million in 2022.

“CECO has continued to mindfully transform our portfolio into a well-positioned leader across industrial air, industrial water and the energy transition. The three acquisitions we completed in 2023 are delivering outstanding results across their strategically focused niche


markets. Additionally, our sustained investment to expand our global footprint and capabilities has improved our international sales mix and opened new geographic markets. I am extremely grateful to and proud of our dedicated employees and their commitment to delivering for our customers and partners,” added Gleason.

Company Financial Outlook: Raises 2024 Full Year Guidance

The Company is raising its 2024 full year revenue guidance to $590 to $610 million, up approximately 10% year over year at the midpoint, and Adjusted EBITDA guidance to $67 to $70 million, up approximately 19% year over year at the midpoint. The updated 2024 full year guidance is compared to the previously communicated outlook of $575 to $600 million in revenue and Adjusted EBITDA of $65 to $70 million. The Company reaffirms its previously communicated 2024 full year guidance of free cash flow of 50% to 70% of Adjusted EBITDA.

“We raised our full year 2024 outlook to reflect our expectations given our tremendous backlog, coupled with our commercial and operational excellence programs, which will drive robust organic growth and further operating margin expansion opportunities. Additionally, we enter the year with a healthy balance sheet which provides added optionality to evaluate and execute on the most attractive internal growth programs as well as any potential accretive M&A opportunities to advance our leadership positions in industrial air, industrial water and the energy transition to drive long-term shareholder value,” concluded Gleason.

 

 


EARNINGS CONFERENCE CALL


A conference call is scheduled for today at 8:30 a.m. ET to discuss the fourth quarter and full year 2023 financial results. Please visit the Investor Relations portion of the website (https://investors.cecoenviro.com) to listen to the call via webcast. The conference call may also be accessed by visiting https://edge.media-server.com/mmc/p/7wfof7nx.
 

A replay of the conference call will be available on the Company’s website for a period of one year. The replay may also be accessed by visiting https://edge.media-server.com/mmc/p/7wfof7nx.


ABOUT CECO ENVIRONMENTAL

CECO Environmental is a leading environmentally focused, diversified industrial company, serving the broad landscape of industrial air, industrial water and energy transition markets globally providing innovative solutions and application expertise. CECO helps companies grow their business with safe, clean, and more efficient solutions that help protect people, the environment and industrial equipment. CECO solutions improve air and water quality, optimize emissions management, and increase energy efficiency for highly-engineered applications in power generation, midstream and downstream hydrocarbon processing and transport, electric vehicle production, polysilicon fabrication, semiconductor and electronics, battery production and recycling, specialty metals and steel production, beverage can, and water/wastewater treatment and a wide range of other industrial end markets. CECO is listed on Nasdaq under the ticker symbol "CECO." Incorporated in 1966, CECO’s global headquarters is in Dallas, Texas. For more information, please visit www.cecoenviro.com.

Company Contact:

Peter Johansson

Chief Financial and Strategy Officer
888-990-6670

investor.relations@onececo.com

Investor Relations Contact:

Steven Hooser and Jean Marie Young

Three Part Advisors, LLC

214-872-2710

investor.relations@onececo.com

 

# # #

 

 

 

 

 


CECO ENVIRONMENTAL CORP. AND SUBSIDIARIES
CONSOLIDATED BALANCE SHEETS

 

 

December 31,

 

(dollars in thousands, except share data)

 

2023

 

 

2022

 

ASSETS

 

 

 

 

 

 

Current assets:

 

 

 

 

 

 

Cash and cash equivalents

 

$

54,779

 

 

$

45,522

 

Restricted cash

 

 

669

 

 

 

1,063

 

Accounts receivable, net of allowances of $6,460 and $4,220

 

 

112,733

 

 

 

83,086

 

Costs and estimated earnings in excess of billings on uncompleted contracts

 

 

66,574

 

 

 

71,016

 

Inventories, net

 

 

34,089

 

 

 

26,526

 

Prepaid expenses and other current assets

 

 

11,769

 

 

 

12,174

 

Prepaid income taxes

 

 

824

 

 

 

1,271

 

Total current assets

 

 

281,437

 

 

 

240,658

 

Property, plant and equipment, net

 

 

26,237

 

 

 

20,828

 

Right-of-use assets from operating leases

 

 

16,256

 

 

 

11,373

 

Goodwill

 

 

211,326

 

 

 

183,197

 

Intangible assets – finite life, net

 

 

50,461

 

 

 

35,251

 

Intangible assets – indefinite life

 

 

9,570

 

 

 

9,508

 

Deferred income taxes

 

 

304

 

 

 

829

 

Deferred charges and other assets

 

 

4,700

 

 

 

3,077

 

Total assets

 

$

600,291

 

 

$

504,721

 

LIABILITIES AND SHAREHOLDERS’ EQUITY

 

 

 

 

 

 

Current liabilities:

 

 

 

 

 

 

Current portion of debt

 

$

10,488

 

 

$

3,579

 

Accounts payable

 

 

87,691

 

 

 

73,407

 

Accrued expenses

 

 

44,301

 

 

 

33,791

 

Billings in excess of costs and estimated earnings on uncompleted contracts

 

 

56,899

 

 

 

32,716

 

Notes payable

 

 

2,500

 

 

 

 

Income taxes payable

 

 

1,227

 

 

 

3,207

 

Total current liabilities

 

 

203,106

 

 

 

146,700

 

Other liabilities

 

 

12,644

 

 

 

15,129

 

Debt, less current portion

 

 

126,795

 

 

 

107,625

 

Deferred income tax liability, net

 

 

8,838

 

 

 

8,666

 

Operating lease liabilities

 

 

11,417

 

 

 

8,453

 

Total liabilities

 

 

362,800

 

 

 

286,573

 

Commitments and contingencies (See Note 12)

 

 

 

 

 

 

Shareholders’ equity:

 

 

 

 

 

 

Preferred stock, $.01 par value; 10,000 shares authorized, none issued

 

 

 

 

 

 

Common stock, $.01 par value; 100,000,000 shares authorized, 34,835,293 and
   34,381,668 shares issued and outstanding at December 31, 2023
  and 2022, respectively

 

 

348

 

 

 

344

 

Capital in excess of par value

 

 

254,956

 

 

 

250,174

 

Accumulated loss

 

 

(6,387

)

 

 

(19,298

)

Accumulated other comprehensive loss

 

 

(16,274

)

 

 

(17,996

)

Total CECO shareholders’ equity

 

 

232,643

 

 

 

213,224

 

Noncontrolling interest

 

 

4,848

 

 

 

4,924

 

Total shareholders' equity

 

 

237,491

 

 

 

218,148

 

Total liabilities and shareholders’ equity

 

$

600,291

 

 

$

504,721

 

 

 

 


CECO ENVIRONMENTAL CORP. AND SUBSIDIARIES

CONSOLIDATED STATEMENTS OF INCOME

(unaudited)

 

 

 

Three months ended December 31,

 

 

Year ended December 31,

 

(in thousands, except share and per share data)

 

2023

 

 

2022

 

 

2023

 

 

2022

 

Net sales

 

$

153,711

 

 

$

116,402

 

 

$

544,845

 

 

$

422,627

 

Cost of sales

 

 

100,526

 

 

 

78,706

 

 

 

373,829

 

 

 

294,402

 

Gross profit

 

 

53,185

 

 

 

37,696

 

 

 

171,016

 

 

 

128,225

 

Selling and administrative expenses

 

 

36,862

 

 

 

26,667

 

 

 

122,944

 

 

 

93,473

 

Amortization and earnout expenses

 

 

2,192

 

 

 

1,870

 

 

 

8,180

 

 

 

6,809

 

Acquisition and integration expenses

 

 

298

 

 

 

721

 

 

 

2,508

 

 

 

4,546

 

Executive transition expenses

 

 

48

 

 

 

 

 

 

1,465

 

 

 

1,161

 

Restructuring expenses (income)

 

 

1,133

 

 

 

 

 

 

1,350

 

 

 

75

 

Income from operations

 

 

12,652

 

 

 

8,438

 

 

 

34,569

 

 

 

22,161

 

Other income (expense), net

 

 

1,042

 

 

 

4,193

 

 

 

372

 

 

 

6,947

 

Interest expense

 

 

(3,918

)

 

 

(1,930

)

 

 

(13,416

)

 

 

(5,419

)

Income before income taxes

 

 

9,776

 

 

 

10,701

 

 

 

21,525

 

 

 

23,689

 

Income tax expense

 

 

5,447

 

 

 

2,139

 

 

 

7,024

 

 

 

5,426

 

Net income

 

 

4,329

 

 

 

8,562

 

 

 

14,501

 

 

 

18,263

 

Noncontrolling interest

 

 

(450

)

 

 

(267

)

 

 

(1,590

)

 

 

(846

)

Net income attributable to CECO Environmental Corp.

 

$

3,879

 

 

$

8,295

 

 

$

12,911

 

 

$

17,417

 

Income per share:

 

 

 

 

 

 

 

 

 

 

 

 

Basic

 

$

0.11

 

 

$

0.24

 

 

$

0.37

 

 

$

0.50

 

Diluted

 

$

0.11

 

 

$

0.24

 

 

$

0.37

 

 

$

0.50

 

Weighted average number of common shares outstanding:

 

 

 

 

 

 

 

 

 

 

 

 

Basic

 

 

34,823,663

 

 

 

34,318,526

 

 

 

34,665,473

 

 

 

34,672,007

 

Diluted

 

 

35,687,092

 

 

 

34,919,398

 

 

 

35,334,090

 

 

 

35,005,159

 

 


CECO ENVIRONMENTAL CORP. AND SUBSIDIARIES

CONSOLIDATED STATEMENTS OF CASH FLOWS

 

 

 

Year ended December 31,

 

 

(dollars in thousands)

 

2023

 

 

2022

 

 

Cash flows from operating activities:

 

 

 

 

 

 

 

Net income

 

$

14,501

 

 

$

18,263

 

 

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

 

 

 

 

 

 

 

Depreciation and amortization

 

 

12,507

 

 

 

10,614

 

 

Unrealized foreign currency (gain) loss

 

 

(1,041

)

 

 

(1,284

)

 

Impairment of intangible assets

 

 

 

 

 

 

 

Fair value adjustments to earnout liabilities

 

 

296

 

 

 

(229

)

 

Earnout payments

 

 

 

 

 

(1,007

)

 

Loss (gain) on sale of property and equipment

 

 

110

 

 

 

10

 

 

Amortization of debt discount

 

 

427

 

 

 

371

 

 

Share based compensation expense

 

 

4,533

 

 

 

3,895

 

 

Bad debt expense

 

 

1,593

 

 

 

1,340

 

 

Inventory reserve expense

 

 

1,099

 

 

 

140

 

 

Deferred income tax (benefit) expense

 

 

(118

)

 

 

(39

)

 

Changes in operating assets and liabilities, net of acquisitions:

 

 

 

 

 

 

 

Accounts receivable

 

 

(26,851

)

 

 

(6,751

)

 

Cost and estimated earnings of billings on uncompleted contracts

 

 

5,040

 

 

 

(16,851

)

 

Inventories

 

 

(6,896

)

 

 

(6,023

)

 

Prepaid expenses and other current assets

 

 

1,196

 

 

 

37

 

 

Deferred charges and other assets

 

 

(1,420

)

 

 

2,478

 

 

Accounts payable

 

 

13,852

 

 

 

19,843

 

 

Accrued expenses

 

 

8,340

 

 

 

2,693

 

 

Billings in excess of costs and estimated earnings on uncompleted contracts

 

 

21,575

 

 

 

4,405

 

 

Income taxes payable

 

 

(1,976

)

 

 

1,424

 

 

Other liabilities

 

 

(2,120

)

 

 

(3,680

)

 

Net cash provided by operating activities

 

 

44,647

 

 

 

29,649

 

 

Cash flows from investing activities:

 

 

 

 

 

 

 

Acquisitions of property and equipment

 

 

(8,384

)

 

 

(3,376

)

 

Net proceeds from sale of assets

 

 

 

 

 

19

 

 

Cash paid for acquisitions, net of cash acquired

 

 

(48,102

)

 

 

(44,900

)

 

Net cash used in investing activities

 

 

(56,486

)

 

 

(48,257

)

 

Cash flows from financing activities:

 

 

 

 

 

 

 

Borrowings on revolving credit lines

 

 

106,600

 

 

 

75,200

 

 

Repayments on revolving credit lines

 

 

(150,600

)

 

 

(35,900

)

 

Borrowings of long-term debt

 

 

75,000

 

 

 

11,000

 

 

Repayments of long-term debt

 

 

(4,985

)

 

 

(3,120

)

 

Repayments of notes payable

 

 

 

 

 

(500

)

 

Deferred financing fees paid

 

 

(363

)

 

 

(130

)

 

Deferred consideration paid for acquisitions

 

 

(1,247

)

 

 

 

 

Payments on capital leases and sale-leaseback financing liability

 

 

(907

)

 

 

(600

)

 

Earnout payments

 

 

(2,123

)

 

 

 

 

Proceeds from employee stock purchase plan and exercise of stock options

 

 

1,435

 

 

 

671

 

 

Distributions to non-controlling interest

 

 

(1,666

)

 

 

(1,425

)

 

Common stock repurchases

 

 

 

 

 

(7,020

)

 

Net cash provided by (used in) financing activities

 

 

21,144

 

 

 

38,176

 

 

Effect of exchange rate changes on cash and cash equivalents

 

 

(442

)

 

 

(4,978

)

 

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

 

 

8,863

 

 

 

14,590

 

 

Cash, cash equivalents and restricted cash at beginning of year

 

 

46,585

 

 

 

31,995

 

 

Cash, cash equivalents and restricted cash at end of year

 

$

55,448

 

 

$

46,585

 

 

Cash paid (received) during the period for:

 

 

 

 

 

 

 

Interest

 

$

12,098

 

 

$

5,007

 

 

Income taxes

 

$

9,916

 

 

$

5,378

 

 

 


CECO ENVIRONMENTAL CORP. AND SUBSIDIARIES

RECONCILIATION OF GAAP TO NON-GAAP MEASURES

 

 

 

Three months ended December 31,

 

 

Year ended December 31,

 

(in millions, except ratios)

 

2023

 

 

2022

 

 

2023

 

 

2022

 

Operating income as reported in accordance with GAAP

 

$

12.7

 

 

$

8.4

 

 

$

34.6

 

 

$

22.2

 

Operating margin in accordance with GAAP

 

 

8.3

%

 

 

7.2

%

 

 

6.4

%

 

 

5.3

%

Amortization and earnout expenses

 

 

2.2

 

 

 

1.9

 

 

 

8.2

 

 

 

6.8

 

Acquisition and integration expenses

 

 

0.3

 

 

 

0.7

 

 

 

2.5

 

 

 

4.5

 

Executive transition expenses

 

 

 

 

 

 

 

 

1.5

 

 

 

1.2

 

Restructuring expenses

 

 

1.1

 

 

 

 

 

 

1.3

 

 

 

0.1

 

Non-GAAP operating income

 

$

16.3

 

 

$

11.0

 

 

$

48.1

 

 

$

34.8

 

Non-GAAP operating margin

 

 

10.6

%

 

 

9.5

%

 

 

8.8

%

 

 

8.2

%

 

 

 

Three months ended December 31,

 

 

Year ended December 31,

 

(in millions, except share data)

 

2023

 

 

2022

 

 

2023

 

 

2022

 

Net income as reported in accordance with GAAP

 

$

3.9

 

 

$

8.3

 

 

$

12.9

 

 

$

17.4

 

Amortization and earnout expenses

 

 

2.2

 

 

 

1.9

 

 

 

8.2

 

 

 

6.8

 

Acquisition and integration expenses

 

 

0.3

 

 

 

0.7

 

 

 

2.5

 

 

 

4.5

 

Executive transition expenses

 

 

 

 

 

 

 

 

1.5

 

 

 

1.2

 

Restructuring expenses

 

 

1.1

 

 

 

 

 

 

1.3

 

 

 

0.1

 

Foreign currency remeasurement

 

 

(1.0

)

 

 

(3.8

)

 

 

(1.0

)

 

 

(1.3

)

Tax benefit (expense) of adjustments

 

 

3.6

 

 

 

0.3

 

 

 

1.2

 

 

 

(2.8

)

Non-GAAP net income

 

$

10.1

 

 

$

7.4

 

 

$

26.6

 

 

$

25.9

 

Depreciation

 

 

1.7

 

 

 

1.0

 

 

 

5.1

 

 

 

3.6

 

Non-cash stock compensation

 

 

1.5

 

 

 

1.0

 

 

 

4.5

 

 

 

3.9

 

Other (income) expense

 

 

(0.1

)

 

 

(0.4

)

 

 

0.8

 

 

 

(5.6

)

Interest expense

 

 

3.9

 

 

 

1.9

 

 

 

13.4

 

 

 

5.4

 

Income tax expense

 

 

1.8

 

 

 

1.8

 

 

 

5.7

 

 

 

8.2

 

Noncontrolling interest

 

 

0.5

 

 

 

0.3

 

 

 

1.6

 

 

 

0.8

 

Adjusted EBITDA

 

$

19.4

 

 

$

13.0

 

 

$

57.7

 

 

$

42.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Earnings per share:

 

 

 

 

 

 

 

 

 

 

 

 

Basic

 

$

0.11

 

 

$

0.24

 

 

$

0.37

 

 

$

0.50

 

Diluted

 

$

0.11

 

 

$

0.24

 

 

$

0.37

 

 

$

0.50

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Adjusted earnings per share:

 

 

 

 

 

 

 

 

 

 

 

 

Basic

 

$

0.29

 

 

$

0.22

 

 

$

0.77

 

 

$

0.75

 

Diluted

 

$

0.28

 

 

$

0.21

 

 

$

0.75

 

 

$

0.74

 

 

 

 

Three months ended December 31,

 

 

 

Year ended December 31,

 

 

(in millions)

2023

 

 

2022

 

 

 

2023

 

 

2022

 

 

Net cash provided by operating activities

$

15.1

 

 

$

10.0

 

 

 

$

44.6

 

 

$

29.6

 

 

Earnout payments (within operating activities)

 

 

 

 

 

 

 

 

 

 

 

1.0

 

 

Acquisitions of property and equipment

 

(2.9

)

 

 

(1.0

)

 

 

 

(8.4

)

 

 

(3.4

)

 

Free cash flow

$

12.2

 

 

$

9.0

 

 

 

$

36.2

 

 

$

27.2

 

 

 

 


NOTE REGARDING NON-GAAP FINANCIAL MEASURES

CECO is providing certain non-GAAP historical financial measures as presented above as we believe that these figures are helpful in allowing individuals to better assess the ongoing nature of CECO’s core operations. A "non-GAAP financial measure" is a numerical measure of a company's historical financial performance that excludes amounts that are included in the most directly comparable measure calculated and presented in accordance with GAAP.

Non-GAAP operating income, non-GAAP net income, non-GAAP operating margin, non-GAAP earnings per basic and diluted share, adjusted EBITDA and free cash flow, as we present them in the financial data included in this press release, have been adjusted to exclude the effects of amortization expenses for acquisition-related intangible assets, contingent retention and earnout expenses, restructuring expenses primarily relating to severance and legal expenses, acquisition and integration expenses which include retention, legal, accounting, banking, and other expenses, foreign currency remeasurement and other nonrecurring or infrequent items and the associated tax benefit of these items. Management believes that these items are not necessarily indicative of the Company’s ongoing operations and their exclusion provides individuals with additional information to better compare the Company's results over multiple periods. Management utilizes this information to evaluate its ongoing financial performance. Our financial statements may continue to be affected by items similar to those excluded in the non-GAAP adjustments described above, and exclusion of these items from our non-GAAP financial measures should not be construed as an inference that all such costs are unusual or infrequent.

Non-GAAP operating income, non-GAAP net income, non-GAAP operating margin, non-GAAP earnings per basic and diluted share, adjusted EBITDA and free cash flow are not calculated in accordance with GAAP, and should be considered supplemental to, and not as a substitute for, or superior to, financial measures calculated in accordance with GAAP. Non-GAAP financial measures have limitations in that they do not reflect all of the costs associated with the operations of our business as determined in accordance with GAAP. As a result, you should not consider these measures in isolation or as a substitute for analysis of CECO’s results as reported under GAAP. Additionally, CECO cautions investors that non-GAAP financial measures used by the Company may not be comparable to similarly titled measures of other companies.

In accordance with the requirements of Regulation G issued by the Securities and Exchange Commission, non-GAAP operating income, non-GAAP net income, non-GAAP operating margin, non-GAAP earnings per basic and diluted share, adjusted EBITDA and free cash flow stated in the tables above are reconciled to the most directly comparable GAAP financial measures.

 

Non-GAAP measures presented on a forward-looking basis were not reconciled to the comparable GAAP financial measures because the reconciliation could not be performed without unreasonable efforts. The GAAP measures are not accessible on a forward-looking basis because we are currently unable to predict with a reasonable degree of certainty the type and extent of certain items that would be expected to impact GAAP measures for these periods but would not impact the non-GAAP measures. Such items may include amortization expenses for acquisition-related intangible assets, contingent retention and earnout expenses, restructuring expenses primarily relating to severance and legal expenses, acquisition and integration expenses which include retention, legal, accounting, banking, and other expenses, foreign currency remeasurement and other nonrecurring or infrequent items and the associated tax benefit of these items. The unavailable information could have a significant impact on our GAAP financial results.

 


SAFE HARBOR

Any statements contained in this Press Release, other than statements of historical fact, including statements about management’s beliefs and expectations, are forward-looking statements within the meaning of Section 27A of the Securities Act of 1933 and Section 21E of the Securities Exchange Act of 1934, both as amended, and should be evaluated as such. These statements are made on the basis of management’s views and assumptions regarding future events and business performance. We use words such as “believe,” “expect,” “anticipate,” “intends,” “estimate,” “forecast,” “project,” “will,” “plan,” “should” and similar expressions to identify forward-looking statements. Forward-looking statements involve risks and uncertainties that may cause actual results to differ materially from any future results, performance or achievements expressed or implied by such statements. Potential risks and uncertainties, among others, that could cause actual results to differ materially are discussed under “Part I – Item 1A. Risk Factors” of the Company’s Annual Report on Form 10-K for the fiscal year ended December 31, 2023 and may be included in subsequently filed Quarterly Reports on Form 10-Q, and include, but are not limited to: the sensitivity of our business to economic and financial market conditions generally and economic conditions in our service areas; dependence on fixed price contracts and the risks associated therewith, including actual costs exceeding estimates and method of accounting for revenue; the effect of growth on our infrastructure, resources, and existing sales; the ability to expand operations in both new and existing markets; the potential for contract delay or cancellation as a result of on-going or worsening supply chain challenges; liabilities arising from faulty services or products that could result in significant professional or product liability, warranty, or other claims; changes in or developments with respect to any litigation or investigation; failure to meet timely completion or performance standards that could result in higher cost and reduced profits or, in some cases, losses on projects; the potential for fluctuations in prices for manufactured components and raw materials, including as a result of tariffs and surcharges, and rising energy costs; inflationary pressures relating to rising raw material costs and the cost of labor; the substantial amount of debt incurred in connection with our strategic transactions and our ability to repay or refinance it or incur additional debt in the future; the impact of federal, state or local government regulations; our ability to repurchase shares of our common stock and the amounts and timing of repurchases, if any; our ability to successfully realize the expected benefits of our restructuring program; our ability to successfully integrate acquired businesses and realize the synergies from strategic transactions; and the unpredictability and severity of catastrophic events, including cyber security threats, acts of terrorism or outbreak of war or hostilities or public health crises, as well as management’s response to any of the aforementioned factors. Many of these risks are beyond management’s ability to control or predict. Should one or more of these risks or uncertainties materialize, or should the assumptions prove incorrect, actual results may vary in material aspects from those currently anticipated. Investors are cautioned not to place undue reliance on such forward-looking statements as they speak only to our views as of the date the statement is made. Except as required under the federal securities laws or the rules and regulations of the Securities and Exchange Commission, we undertake no obligation to update or review any forward-looking statements, whether as a result of new information, future events or otherwise.


GRAPHIC 3 img161054807_0.jpg GRAPHIC begin 644 img161054807_0.jpg M_]C_X 02D9)1@ ! @ 0 ! #_VP!# $! 0$! 0$! 0$! 0$! 0$! 0$! M 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0'_ MVP!# 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! M 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0'_P 1" \ ($# 2( A$! Q$!_\0 M'P 04! 0$! 0$ $" P0%!@<("0H+_\0 M1 @$# P($ P4% M! 0 %] 0(# 01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D* M%A<8&1HE)B7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7& MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$ P$! 0$! M 0$! 0 $" P0%!@<("0H+_\0 M1$ @$"! 0#! <%! 0 0)W $" M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$ MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4 MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,! (1 Q$ /P#^_BBBD) R M2<8Y- 76NNV_EZD04N"#VSS^.<'O[^W/J*3:J< 9_,?E^77)'M7Y#_MD_P#! M9#]D;]C_ ,2ZQ\,KJ\\2?%OXM:$/LWB'P%\*H-,U.?PM+RHTG7];U:>#PWH> MO-$L;Q^'+BX-T^XB:*-E^;\]M+_X.7_AM<:O]GUG]E;XD6N@X(^UZ'XX\%ZO MXALL\9DT -'(PQV69!^ P/I\OX-XKS3"+%X3*:DZ-Y1@IIVLX*4XRE=.^ MUGJTWU\2OQ!E&%FL-+,4Y:*T4W;NKJ+VU23[[+5+^H/:2K*>Q_/C'?'&,4TH M0N"HP.>H_P >?\?K7R5^R3^VA\"?VT_AU*/[;T_2KTZ+XKT#4K5]/ M\2^"_$*H&?0O$.CN-UM<( [KB1E=1E7W%TA^;_$G_!4/X8^&_$7B/P[/\,?B M?/=>&=>U70[NYM(_!S1W M),R62OFDK58OGLZ#*)!I$DT> MYI](=D4RLR1%55LJ^?*R3CGA3B?$/"9+FE/-96O)TXN459+=RA#NNGSU-Z&. MPN*_W:?-97VE&R[NZT\DKOO8]J!/.$ '3)&?US_/%/!;/) QGI_]?K^'M7Y MO?MG?\%-_P!E;]B%K;1OB=XJU'Q+\3=0LCJ&E?"SP#:?\))XY>P!&VYUB*#9 M%X?T-VW/]J\1RP*Y82IYB["GY)R_\'+OP[&MBUM_V5OB$-!"[1+=?$?P4/$^ M>/F_X1\+]GW=.?\ A*\5^KY;P=Q%FN&^MX+*9N#7NSE[.*?PVMSSA*2::M*, M'%V=I.S//Q.B6J35O)M=-V?U%.^.< CC']>X/X?3L>_N>O\ ]?J!7YU_L._\%*?V;OV[[#5;3X6ZYK6B_$;PSI=MJOC' MX5>-K3^QO&6@:?+*D2:P@!?0?$'A^>>54C\1>&;FX@8E4^0E0?:_VI/VOOV? M?V./ L/C[X]^.[7PI9:A,?%NJ?*?['\(>'8%_MO7[PG+M%!$ MVU65GD17B%>-7R;-@!/7N![_P"?J?04IP",KCIW]SZ\'IU].]?S M!^,/^#ESX5V>IFV\'_LQ_$S4M$-R$74O%/C'P9X5U*Z7 XBT6$>*I4S@=9&Q MM&,#.?J7]FW_ (+X_L?_ !S\4:1X)^(NF^-/VNW3:?HMU\2_[)O? FH: MB$!X9^)>BZ1:$#4-3_X0368-+ M/A5\*-(=>7QEK&4\2RZ%X5V;0'DB3Q@GB%YY'*0M M&_\ 4!\3O^"6/[!GQ5\"3>!=5_9I^%WAC3TLC8Z1K7P_\+Z/X)\8^%P<8DT3 MQ!H%O'/!*&&!EWB"D@Q2,5=/YV?^""'[<_PP^!6O?$S]GOXN^)M'\#>'_C%K MNC^-OASXHUV_CTSPZOCQ=)31=9\):QK4SQPZ&_B70H_#LG@I))$#0>'YU3=( M4B?^K?XP?M'_ /^ OP]UKXG_%+XD>&/"/@[0K1Y[K5-0UK3I#J$D,)QI.B6 M22-+KFMNT>$T'P^DUU*[92++C/W_ (B8[BQ\53^I?68TX*DN'%1=:,'!\CCR M>R:BYN3M)*\Y>["=Z3@CY[AW#Y.LKBY\KDV^9RY>:^FEI;=UZZ:W+GP2_9_^ M$?[-7PWTCX6?!3P+I'@+PCHMFMG;6>BV2F]U!XK?#:IKNIN9+G7=7RVVM_.QX=U+X::;^U9K5[\8+&VU'X8VWQ2^*0\76MWH^LZC]NT MW'B :"W]B: K@$>),')1@/[K#Y3_ $3?!#X^_"+]H_X?Z3\3?@KX_P!#^(7@ MK6((Y+75M"O2HL)@G[S2]:TJ6.'7-!UN,N?M'A_Q!;6]S$H3?&NY5/\ /3X, M\(^$/B!^UYJ?A#Q]>G3_ CKOQ2^*5IXBN1JX\.&R(7Q 0JZV64%B> "RC)^ M\!S7\1?2#6;?VKP(I*E_;#XH:JQXE25/F?)SJJGT"O#@_P"Z2?$@C'_A,Y_SBOL?7?BG\+/@'^QO MX[^-OPAT#1[3X:_#[X1>.?BOX4\/6-K_ &!IFHK;Z1KOBF*!48*81XEUJ3+, MR@&6[\T#^J['\9_\ P3M_9@U__@IS^VCXAOOCSXIU MK4=":TU'XW_'/Q#:32V?B/Q3)-KJQ>'?!NCZO -_A^+Q0VOAI2#&B^!_#S-X M&F@B#S)_89+_ ,$R_P!@J3P2/AR_[*/P6/AC[#]GP? ^B#4-^-G]J?V\$_X2 M,>(-W[P>(?M!N\]9BGRU_(O_ ,$A?VJ= _8;_;!\0:1\>1)X!\)>.M!O?@W\ M1[O6[#[ /AIXZ\/>(8WT;6_&H+*OA[1DU[0=?\->*Y')CAO->@FD5DC*G^XK M4?C7\(=*\%3_ !'U7XG>!+'P#:Z1_;5QXKN/%FAQ^&8]*^\-4.LM.L/E!05W MB8(6( &_!/\ 6_B57XAPW$-*GE\L1')W2IJ@L*ZL*;]V*]UT;0E+F:7)*[45 M%I)2U\/AFAE/U2;QW(Y<\F_:M.R\KW>VMM%NNQY!^RS^QC^SG^Q?X)G\(? O MP%!X)O&OBF4#);Q)XUUOS?$>O,!M*_:)2BD H%(-$F0X,>KZ'KL5KXCA?)9"Z !7 5?X@=0U#Q! M_P $SO\ @J==^(?%/AV^O+/X,?'/Q5XF%I;J);[QA\&/'R>( -;T5=P$NO-\ M.->R5+*K^,LC(!S2\.XXUYGQ5/&1F^+8X9_5O;*7M5-\_M+JK:2=O8J\FE9Z M2Y6/B)X5X7*EA6O[)<_>Y=K7BD]-?-]G=/9G]AOP:_X)6?L*?!/P?I_AC3/V M=?A[XTOK:R6RUCQG\2O#>B>./''BAU WZIKNOZ]#+)/*7W[BB184*$3<&9_P MT_X+1?\ !*WX*?!GX.WO[5O[.?A?2OAQI/AC7?#NB_%SX8Z/%)!X(O-*\::Y M'X?T?Q;HFARNPTGQ';^)]?T2/^P[<+!/_;Q"QQE-TO\ 3)\(OVD?@=\>_ VD M?$/X3_$_P?XV\(:S:Q3VNIZ+XBTLBP>:!#]O7X-O\!];_ &-_AYXGT;QW\2_B)XD\-77Q#70=034=.^&O MA7P+X@T3QY&-=U2W46L6O^(]#PTK/<7%O_ ,)&+K9) N[Q^#\=Q>N+ MT_?IPJ?NX)04^1+EM-1C%6]R7=G%')_[(=O9W45R< MG+?FLK:IJ^MKM]W?NO;O^#?W]IGQ3\9OV6_%WP=\<:Y<^(]?_9V\2Z5X7\-Z MMJUZ-0U,_##7-&SX%T766(W"?PF=$UOPY!M SX0B\+?,O)K]_L\-UQ\H_#IS M]0,&OYR?^#?H#DU\_QNL$N*\Y6"2Y%5 M?+R.\;M0=11MHK5>=-*Z4KQ5K Y/ZNNJ[KJOF?B]^V;_P M0*^"/Q^\5>(?B9\ /%[_ \;>)+K5-7\1>%QX=A\1_";Q)K>M B357\/,8A MX;F& S_\(L(5W,<)&H!/YS:=_P &U7[04NKV\.J?M(_!;3M(M#@ZII/@'QEJ M&IKIHZIHNC/XE2&-^0 ))%R2,$L17[AVOQ3\;7?[+_Q+UWPS\6-?G\:VWB+X M<:3;:_9^.M'^(^IZ&_B'QIX<\/RR,J_#WP>FAR2!M9'_ C3V\I51(IE0S8; MN/A;X_\ C-X_^*?Q!^"GBGQ-K/A/Q7X.^ L_AG5M7TRV3^S9_'JZZ]MI'Q<\ M/D@>6WB'0=:TC75LW\LVS*;1U0Q$"\M^D#Q'@899E&%=67]K1M"52G"+O&7CNXTV\^(WQ+\571_M?Q5-HBO%HR+HL4O M]AZ#H_AVUG,=I%:1)(A\XM)(TL"+\_\ C#_@ECKWBKQ;XQ\1CXQ:1;V_BCQ' MK&MBS7P7(WV'^V-<_MN0 _\ "1 $J_&,\GGIS7L_P[^*WQL^(/@[XL>-=9OM M:\*'X+_!KQ5\,]8TM+;2@=<_:%T/2FN_'WC0;2^8?"[Z#X?A\&C*Q2+XB\2+ M)E0B5Y)\8/C#\=K'2?AG>>'/%_CM"?V4/#OQ*\03Z+<>'M->P\3-JGA[29OB M-XP76/#OBE]>\/>&3K,EYXU\,>&A+,T1,TD;Q&-E_)?$/.^&./L-'->+? MQ'JVMMJMKIBZ8/\ B<2([JT88@LI3EQ]W&!D$$?.WQ)^).ICX@6_A_XG?'[Q M+\%O!5I\)_"WB+P-XG\$6>CZ3IGQ6\K>(?#OBI%_X1>--#^S M_#8EF:/Q#:W1%W$L:GD-2^)G[3?B#PU^RG/I&L7FD?$7Q/IOQ<\3ZUX5IN22?,MTE))N+NTTL-3RS"XB^%4K-:Q7OM.\4XN M*?NIN7NN7*I6:BVSS[]O/_@C5^S_ /ME^);[XH:'J6J?!CXUZF(TU?QGX5LA M?^'_ !O_ *Q0OCCPB\GV6[E)5%'B%7CN8U#-(TS,N?QUE_X-J/VB3?&Q@_:* M^!PT?[9]M-T? 'C(C..0=&'B0Q9'M*1Z$\5^U[?'#XR?$KX+ZCKO@CQWXI\& M>(/&'[67_" >$[O5M$TPZMX2\.:U)'&OA#6=%ET24*OA@--O#K)<.40R7+A1 MGT+X(?&SXL?$[XU67BB^O=6T'P)XQ^%/CS^P?AG>6:A].\3_ QG^'NC>(M9 ME;);S%\>>(/&OA@!R&E3P[%P%9*_;,H^D%G6 C@,JPCKR3AS4X3IQJ*DDG?D M[&)]8^*7QUUWPVGAJ\\:WMM'H.@:!X?WA?3+?XEZ=J?ACX@^ M&[=XO WQ=\)%=+\;>'!+^\?37)*KK_AZ:1F:X\,^(1+;--YC@+))*[>(? ?X MS^/]>^"7Q8U_4_B?J^N>/--^!WB3Q/;"Z\=:3XBU/3=0@T&6XBUL>"(_AIX3 M7P^4N8XV17/BR/DIN+,J2=5\)/BQ\:I/BQ\ ?@]X^\1>(=1OM0\*>*O$M[XS MM;46&G_$3P1KW@J#7O!VJZP7+&W\0>&/$$6J>'G@14260"Y*N\QD;R*'C/C, MSQ^6<1N'$L5HS4'%P?-R^\TDDGJVI)0<4U+FO9^AAX99+"+!?V:^5Z*+ MCHG)J.K>D6M[MVLG9NZM^''BC_@VJ^.=IJ^H-X'_ &DOA1K.CW06RM+KQ%X" M\8^'/$O]F-T76I/#OB4Q2,.#O$>E^(?VG_BY) M\6-*T^[-X?AEX!\-)X(\#:PXCWXUW6A(/%%S@D*RV3>%27&U3CYJ_5#0?&GB M_P"%.F_M)^,_$'Q ^)GQ%NOAOX]_X5MX"\'^*+[1-2T[6-1UG1/A_)X*1%T/ MPS!,^OW/B;7_ +,TJKYD:S%I(5W97F-"^-OQ?TK]G;X_^%_&6M>+]/\ C/\ M"_PI/XI\/>*?$7AS2?#OB/7O#7B2WFET;Q!#H 9X-_AKQ)'K?AAML<2D:)HL MKR237C[_ *G$?2 XDGA%@L3*I3O'/5S1I4U5M!^_S3]FVG547%6C!QUE!QE* M,H\&'R3(,*_^18V[2E9N4DK=+*5KW3LI:Z*^C5_TPT#P]H/A'1-(\.^'=)L- M&\.Z%I>G:1I&AZ5:)IVFZ1IFBQB/2-,TO2HT$<,<,0$<: H=L28'$:+U@QCC MIVKS'X;?$CP;\3]"&J^"/%.F^+++3[H:7JFJZ6VZ(ZE!I\339R,JY,D38P0< M[58A#7IBC Q[G^?;V[URX?%4,9AXXO#MOVBNW+62D[-I]WJ?7))))*RLK)=O M^!L_,=11171SO^7\_+_/\5\V%1%?,0QR@'(Y]QG@CC^7>I:*T:3T:NNS RXM M.L(8C!;65O!#,,E1; =OXAP,\<;L8].*L^1;^=YODKYN,>?M'TQGT[=/\:MT M5'LX:>Y#3;W5IOMIIN_O8K+LON15\F#G]T/](^]Q[9Y],_A].U1_8H?^>4'_ M ![_ &;_ %"_=]/]S_9^[5ZBGR0M;DC;MRJWW6"R[+[OZ[+[C.?3;">.&*:S MMIX[?;Y"SVZ.$*C&0'7'08^Z,\<' J8PV^_S?*&8,X('J,D@=\#))_\ KU;H MI>S@]7"%_P#"N]^W=)^J"R[+[BC]BA_YY0?\?'VG_4+][U_W_P#:^]4WD0?\ M\H?R'_Q-6**/9T]^2%^_+'_(+);)+Y&7#IUE#G[/8VL'VGFYQ;#+<9P<8'7C MG(Z'!Q5@V]N7BD,,'[@?Z*> 1E<'!(P#@<<$C]:N44U""M:$5R[6BE;TTT^0 M679?<4?L4/\ SR@_X^/M/^H7[WK_ +_^U]ZEDAMY01-#"=V;?D Y!YVC@8!Z MA>"/6KM%#A![PB_6*Z[].H[+L4H;.WLXO*LX8+4=A;VJJ/?*KP2?]H^GI5VB ..BFDELDO30 HHHI@?_]D! end EX-101.SCH 4 ceco-20240305.xsd XBRL TAXONOMY EXTENSION SCHEMA WITH EMBEDDED LINKBASES DOCUMENT 100000 - Document - Document and Entity Information link:presentationLink link:calculationLink link:definitionLink Pre Commencement Issuer Tender Offer Pre-commencement Issuer Tender Offer Entity Address, State or Province Entity Address, State or Province Trading Symbol Trading Symbol Soliciting Material Soliciting Material Entity Address, City or Town Entity Address, City or Town Written Communications Written Communications Entity Central Index Key Entity Central Index Key Entity Tax Identification Number Entity Tax Identification Number Entity Registrant Name Entity Registrant Name Document Period End Date Document Period End Date Entity Address, Postal Zip Code Entity Address, Postal Zip Code Entity Incorporation State Country Code Entity Incorporation, State or Country Code Local Phone Number Local Phone Number City Area Code City Area Code Pre Commencement Tender Offer Pre-commencement Tender Offer Cover [Abstract] Security Exchange Name Security Exchange Name Entity Emerging Growth Company Entity Emerging Growth Company Amendment Flag Amendment Flag Entity File Number Securities Act File Number Entity Address, Address Line Two Entity Address, Address Line Two Entity Address, Address Line One Entity Address, Address Line One Security 12b Title Title of 12(b) Security Document Type Document Type XML 5 R1.htm IDEA: XBRL DOCUMENT v3.24.0.1
Document and Entity Information
Mar. 05, 2024
Cover [Abstract]  
Document Type 8-K
Amendment Flag false
Entity Registrant Name CECO ENVIRONMENTAL CORP.
Document Period End Date Mar. 05, 2024
Entity Central Index Key 0000003197
Entity File Number 000-7099
Entity Incorporation State Country Code DE
Entity Tax Identification Number 13-2566064
Entity Address, Address Line One 14651 North Dallas Parkway
Entity Address, Address Line Two Suite 500
Entity Address, City or Town Dallas
Entity Address, State or Province TX
Entity Address, Postal Zip Code 75254
City Area Code 214
Local Phone Number 357-6181
Written Communications false
Soliciting Material false
Pre Commencement Tender Offer false
Pre Commencement Issuer Tender Offer false
Entity Emerging Growth Company false
Security 12b Title Common Stock, par value $0.01 per share
Trading Symbol CECO
Security Exchange Name NASDAQ
EXCEL 7 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( $@X95@'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 " !(.&58;.GC6NX K @ $0 &1O8U!R;W!S+V-O&ULS9+! M2L0P$(9?17)O)TW50^CFHGA2$%Q0O(5D=C?8I"$9:??M;>-N%]$'\)B9/]]\ M ].9*,V0\#D-$1,YS%>3[T.6)F[8@2A*@&P.Z'6NYT28F[LA>4WS,^TA:O.A M]PB"\UOP2-IJTK J[@2F>JLD2:AIB&=\-:L^/B9^@*S!K!'CX$R-'4#3"T3 MXW'J.[@ %AAA\OF[@'8EENJ?V-(!=DI.V:VI<1SKL2VY>8<&WIX>7\JZE0N9 M=# X_\I.TC'BAITGO[9W]]L'I@07UQ5O*WZS;83D0C;B?7']X7<1]H-U._>/ MC<^"JH-?=Z&^ %!+ P04 " !(.&58F5R<(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 $@X95@/*Q@F8 0 #81 8 >&PO=V]R:W-H965T&UL MC9A=<^HV$(;_BL;M]"H)EOE*4F"&$-(R)R$TT',Z[?1"V (TL2U7DD/X]UW) MQ$Y/S9IH=YX:\)W&JA][.F.RVU=+ACB=,7\F,I_#- M1JJ$&6BJ;4MGBK/(#4KB5N#[O5;"1.J-!N[>0HT&,C>Q2/E"$9TG"5.'.Q[+ M_="CWL>-%['=&7NC-1ID;,N7W/R>+12T6J5*)!*>:B%3HOAFZ(WI[5W0M0-< MCZ^"[_6G:V)?92WEJVW,HJ'G6R(>\]!8"08?;WS"X]@J <<_1U&O?*8=^/GZ M0_W!O3R\S)II/I'Q-Q&9W="[]DC$-RR/S8O<_\J/+^0 0QEK]Y_LB[X=WR-A MKHU,CH.!(!%I\CX$X9T!P'! X[N)!CO*>&38:*+DGRO8&-7OA7M6-!CB1 MVJPLC8)O!8PSHWL9YA!D0U@:D6EJA#F065ID&Z(V:!EXB.W:"H^"=X5@<$+P MB:DKXGZ.??J ]_V>$KUWRM3'U*H"K0\;KX/#AUY=?$(A."=%! M5<9 $#F*AYAMZRCP\1L6:XYP=$N.+JISG$ O?"MLNH!GSI+:J. ZD^GDF4SG M7VM-'L*Y+K.MSL!Y$S,D\3]9203&0.H8,(RJ@VH;CP_12AHW[E MJ/XY?"OV3F81I%)L1%A G@Y>@R1M7P;=7L_O8;.,?O)\>@[A.(K #_7%QP5Y MA'[D.:T-78,D[?2ZE,RE,CM83G',-%DP];IG!XRX*@(4]7"<>+67M<2XY#(7 M,&.ZOH\!5E6 XC[^/>#$MJ0B*[FO+Z(-5<6%$".K2@/%O?U[LF*E -I"R3>1 MAO79QC57?V!H5;6@9Y6+$FTAM0'?^U-D)U=P@V*_&W31-5*5"8J[NTO@&#:Z MIU%P@8"B(%5-H+B5/\H08K+8R11SWP:1=K=_V:/7%".JR@'%O?R;$L;P% *3 M)'EZ-#==2X4+-6T[:%42*&[=2QF+4!B1;LD33&\E6%S+@ZLT\015#0APPUXH M[L+#87T5NT/8H,$^]GFSJ<]?@UXC6>7] 6[4_R.;:9T#62,@+ML(^&F_?Y;5 M3Q.NMC:?OX "%!5@SEA:NQ5J$&Q$JTP^P%UYR<-<63@:K,E*F+C6%QI$;/#= MAD6&KQ6QEO%DN7/ZZZ>S;"=I=67=A['-HN6/O.-%Q[I#)6,>=56R=M M8SDK6W!2,EG>W&2)8D+38JT[=:=<2PZFTVY#;VA2K"NCSY:4!H-?RA0GCTQN MZ)9)L;=B6,N4D*=@7H+A8*2QQ'DJ?$,78&F? KP(&K XU7=>&18/QA<0&>7=J?$,:\M.B^4M/3L,/S[) MWMB2VSG-@DZF8BUY!72LJ(_PZTR3 .B<45XH!:N-9@.'R6,4?-@#E_(!6OBM MNHK=5R3TXE,);2"PU4GTA$8QA D*Q+^,%F)?A+W]K;"D$8_&?>S\;O2@?^^, MX_>65Z(?]+Z:\V/1%WATUC3R]$&*6BL>]O[+"8LUF_S(T5CQY+/!I!R\@5M* M'KEUXG!I^6%9L^.]FZ:IKW#.RW^0\Y^M<\TUMTQ>DO:C_S=7^2V,D_'T7!S1 MJP,Z6PEY7>>9 ]IV03NA1.XJRY/K%.?7A'=O["_PJOE]?\HIUTNUF M<$//\A=>BD[E\ZI[J,NXZBQ_AOMHD\%G'!QR> M(W?#$T%^@2O&+(=/EB> MN$_NG_A.\SQ-LPRKZ'8;9;#%ZI9E\!>/AG$##RP/9'I;K?%NXQ/R^AQ@/7UM M0K"=XI.([12O-2#QNH%'GL>[C>4!#ZP+V.Q _G@>F*FX3YI"5S%NV G&D3S' M$)C%^(QF&5*=##[Q_F"G)$WS/(X %F>0IA@"IQ%', ; 4/2='@//GL?)=-[ M*CG_5U/\!%!+ P04 " !(.&58EXJ[', 3 @ "P %]R96QS+RYR M96QSG9*Y;L,P#$!_Q=">, ?0(8@S9?$6!/D!5J(/V!(%BD6=OZ_:I7&0"QEY M/3P2W!YI0.TXI+:+J1C]$%)I6M6X 4BV)8]ISI%"KM0L'C6'TD!$VV-#L%HL M/D N&6:WO606IW.D5XA-/E_G;@2=&A(E@6FD7)TZ(=I7\=Q_:0T^FO8R*T>EOH^7%H5 J. MW&,EC'%BM/XU@LD/['X 4$L#!!0 ( $@X95@<.&7J/P$ #P" / M>&PO=V]R:V)O;VLN>&ULC5'+;L) #/R5U7Y $U"+5$2XE#Z0JA:5BON2=8C% M/B*O RU?7R=15*1>>O)Z;(UG9A?G2,=]C$?UY5U(A:Z9FWF6I;(&;])-;"#( MI(KD#4M+ARPU!,:F&H"]RZ9Y/LN\P:"7BY%K0]EU$QE*QA@$[( =PCG]SKM6 MG3#A'AWR=Z'[MP.M/ ;T> %;Z%RK5,?S2R2\Q,#&;4N*SA5Z,@QV0(SE'WC; MB?PT^]0C;/8?1H04>I8+8864N-_H^8UH/($L#UW+\0D= ZT,PS/%ML%PZ&C$ M179EH\]AK$.(<_I/C+&JL(15+%L/@8<<"5PG,*0:FZ15,!X*/:XH$ZQZ#"PA MJ748J&2WEYIK=W MDWM)J'7N0;#W\!J-'[IFBG#S^0W1UW6E\ M./VR./ /,+Q=Z*E%9"E*%1KD3,)HMC;!4N++3):BJ#(9BBJ6<%H@XLD@;6E6 M?;!/3K3G>1,)KM\,<'AT_@%02P,$% @ 2#AE6&60>9(9 0 MSP, !, !;0V]N=&5N=%]4>7!E&ULK9--3L,P$(6O$F5;)2XL6*"F M&V +77 !8T\:J_Z39UK2VS-.VDJ@$A6%3:QXWKS/GI>LWH\1L.B=]=B4'5%\ M% )5!TYB'2)XKK0A.4G\FK8B2K636Q#WR^6#4,$3>*HH>Y3KU3.T.EY M&TWP39G 8ED\C<+,:DH9HS5*$M?%P>L?E.I$J+EST&!G(BY84(JKA%SY'7#J M>SM 2D9#L9&)7J5CE>BM0#I:P'K:XLH90]L:!3JHO>.6&F,"J;$#(&?KT70Q M32:>,(S/N]G\P68*R,I-"A$YL01_QYTCR=U59"-(9*:O>"&R]>S[04Y;@[Z1 MS>/]#&DWY(%B6.;/^'O&%_\;SO$1PNZ_/[&\UDX:?^:+X3]>?P%02P$"% ,4 M " !(.&58!T%-8H$ "Q $ @ $ 9&]C4')O M<',O87!P+GAM;%!+ 0(4 Q0 ( $@X95ALZ>-:[@ "L" 1 M " :\ !D;V-0&UL4$L! A0#% @ 2#AE6 \K&"9@! -A$ !@ ("! M#0@ 'AL+W=O7!E&UL4$L%!@ ) D /@( ,4 $ $! end XML 8 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 9 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 11 FilingSummary.xml IDEA: XBRL DOCUMENT 3.24.0.1 html 1 23 1 false 0 0 false 0 false false R1.htm 100000 - Document - Document and Entity Information Sheet http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation Document and Entity Information Cover 1 false false All Reports Book All Reports ceco-20240305.htm ceco-20240305.xsd http://xbrl.sec.gov/dei/2023 false false JSON 13 MetaLinks.json IDEA: XBRL DOCUMENT { "version": "2.2", "instance": { "ceco-20240305.htm": { "nsprefix": "ceco", "nsuri": "http://www.cecoenviro.com/20240305", "dts": { "inline": { "local": [ "ceco-20240305.htm" ] }, "schema": { "local": [ "ceco-20240305.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", "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd", "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd", "https://www.xbrl.org/dtr/type/2022-03-31/types.xsd", "https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd", "https://xbrl.fasb.org/srt/2023/elts/srt-roles-2023.xsd", "https://xbrl.fasb.org/srt/2023/elts/srt-types-2023.xsd", "https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd", "https://xbrl.fasb.org/us-gaap/2023/elts/us-roles-2023.xsd", "https://xbrl.fasb.org/us-gaap/2023/elts/us-types-2023.xsd", "https://xbrl.sec.gov/country/2023/country-2023.xsd", "https://xbrl.sec.gov/dei/2023/dei-2023.xsd" ] } }, "keyStandard": 23, "keyCustom": 0, "axisStandard": 0, "axisCustom": 0, "memberStandard": 0, "memberCustom": 0, "hidden": { "total": 2, "http://xbrl.sec.gov/dei/2023": 2 }, "contextCount": 1, "entityCount": 1, "segmentCount": 0, "elementCount": 24, "unitCount": 0, "baseTaxonomies": { "http://xbrl.sec.gov/dei/2023": 23 }, "report": { "R1": { "role": "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation", "longName": "100000 - Document - Document and Entity Information", "shortName": "Document and Entity Information", "isDefault": "true", "groupType": "document", "subGroupType": "", "menuCat": "Cover", "order": "1", "firstAnchor": { "contextRef": "C_f5f72486-dfef-4d58-94b9-2f754b7f3ab6", "name": "dei:DocumentType", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "p", "body", "html" ], "reportCount": 1, "baseRef": "ceco-20240305.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_f5f72486-dfef-4d58-94b9-2f754b7f3ab6", "name": "dei:DocumentType", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "p", "body", "html" ], "reportCount": 1, "baseRef": "ceco-20240305.htm", "first": true, "unique": true } } }, "tag": { "dei_AmendmentFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "AmendmentFlag", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Amendment Flag", "label": "Amendment Flag", "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission." } } }, "auth_ref": [] }, "dei_CityAreaCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "CityAreaCode", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "City Area Code", "label": "City Area Code", "documentation": "Area code of city" } } }, "auth_ref": [] }, "dei_CoverAbstract": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "CoverAbstract", "lang": { "en-us": { "role": { "label": "Cover [Abstract]", "documentation": "Cover page." } } }, "auth_ref": [] }, "dei_DocumentPeriodEndDate": { "xbrltype": "dateItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentPeriodEndDate", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Document Period End Date", "label": "Document Period End Date", "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD." } } }, "auth_ref": [] }, "dei_DocumentType": { "xbrltype": "submissionTypeItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentType", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Document Type", "label": "Document Type", "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'." } } }, "auth_ref": [] }, "dei_EntityAddressAddressLine1": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressAddressLine1", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Address, Address Line One", "label": "Entity Address, Address Line One", "documentation": "Address Line 1 such as Attn, Building Name, Street Name" } } }, "auth_ref": [] }, "dei_EntityAddressAddressLine2": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressAddressLine2", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Address, Address Line Two", "label": "Entity Address, Address Line Two", "documentation": "Address Line 2 such as Street or Suite number" } } }, "auth_ref": [] }, "dei_EntityAddressCityOrTown": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressCityOrTown", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Address, City or Town", "label": "Entity Address, City or Town", "documentation": "Name of the City or Town" } } }, "auth_ref": [] }, "dei_EntityAddressPostalZipCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressPostalZipCode", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Address, Postal Zip Code", "label": "Entity Address, Postal Zip Code", "documentation": "Code for the postal or zip code" } } }, "auth_ref": [] }, "dei_EntityAddressStateOrProvince": { "xbrltype": "stateOrProvinceItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressStateOrProvince", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Address, State or Province", "label": "Entity Address, State or Province", "documentation": "Name of the state or province." } } }, "auth_ref": [] }, "dei_EntityCentralIndexKey": { "xbrltype": "centralIndexKeyItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityCentralIndexKey", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Central Index Key", "label": "Entity Central Index Key", "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK." } } }, "auth_ref": [ "r1" ] }, "dei_EntityEmergingGrowthCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityEmergingGrowthCompany", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Emerging Growth Company", "label": "Entity Emerging Growth Company", "documentation": "Indicate if registrant meets the emerging growth company criteria." } } }, "auth_ref": [ "r1" ] }, "dei_EntityFileNumber": { "xbrltype": "fileNumberItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityFileNumber", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity File Number", "label": "Securities Act File Number", "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen." } } }, "auth_ref": [] }, "dei_EntityIncorporationStateCountryCode": { "xbrltype": "edgarStateCountryItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityIncorporationStateCountryCode", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Incorporation State Country Code", "label": "Entity Incorporation, State or Country Code", "documentation": "Two-character EDGAR code representing the state or country of incorporation." } } }, "auth_ref": [] }, "dei_EntityRegistrantName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityRegistrantName", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Registrant Name", "label": "Entity Registrant Name", "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC." } } }, "auth_ref": [ "r1" ] }, "dei_EntityTaxIdentificationNumber": { "xbrltype": "employerIdItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityTaxIdentificationNumber", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Tax Identification Number", "label": "Entity Tax Identification Number", "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS." } } }, "auth_ref": [ "r1" ] }, "dei_LocalPhoneNumber": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "LocalPhoneNumber", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Local Phone Number", "label": "Local Phone Number", "documentation": "Local phone number for entity." } } }, "auth_ref": [] }, "dei_PreCommencementIssuerTenderOffer": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "PreCommencementIssuerTenderOffer", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Pre Commencement Issuer Tender Offer", "label": "Pre-commencement Issuer Tender Offer", "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act." } } }, "auth_ref": [ "r3" ] }, "dei_PreCommencementTenderOffer": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "PreCommencementTenderOffer", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Pre Commencement Tender Offer", "label": "Pre-commencement Tender Offer", "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act." } } }, "auth_ref": [ "r4" ] }, "dei_Security12bTitle": { "xbrltype": "securityTitleItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "Security12bTitle", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Security 12b Title", "label": "Title of 12(b) Security", "documentation": "Title of a 12(b) registered security." } } }, "auth_ref": [ "r0" ] }, "dei_SecurityExchangeName": { "xbrltype": "edgarExchangeCodeItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "SecurityExchangeName", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Security Exchange Name", "label": "Security Exchange Name", "documentation": "Name of the Exchange on which a security is registered." } } }, "auth_ref": [ "r2" ] }, "dei_SolicitingMaterial": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "SolicitingMaterial", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Soliciting Material", "label": "Soliciting Material", "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as soliciting material pursuant to Rule 14a-12 under the Exchange Act." } } }, "auth_ref": [ "r5" ] }, "dei_TradingSymbol": { "xbrltype": "tradingSymbolItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "TradingSymbol", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Trading Symbol", "label": "Trading Symbol", "documentation": "Trading symbol of an instrument as listed on an exchange." } } }, "auth_ref": [] }, "dei_WrittenCommunications": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "WrittenCommunications", "presentation": [ "http://www.cecoenviro.com/20240305/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Written Communications", "label": "Written Communications", "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as written communications pursuant to Rule 425 under the Securities Act." } } }, "auth_ref": [ "r6" ] } } } }, "std_ref": { "r0": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b" }, "r1": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b-2" }, "r2": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "d1-1" }, "r3": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "13e", "Subsection": "4c" }, "r4": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "14d", "Subsection": "2b" }, "r5": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Section": "14a", "Number": "240", "Subsection": "12" }, "r6": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Securities Act", "Number": "230", "Section": "425" } } } ZIP 14 0000950170-24-025375-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0000950170-24-025375-xbrl.zip M4$L#!!0 ( $@X95@<4OP*FA( -&Q 1 8V5C;RTR,#(T,#,P-2YH M=&WM/6M7XSBRGW=^A2YS9YH^!R5^R*_PV,.DZ;V<[@86V+MS[Y]52IJE0^^.N@&Z%;GF8BB0\_Z WM ^)Q MD# 1WQQ^.+YJGYY^^.O13P>=')I!TS@[W.GD>:_5;-[=W37NS$:2WC1US_.: M ]EFIVC4&OAIQ,2HK?RH6AJ:9C>+AQ--\ZE-K:)I/MY43"Q@O+79%'&6TSC@ M5?M(Q-^?:"X?^S0;-1\\:C\!GWQ:-16#6>/J=Q#F/?)?XEN+TF! MBOE^CS(I@2WD]@;[.VI6)FZK3DQDO8@.)5=Q>'H@!BTY-D^+/P5C/%9_WK,= M$NQPY_,?!K=\@S&";4XT3$CH8]\E+G9L"KAB=LA"MH-BVI6S<-$ZB0'L81O M26ET&C,^^,*')8B#_)*' /P?H14Z!G%MS$(>8L(L%WO$][ 1.A;QG="DOKUS MI*E_INXY!\V)I4U?J4-M7;-8@#W&*284ENNZ%L>MSE,8/_ M\\\1O5ELA2&-,OYH<=CZJO)D?O <(25GT"=93FGVC.CR3(6#.Q9E7] M[I^-ELEF-*V>5)^K29H3J*GP.$)<*FD[>TAB5B*4:C M=KVJ52F&V$_R/.FV]%Z^'\*$.!/_YBU=@X^%_.(\Z;6TXEE(NR(:MJY%EV?H MC-^ARZ1+XZIA.9*V[RV/K,JI5SEH)+.-.L+S3"D6.2VT%<_SZLVYK^P=- M.14@HS>)BMEPDWGS/8!\#+H 9N;I0_B")$K2UL\%!^[/AO:NH)^?1&R<+/:" M\/_C[/3ZY!.ZNCZ^/KFJT+ !ZT(O)\G+6'%3"7)UTO['Y>GUZ?BEQ MGY-!T*'Q#4?'08[@L>Z99+LIM6D'ST5!E_X-29%++MU_:+?ZS&D: >5RQ&^A M(4K58\X^MN:9*/,6,L-$T3TOM .N@TW"&"8.M[%G4 /[)M6MP' ,S:&K,E$N ME!OGI'#N[*#"97NX(P9YB\$WN NS=&0WS.@0#P$5F,>;0:YO- TZR-J;2H4W M6I/TF]6&UGLQM,:FKE=!YP,^T&$_:Y^CD[']/+\_/OH'I>/P5M<\O+QHOE)!M ML1&T!=&T>S*@8 M(NLGM)AU1$M$,93T>2&<_0R)&(L\06 ^P^Z3KL.X6!:#V M[&RN-3PMRGB/IF"Q3-)=C:WBMK" M)K]5F3"%Q%HS5;5OVP$K=@HO*.F M,XU?]E7<>-K#IYZMHN-!,T\?+KZ,EDFRW $.L)]R^KVE?F+YQ71Z/@;OEJ>Y M"&A4\@DPV32V>7TE/,EY,_95XNH^);J&3>+;&#Y98"(S#?NV3;A.#9/Q8#7[ MZFD<)"D8_"J1X2H'#FLG_3A/A^V$31K,,KE"1E1SWDN36SG.2BSEF:<5'M$[ MFO+YFREP$9M'_H(^,RCNO:TN>HZ&>0Z,6\;BS'>HR0C6 L_#)/0)=FT;Y-T- MF&/J.G"_OQH6_RPB#G/[/%TCN\((V-$\KV;7]\FNEF%JS++A?..0 !,K=+%/ M'1V;H>4'NF,8S/96PZ[7='!:IL $2BNOG7=U$QN6;6OV,\[V(\H^L7>[;[9W MNQMW?IIY*%)[K?1E)WF'I^A?_51D3"@G]SBZ5PNDS"QZ53#AO"?&+8R/JU2$ MJZ+VUBC"+6+O=M+MBBQ[7]PL+0E4J..:D7\01CZ]O$(GW5Z4#'GZCEAYTL1 M9TEC*D=7NSS\E@Z+VIVSX>X5CQ]680^"_D++5' *.&4MYEI6_OHJ8Z^L\ !#;TD$'I'D'?:+ 8AFZ MH.GW.SI\QH%@0VGE.*9G!Z&%B4T()H9.L1>8.G:H'SKQF-,YP!1.%\E5W\G'H/B7B$NA;! MU'4I)J;G8U]W @PL8%H\M*AC6"ME@C;\>9Y>)W=K=8TJ$9U#_W5-OO<R!Y,[VJ>X1FNLU*TJ\/T>7J1)K="7DY<'_C7O[^"A^^M MS:E5'0A*(+=G@^]B)[ -7PM=9AC&2AGW(LER&OV_ MZ*EPR_K8UK$,J_;NO=ZIL22OS'?HI:"21(]&B ]XT,_%K4R#@),7SVHGP@_" M#B#@2$KX*L_8FY9WOVAVS7UFUZ\_NX;N[& OMSLE/G;>B&9N 0:C%+9=AT_# >F$>QVY 3&R%NN.Z3/=T:^F3 M@[03CP&2%:G]%9#!T.?M#QNPR(_S4I(7)+GF!K#A^QP38FB8^*&!J>=RS!R- MTT"7%^F7SK?XFH"2NY!I8=$A_@+!RNY<6)L63(/HR3(AH/JV=A$L'DLI],N!$R MEI*UEA'&]23U*0**6/J36Y@T'.E)K H:*(\I:5A/)T9:JV69Y\,ZRW5$N>LZ M@8]U9H!*H,S''M4H)GKH!680AH;#E]4&_TQ%#IB58;)^7'KAL\?Y5GZ21#X< M]Y,LO)?Z "N,(1+VQ*V.7_8@C8EBE9#VXIR2O M)^WJ#FI_OD2&J36@X5(YQ[5P/4^X?).%C!@$^Y;F8&(S"X0K!.'BGN;JA,O4 MKV6%ZRJ)1 !DCF^^@2(';1[5DO5LR;I''NJ6V'LL5CJA6#?&)&OBVM](KHC6 M*%K6HO4:^Y;&&+$,!QO4 S'Q+1_[IN%C@Q#7"4G(#;KTOG61[86L>>*&" 1!V-8G+N+Z81A8]?_^#R!*]K6(O<*(N>:=D@(8-SA MTE<0.#:F@:P$2$/7T4/?,8.E(QT/1.XTR_H\K07O=03/A / ;O \P2O;;J#@ MS1:HN157)@3*7F6:TE*@CEGRQ1F:IW *[TVK&*$49WFF!IJU'B!I59D^'GG5 M>UM.PR1/Y//H7L-]*MW':+CV:QO'\Y?(DCRWNA28X6U CF/OE;4 MN/]V8L?0&IHCZRI.B2+,N$$YZI^691F+ 58>8S :QHJD968L6I:*+2HX!!T4 M1#3+Y@5;7H+]&L\5GE.J0@]7PZZ?1#6*UX#BZG*XXF1>[;"@O6$4^.9>Q;\P M6&TU'&M-&FSSE-4R&13/)/$D.\V\O:KI(6$F9J[-,#$=P'UH^M@+0MVDU-2Y MOK117.[_0]WPE1I<'2M*6QL8[RI/@N]["'9O=$NC/D?_#,L M>J-]IM4 QXVSXZM/QW\O= GZ1M/O/$=?O[872,1ZO>20-XO"GL9,'L0Y\H#*'2##$>BKBH*U-$ M@C0+/2Y7=U^ESD2[LC2YLR_34#1]7P6%JCY"%:;IR<(T\LYFX1N0KM4I0TZK M@/=P;.DNN.\^-GICW4?XS:#UR0RZ/9W>L:"3C@=>J.L^H-OV-4PP;'B2 M\EN103_08#0.9 2.!H&LRR(;RQ?P,)JRK,@+8;/\7N8N'?F]QG72RMV3+[JU MT7@[[^A#KE]3=:KUO7)CX2ROJ>_<&'M-21CQ 68B+5A'>A_[W7B_>O^/?+K_ MZ$TF_^IGN0B'U2RJ%09VWQ]_Q4EG="#OT1M>',$Q#6&G:]'HC@ZST@7Y\G>F M;,YMB76DY9WFO(N,AF8TT"7/^E&N4LG/07F4D0I0 >CS2#NT$]!6\L%2TO5: M9?,VK-!OH&#:@WBC;<')6L$C#?AJ+K".7)&W: MCO!%CCROH.K6\XG]-3IQ?(G<3 M65&>.44\>C&=//LH2HW4R7@F?6&A*+KN29]6%"G[Q>=P= *SB%6,&HJ(LY)- M%;>!M=%+,JY4TLC:<)]Y$MJ3[$2[!5>.R\-XXTHH]J0Q-,%8XQPEP9-&4YE= M.S/-KSS?C<^L!GYH&.U)SS/O%75)%3Y\B2$E&3*A%P[OH;HC#8LHZY8&DZO) M^J &BN5L&;O/K8&[/=NFU]#TQMCFJ"Z'2C5<[)JE*LNV8JMLW\&$VTD'E[*,DA% M?->>"3!7=KN"L8C/"K*M$:'.\;..P7S":8@#7,-U0RV MJZB'/-*_5CVG-5!YBS"M:Z1&=+W<][#<=UOA:)%R):\$(D6=5 :G QXDF \\ M[P^]T*EZGE(S6R906R0C[01D %W0&XY.Y2&1!JJF MT2>:4Z0J)._*2 .3_ET9UU8^:-E4;R':I*58O=VN7NTGU MDNLD@K=,(MBHVEI7L"*:]V'W_E$BH./OC"X2M?[L TL6X9_G1BBG9'BQ?C1$ M >W+K*SQX#=,XW.4 =#P("E>8>CS#HU"&264 RGKJFP@P^+]&/JHX6@_[R0I M@,NV*UCX#H(<[UHGOVO@MC0\93T9G%K#,]+0GJKW_U17TWIF,&PMKP/8+H>! M?*]X:S+_ZX?PDVRNFZ3V9'*_8@1Q6R1C MV1!B#6<-Y^;$A-^+45/O?;7E4E-OZZR5WX:MFI#3";EP?MNF(J&9-=$7D8H( M?4EN:=#AM_5>56N[I=^W5!-P6PE8B]\V4V\K@:SWGUH ME\ :@+6^\\/3[VM M!++=$3Q$Q_?E;<[5NQ&G7@:KLZO>+KOJH.DG;'CTTT&SDW>CH_\ 4$L#!!0 M ( $@X95B,M6WE:@D /EW 1 8V5C;RTR,#(T,#,P-2YX?_;8H; Z1Q1/"@T^MZ'0!Q0,((3P>= M+[?.\/9\-.K\=O;#^Q\=!UQ\''T&G^$C& 9)] OHCA )$XI!*]N/[T&?_U^ MN^[IJ??V9\_K>]Y:,C)?TFAZGX!7 MP6O 4[&\,88(+<''"/LXB'P$;D6FOX 1#KI@B!"XX:EB< -C2!]@V,TQ%W'8 MCW,=$I].8?+9G\%X[@=PT%G3)( !@?@AHB13@^?K'7LG'> G"8W&:0(_$CJ[ M@!,_1QHE6 QIJA+ MZ)2+>2Y<)!#'T1A!AXM!FADZ=HYX>>?)F=I2;H_'17*OY_[UZ3(O52&,(OR/ M)+V6G7?L\L]C/X9"/(V=J>_/5RDF?CS.I(L/G.2Q$ YA)&L1PZ [)0\N^R ) M\H]AHM+8.W'SC^NB40UA5BD35E%6A!<5!0MS]$Y/3]WL:^?L!P"RRA+-YH0F M(*\SER3(;%N3&?_-$3DZ_)73.W*.>UT&U@%86=LT=-W=2(AR^B82JT+^5A*B MD'CN)[I\E:6Z58ZQKO[P!X<_U.99J77/RU19Q5V(DEB\J:6@;B%/%'R,29+E MRU^)E_-YA"\1+J4X+@W7(. 7_XNV60$GP:P_ *GV7/<\IZ?9R;\)*]*!(7(C4) Q\%*7I^NB=:VF3% M2U%B M?,,P9&TGOF5M!U[1:TH>HGSD+-.N%3=$^8[ZW)6]7<[&!"DXRM\-D6*^:!2P MK@!//S&C4.:>*I@IA&P4\SE[O*)WY!%O*N$U24-$_Z11PMHN;QLICO)A.%;0 M5,L9M>8Y:[?41R/69A=_P*76EF4YHR3O_,4H9 38-"0WTN=T-E;V2/7R1DG? MP&D4,YOA;)ZFY5H2,T11C'W7K $3-OR%?&JKX*B6L]'>KPF;6J"_H_DY"3=V MZK*P4;IL$D\H<\.S>I<-+N@3$SI=;>?;.K$U2JIQ_;IHV?T7CU<1KFY "FX7% M\)+C=\X8-E@'!SDZR.%!AE^$@"J:OL:4%LJHW2[%40 "&;'Q*B!;[)41R3VTAP(19)" 839>"62; MOR;2NH?"8,A A@8Y]L$HA9JBCQQBWD/9/ $"CMAT#9 M\LKH^2[V7VTTR!$! M@\PVI35>"62/OWYA8)\N5 X,&#+@T(>AD,:1,JY+[>K''DI)PB_FI$4.AZ@A MTBNW-N,VI6!Y26B7\LJP0 9F8'3S)0[TXA5D%\;(-%G] M0MU>H[*6PK$O$(@UI8FT/OFMU8AC@/\*E/^]:+A)L6:Y4[2LP ,"\,6]UWUH M@&R1KUF(W8-#(7!!#@P*Y -1"-G615J"WJ4X5D" (S66,C+-MKR6OH <&-P]DH-02#/3;((NO1![(73XF!@0RMR0UR^UV[>\YO"/;'?5$K5]ZAN.!,DJU"WHVE=%?5!(UD"Q &J3>.WQ M(<%MNJT+.N@NYP5;EW MD>)23? 9UX]B+MC#N2 ]T9/<)NE MY.^W1QW^;6:;@VHZPE9NZFG@;3(-OGOG(&XS:_C5=0=V6=#!WP5Y0/?U-/B6 ME&9>4KG?.Z/6)^Y["8/,?G_"[T.9M!<74& M'>9&VUASHR(,S2:ZM9 M--$(89>CMMI%$P 1=CENMUW68R[")&_:;9(-L1YAI9-V6TD;4!+V>=MN^RAC M5\(V[[[;IA(J$[;Y];MM2I$Y89G6>L#UH<#"/&];[A"KPX[".*UUB^4@IS!' M:[WA:H!5F*2UCK FL"OLTEIO6!5+%D9IK?-;%\$6QFFMY[LY7BY,U'('6!.7 M%]9IK0M<7000)FFM[UM:?"CL\:ZUSJYZW4.8Q8B;6VS%+.]U% )BIV:4_T' M_/5[M_07((L7:W\G,G^3_]7*LW\!4$L#!!0 ( $@X95B9Y/5<5$L %U; M" / 8V5C;RUE>#DY7S$N:'1M[7UM=^,VLN;W_178GF3&?0ZMB-2[G+=C]]B=>S>?]D D9"&A2(4OMC6_?@L@*S!H1]%_H2>C<1]=,A=>>,=N6(4J<;DY(:% M@?W/#_2#V36;G7:_V?M_S<8?TYL/C+O1^@_2?MU))QH?F=: 1$NEZ#:UF#^J M;F6/V;[K!T=_:^K_CN_&,A*'X93;XF@:B,.[@$\3*>Z25PQ]USE>$MDBD9>E M/ DD=X_5R"7MCV1T:-/GPE,2D7;4P[GVP'Q5#WX2L^N:*S(_Z\X3TIV>GE^SLXK_.KRXO?CV[^';RA5V=?;V\^G;- M?K[\[>K;O]B_?SNY^G9VQ4XN/K.??_ORA?U^=G+%K*;5HB>O?_OR[7H+*GRK M.*PT>MQ,SN11]>8C&5&S]I.27PG%HR'[=YMQSV$_QZ[+?A<\8&<\\(A60W8G MHS'[-78C.74%^UEZW+,)&.Q*V'[@A+4=N5-_,N7>C%UQ&=(K%B-'-MYFO\32 MH8$2KQ^>1W3\_ CIQY<&Z8\XC.1H5A">^'SRY$A M2QC$NY6![TWH8;*H4S^8-MC!!0\=_M>1?N(C._C[WUKM8_6S_N'C>UCC?;(8 MC#.7XA)"!1/+'7=G;.3;<2@<@U%H(8)0CJ1PF/0<4H;R(LQ.C>5N[(>"A;X; M1]+W0C8-_$C8$9L*G]!EL&@LEM]M:% NO4?\%#0' M9R!"0BS]Q0_T.T=^'!",_XHY/1SHMXZ4P6_2\ MV^B]L>L'YL<5;2['QHE>E Z.VHV.U?_^V)'AU.6SHY$K[I<5W*7V4V;)WJZ? M(:JD@3C6W3XD22?AT9"'0H_\JMH7?:3&6KWO\[*#URJWW>AU++/7[[8'5JO7 M[EF=A=S24UT_U.(_(Z\*_^X)*]8\ %P:UC1H;S977[LK 1^:P&5 4-#@_LZT M^HT6HV^[A)&Y7:C9T&).!/NHF7U\XO:?KG^C#:35:S8&F8$8+)XR+D1$$2P%P(G)M)8)QO'O/-9I M929SS#S?._SEY.0K\QY^RVPVS(=VUH6=PY[ V2+-T7Y49?#'1LJWAV/G22%FS2"I=C!02^*WH_+:4 M0NKTK4;_88; A#N$N3R5(>BTVROV8B%\@KT\ER&@T&DU16!U7TX16-U&]V'$ M!3N#G6V4(6CUGLL0J"=Z'1@1C.BI%$&GMYH%[X%[8#8OI A:W=44P4L>JZAS MZ!T7<;XPU>TT6B\F2EZ>Z[YY'/IOK4$\<=,ZH4"&JC:(!X*I8J(XU,F"Y",^ M= 6;!M(/DMH=$EWZ#IF/YXJ0IFCT9' G58U1Q(FERE++\ZZ14Y6(GBU=R9.B M*@*7]N0'67'41Q;Y"P<_$3R, Y$,L/3TX/(HXO:86'U10A6IH0[W/8#Y@JY4 MF;GW)B')-9CV\7\KY'B1I FIH\S (;=(J&)A;-N$F%&\*)9SXD#5]JVKER.C MB@/F$]K(QNB9B4_O4=5[3FS3>P-="WLX# 3_4WT<)#/@T& W@1_J,K^1*M!3 M=7=\)8"@=]\)@C[]&T:!3]\>/? 5#<9(!G$OHZ1Z6M?C\NS985J]H=ZLRV.3 M\M/L(=*!'!%7JM'G9,YL&A.AT*NF8/I=.4I5Y.I9BQ,[NA1U' M-%;L>#+B))&C6G#\F-![Z,@;DM4/;K@G[70$:,H8J+Z26<0"2!3K M2M+FG."?Z%IWT9.D:YV'76OWG^F::3::+_0M*9^E[BWE,W3+2R4/V5?3[QBK M\KG"4&K)XB4YAG;0S= MO0=KIRO#VWIQ>)/NK,31#X=S;H,/XVI2@+5^$ 8;*W5_9>=OV)M2:IJ9EZ6O MAW&KO9+F4_IN/Z"8[C,XMI:,0ZG\'832[J^"C:SX :.TGF.4UE)B?-&35>Y8 M3H9F)JI&9X4YS!4XO\ 3#W.E#P>H\[#!IUG@8=;C*19H:A9X#CZ.^K^MV=.# M^?3NS7G.?(N4T,/Q;J\UR!6:2RQ_-5_P@+Z4N;76-V'UUC11*D)[7>%#MT!T ME@7).K >\_#A9(2^Y:A].#,6!=P+1WXP68E\I4>/<3U#.)SZH50!*'U7[4-2 M\Y(D6%[:(,0E4G.1E\P]U(PYG4 IH/MQ1#&WYR13GB3H3[M$K,A'I)LC[M[Q69C_SO7R8H9Z]J>(0K+-$\?1YJC,Q]#(6,SRI'1Z?NCZ-,$D:_.C*9EII*W?YE,^E"Z]C;J@<"@G-,N[36>L4LV< M/9XTE?Y.4+7C"(>PH! E"%K^3(@PPR:AA? VD7.)EG"FZH74UPD^I"M5BJ'? M3!$JX3E<3.&Y0PW,)^A[1%C)*'YG-6#9GN'%+NK+.')]_\^C;!NQSMXL]A*O M;B-^KW2Y*+=DVGV?N,H]9FJ3(0M(37HB$*6Z6MY&FY2]W*0ZT[%79]#4_W;- MYH/8C4^)&.[EA,B 2,-L?I_.>51J4O_$(^VQ)]*9^C+;";P:AC]HJMM+)O;/ M-C1XJ:&&#@CBJ:-I:D7$>7LR?!!BJA?0H-]*/PZI%45DL9#IEZ"1= M;3Z8=VPZ9 M1Y8Y5]/?F,)<)\F9:S=+9D/S*!U.)P% D(4&XMZF2%PHNTF3Q"'-\"@@&-/7 MJ5\ZQ\T"?TCC-L\[IPGK9--]H%;HEE<2DJFRCE]"/9'3.6DR6Q6J/(J![D2: MYL\2 5FJ?RRX&XWGN746CH6(TJZI2$4F5"2IAHE/G9"@T/,-2:'2%]4TB\M M@ZBE1#=>%T?M%W*5+M;?J7 5G>^],NE;W+.ESDZN+LXO?KEFIY<7/Y]=G5V< MGK'3DR]?BH'#W;@^51USHKAH) +M;50&145=H:I2B)6[TIM(]!DP%,'UCUI- MQAN3!CO[I@E/AC19#%\^^T6G=1Z=&]-@7_5Z+KM5^2#]EG,]W:8VKX2;NE5% MX]ICC?03=V)(#PMV,(ZB:7CTPP\R_4K8L&D^E1QKTR#GJLLQ7$D1E9<%CUJ\ M6ZD274,*Q-(H=%7^B1+6#?5R+]?+]\G2K>ZE(D-EV:-9VZ*EN@OJ\FD.3>0M%(]#X6[C1- M>GAJWJ(F0&G>EB9[TE/5EWHJ%O*1H$DE#8N7)&TF?D#3$E5#)55J=]&DKFA2 M[WWI&+@G3X&CZ:'NW.*=:5I;#97^5C)$Y/O5;,_04[\)F0$3$QF&^ANDF[/--V.U3;6&06\9*9"J/S/TJCIJ=K4OZ,F;]37]1\-E5NB MG@L^T0VH'3WIK^.9$_@V#X8TX-1OQ/?7=62BI _2*$1\&:4^464W4']6#?FHD^CT^3L%4J)B()LD302:=F @%+?/"OZ2=H2#SIA$D'Y8J7(_Y#W<4 MQHAD^)6PT5R1%.309)R1?#?:P'7-[@/U*J/)UA>T?@EH.EYRE$=,SD=D.C&M M+262]I^JHG$V(;YC\_,2&_HG"MQL/YBJ=':RD&<.NEV#)0Y:>6JQ,AWJZ'"S>W=VMQ'O[KJ'=$3^F MV(\BFB/^+ G+%!8H%=$A'_[]F(KD'R.PUE+J.U((' M^Y?OAVG\\K\I6F"_\D *]KL?>S=U&8EONO#D*[D<=N*0__ #\C5?OIS617[+ M;!_V>]:AU3-WR1%[E?D%FGCW_/H-^]!R2005?"M.'M/YUXGX-T;_5_/Q+;E0 M>U^LR5DX_5TLMF&Q[9V+;>^QN4(MMJVYR.7T\NIK0]_;^$K]=<_/?B%PK?)_HA6!WZ%&%J7[>JMKD):&KC'*:6/M+_K;?TN_EN MVJ,$S>H/:[2V/S]T/SPO M9@KVK(^-SE0GS:7#,G9QFZ!I'93YCO=N'1_QCK>G* EVM)JV: M5@LT!9<.C#R+$0L8>9\KUY/:Q[[M7M+:]5 M+A9NT[GYF3/P"_R6#;_MCM%Y.6=>9*7O '_$N.OZ=^K(O>1.YZ[1[C9USNB[MF%937!M MI0%86ZXU+:/7JAG; K=U5V7I<=MO&RBC"2)^13C_Q MP)/>C=X5H;9"A#I(&JJ#Q]5??8_%WN)F%'V#(;>QO%9Q0-:5?+M=H]-K0]> M;0'$!6PWU77/-)HF8B8DEO*/F=3Y;5[D!U+=H.R)" Q::535E4%;;9IU8D$- ML"V"N(#MIKJV:+YB(?!!LBC_P.=K(*9<.OID>$_=U:@O!].'=]L/MB*!6BL- MM[I2JVD:/908 ;:%$!>PW1BVEF'6+8.+5-!.(R*I%L0$B_B]0/#S9F2]?$A2 M*;#W1F6_ZHBH]IK:L/ (YJXR! MW#=?7>>(+%:-IDAUG0Y;?=-HMWI0-G!; '&!VXUQVVX:W4Z_7LK>>A[K+=%. M\<.9KX&O+F^>J9MI>7KK[OS.9!0M51\WM27)KF$AM@%L"R$N8+LQ;)M&WT)H MDV]FIYJAS94:H4-_=!B'(DW4L%'@3YB*>'@DO1OF"AYB':[B\*DK59H4X71J M5M\)V-9=E>6'K6FT>C4[>@/)FS>9RB^^[]Q)UP435AH==65"2U%AW7:H +=U M5V7I<6OV6X8YJ%EN%4F:-VZ1C[AW(X?N/$7S][_=6TVS=.!!:B MJ@^@NK)EIVFTN_G5,U99UX!M9519>MBV.H;5J1ELD:;).\91A<]+<0ZXLM+X MJ2M7#HQ.[U5'I==6U4!M9519!=0V46F#),[+EO)9C$00".QNKQ%4ZLJ*K6;- M#@@!9NNNRM)CMF_5["PN)&K>%\?88VKSP;&%V.B-4SG>KNP:G,K1-GK-_'(\ ME3F5 ^P =@ [_-0RFKW\"H(JPPX[/;.GE<>9/:WRGMF#$"Y/U%D-2\'.\6.U MKKE'FGYH%T^-Q7=;X^OU U%ZQNXVFX8UV-8Y:RN#5B[6!EV +D 7JU6,- &T M0!>Y)N/6*6#3R._%5&XFW#8'<&'+KS0SW=Y=,DA#WW6>M+LOYR>?SK^N<>J3G+['_!%SQ! ;B(AMV>[F M>FQX*92-2Z;>9"N7^AX&Q#)U@4EM.=$RNFW<,078%D%0 ^@AW7A5[O3 COL=:=;W\'K, S'V70J#PN3 I\$Q$W_%,IKA8N_ZH*=F9 $KKJE:*R4N3NC= MB8O\&F35IF'DVW\:[+M&TV13'K!;[L;BF)E-@U[*0N5*:1X91V,_(($<@WF^ M)Y@,PU@XR.I5NMZIKJ5M]3PD%,"MNRH!W%)J&Z?[[BRO[GM/QTLZ8'HJ:&JU MC7ZK8UB#ELK)_S@,4GTN_R\]T^J;1K?;S]Z01%DZB^_'41C1#ZJ,ED?LL[#% M9"@"UC(-9C6MUNHKU7?H[Y;!Z$5384?R5K@S\'ZEF:"NO-]J8_\0,%L$<8'9 MS3%;LR.:D-G:39C&IU(5ISZXKG,>J(%,*XVQNI*IU6D;@T[-MF,"MW57905P MVS3,'@(AY*OR#X1.;#N>Q*Z^FMSU0VS1J3:JZDJA!UVCU<]OG_3>*]V>DO/% M8FW@MT#B K\;X]<<&-:@U/G;=P 82:&=QT*^O@;!]B?TK;'P0GDK$!]ABR*V M*#['T5W#RG&:6M MB@C$0!0@BO<11<\8#/++0U>/*'! S0X/J#D].[U,:JG6 M[P8#DX/)P>3K5R9:ZA8MG$H!?@ _@!_6\(/9,BRK\E/"@I=YM?((\%IE#/ N M?$_]$OBNJTKBI<*0"'%%1IGRYE@DV537;:./$G>@MA#B K6;HW:08X14"E4C MO;7#]-9R9NL?2&EARHHIZ_,IK9[1'IB8LH(?P _@AS4IK;YAYCC-J@P_(*6U MGTLU],$/6+[<.I=;#4MAT_'CH2OVR>:;U15\MS5:7S\0I2?V;K-I6%L+_%8& MK5S4#KH 78 N'@Y8I]DV>A;HXIE(D/[EU'W]XS9[O3"@%ZE@J76+6G^VP4WE MAGB[H?&5MG,3SI&W<_%<<7_HR$"=A.;3R/MN//&.'1E.73X[4I_J5Z?3&IJL M2>_XCSB,Y&B6M:*?.A2>FL'\^ .]6[KV[I(N#VDNDH?&=''FV<5_G5]=7OQZ=O'MY L[O;SZ MVF G%Y_9]6^?KL\_GY]6O9W4=F(/8X[%#C3D?]SX$.R5K[737Y3MX'/E9G*'Z(KT;U7GU^"'Q MFQ\3>PDS;4ZC7[3_%[3W+I *NE3P^R_^,Q+GUN-?N^][T _"M"/9U*. M@V>7D=?!\8T7WSPN0\@"FC4T,]@]R^SNBI"\A-O9#2'=%VX(>=5JQMZT_A;W M^F1R>1P(P2;T^SAD%,,*Y\$9PF^SEDU6.(HPD( /X/,^^/PN> #8O,VVBN#+ MG[[$KK_?Q<"-+?! >BP:^W'(/2)YR212:_.3SBN5[M6CK^ M>NF"L/KQE[XB &0%'P^,/(<1"Q@!1H 1^!%@!!B!']G?Q#"?NM*WE)'N:!W\ M/5N?!;V%NV+[)Q:6A8Q>6Y&S=WWOHE:K]'589J=E],S\ZK!*46&%@LR"JA( M?CV S:[1;KX8"Q59ZX7;[)Z72UZK:T :D'ZA-KJMCB+IE%GK\,D <'T!W+8L MHVN5^KZ4 IY*4LU$PZD?1NKV3"0;<&X S@UX>IK3;!H=J_*'GB-N C^ '][ M#[V^T6N"'I I 6& ,#:QEU:O9?2M 1@# 07X ?SPN,!DT,YU7:4R_(#;-'>2 M%_HE\,.030.?_HRT4)43IW7-DG=:AMG'*A>"JR*("]AN/G$RNCG>/@E=5SB+ M N46&,AFSS2:)I ,!UP$<8';C7%K]0W+JEG@C.J2-]G*M4BN[E.'%W"'GI)A M%/!(W@HF[J?""U%S4FW/'VF6KK&$1EO,I63B4\2_(>KNQYT M@D'PP//C")F%6J"FK@QI&>8 B07$-440%ZC=>#YB]'M-J!IY!2BWU#CN&V8? M.(;W+8*X0.VFNNX:_69^6ZU*H6H4++PMJ6#_%XL@+E"[J:[; M1J==L\U+*%1XDZ6HH![:7(!R80Z(*:VY(AX!O%,$<0%9#?7];W5 M--O0-A(*4&ZYH6P:[6[-]F?# ===E15 K=FM63H?10IOLI0K$49!;$=QH,Y6 MR#()[$!ZMC\1'Y%2>"-F<*ANQ0_5)8IMY;>YK#)'ZB)X CN '?+/@-2=(&J? M)0%E5)PR3*/5R6\[2-WY @$%V*%*[-#++PE;&6K ]1T[21&=ZU00&P7^A/E3 MD>Q@0;%)I;.IM4V<6T:W@R,Q$&$505S =O.M].T6RL201X%RRXWC5MOH=&NV MNQ[NM^ZJ+#UL+0OU)J@WVZLJ-IM%L M(Z& B*8(X@*UF^_(-0^%[BR N,+NIKKO&H%VS>[-P M&L8;*Q/(O$4XOZ8#&024CZ%\;-V8';2,@9G?"FE!2\@>#M!38[']36V5C9O M$U7G"=,8M"I?A;Y[GJA]E@3,47GF:!EM,[]3#$$="#% %%4DB@[Q1'XU7M7C MB:U7EF!;R]*VEJ$8^8'(*E(B?H]S5*N=:ZUK6GU@]'HU.V0:$5?=55EZU)I- MH]>L66DM]2C M( F,)/!S]M(QVCG6^!4T!XR ">P =GA+T&68K1C<;R'$!6PWAFW?L+HU.U\,525O MRQ_XGOHE\%U7W= KTR-/D$Q NA?IWK7["]O5OT8/NY#!$F")=[&$U:U\_1F. M.0%O@#=R/R"I,T!\@?@"/ &>>(XG^NW*UYS@C)/")X_FQ2>,1U$@AW'$AZY@ MD<].STXOV9EW*P/?F]#3W&6G?C!M(+&4"TBMAJ50ZOBQ&N\]DOIF(/UN:^R^ M?B!*S^\MH]_;UA:%E2$K5UDAXC^0!-Z,.TC(&9 M7Y$/^ /!!MBBNFS1,]KFMM:V2LT6;Z] 6C?^FV:B2E^!E)YK,Q4T:&,>B*.7 M;*N*V2 :/WJ1]\\/UH?GQ2P&?VS!W4#<\D<.L&*(6\7Y,^P:XH*=JZK62HF+ ME>^=3%H^\5#:6,LNSX:BW6>#BD$K[[#Q9B/'K' I,CC(]Q94E4#O&]";XYEU M549OY6:K)5 N\/P&/+?R6W6I,I[AC8'> J(WQUW#I4#OUL]C0")"O>>S=.-( M.$A%E =+H$^D(A#\E%650"]2$4A% ,^UQC-2$?#&A1 7Z$4J8HLU$;4NS/YO M/43"89Q$X3>">?%D* +FCYCM3R:^E]1KA\R/HS#BGB.]&Q1OUZ;2J&:%52@/ MK*E:(6ZYYZ"P:X@+=JZJ6BLE+M9,4;Q=^"Q/0;?[[^ETR8KN\F^UC;[5,KHY MWB)2H9W^2 >#*$ 4&5&TS+[1V=H5R'4DBLK-P4$=H(YUU-'M=HQV#S$&8@P0 M!8CB.:+H64:SB6/'L.._ZH7VIKEKJEY^_S].ZOD)? MST^NSL^N5Y1:GP&ZO+B^_'+^^>3;&0W(-_I'#=,UN_R9G9Y<_XO]_.7RO_<_ M.#L%='(YZ9J$-(\C/Z-JU1>UD8DZKQX_)(#[,:%7W@OG.&G*;#8;S>^S+Y!^ M73X-Q5$HICS@D627J[V@/XN+PCBP:^W'( M/2?\6'.Z?FFG5%YTG9>1;)^LK:;U8JW=MIEYNZ.%H 8HR0$E+Q8G "551\DS ML2>^&<3N2MS*2(L01 M,1OF!BJU]0/2PH0KJ=1Z25M:$WZU.R]TD7Q!W?^%B)C4UWGC=(4W%@SL.]PK MTA&:6Z7,=YBYV38ZS6V?1[]-E>^Y2@S8!7;WAMV^8>5XJ FP6SSL[B5S\RC^ MJWBH=^*H^K8)_1*RR&>!H(]LZ0KFS6- ]7?UFZV20M/ OY5JE7@X0U8(4VI( M"Q.NLE+K)6UI37B762$KCZR05<)0X;.@1VS)5>D\XY[#^,0G@?^C_X" %3./ M0I+G>^:8EM')\:R:"FL:D*V((DL/V:;1-;=]26$E-%U:R+XY+818;_/A_\VC M(7*I@PX;^0&-KL?L. B$9\_8P0V7WD?F^F$(>P2Q5,V%')A&LUWF5<'-%I-> MW%4 [!9&6F!W<^Q:_3*'?\ N:9ANZ!FCW+BU "] "M,C\[3#B^YGB/7;+W9ABO(>U88(' MGA]'S)5<'WDD!>(_T$OE7(DUR.\*M JK&7BMB"++CM<#R\KOG%=D_ J,7&3\ M=A#_G:51WI3/=.0'PRL-EDATU>D2.^+'X99 M,9_OL9"[0BWR3@.UKS.:Z2T>XJ]83E4<"*LL#<_ HVQ:+&[F=Y-4A=4,O%9$ MD:7'*^!:9;@BO;>#H.]D:<^NBO8<,8R8(T.;!A9!'NBD_8QC?<$HE7,<;:/3 MPH&@0.S>I05B-PWUC/Z@ T57&+%(Z>T@V/O$G22-A^ .#%)15V$:G0&".R!V M[]("L1LCMM7&>FV5$8M,W@Z"NW/OEG[P@QD+1"B"6X$H#U1279_1')1Y+Q]\ M!A!;,\0BQJLT7I' VT&,]UF,1! (9W[?%K]G!T/A"7KL(^(]T$I5O<>!:?9+ MK&=LZ -RZXK<5IGG:0!NL2]A?2'>*WQ =SKFW@VU+;WE.U+UB#.+?A%2 L3KJ12ZR5M:4UXE[D>,X]<3RGO M6[?U3LM0W;0NY"T?NLCLE&?B@/GAIO-#JVOT.V7>R84Y(L!;5_!VC1ZP6P_L M[K*(J[9!WZD?1LEQ:F$D)SP2CKY,07HWH4K]#*7K)C][+%9+@%-71'KGIA<% MW,89O"6B'CB9#37=,9JH'0%B]R\M$+OQ:CWF=+4!+Y*!.RSNQTU:96(1.(S- M\PC]4E^F!7\![-87NTVKS#NN@5WD (L4ZWT-Q)1+)ROG3PK!_&@L F;'04 / MI15BL,C2< R\R<8;.\U2!X)(]@&Q]4)L"Z=F5QFN2._MFT;;*O+"+Q &P6U/L6D:[5^8-V8C[D.HK0-PWW^,QY3-L\ "#5-%5 MF"VCW[&@:4!VW]("LIM"=F#TVV5>T@5DD=8K1G@7Q&*QD@O# X-4S5?T<7H[ M$%L$:8'8C7-W7=R04FG$(G>W@^#N4[875ZK+4FT1ZAVZMA^F1[>MV\&+7;OP M,G7Q,J;1Z>'.1D!V[]("LAMJNFVTFT!LE1&+K-].]NIF=S,(+.R"12KK+@Y, M8] K\UX-U.\!NS7%KBJ];4/1%48L5GXLON; \LP<]SK\B(C9/!RS:>#?2D1W^RVHH9S4\.9,[+KF:W,QKHI)1ZY_%[)1X$^8 M]&Y50>6#D!27WSXG9B'8%=+"A"NIU'I)6UH31@W=3G;.+NZX5]LJIH'* M246S9&<%?3:=T(.(+E&P44@6?<\J2-]H]@:H-V[M #MQB?F0DJZA']22 <&";*3E!VLB8+T>X;9C._ M$Y>+67>"5 5( B3Q#I)H&X,F=EN )/:0S\1NBS@4CCHX<%U9&ZP1+@LN:XW+ MZG2-=C^_Y36X+) $2*)J)$&37ZM3]?U8((GMIVZQ^V*Q^V(D/>[9V'V!TG5( M"Q.NI%+K)6UI31AE=SMP_Y_\(/#OLBLK G'KN[?*^=N!<&3$7.DA2X7ZCH)R MZ'NJ>)I=HYOCHDB%50W,5D219<=LKV-8@&RE(8OJNQW$?%=BRF=J4RUB/OB/ M&OF/ [/3+'G0A]4 H+>NZ&UUV*3J?N.@;0SZ9;[@ M'+D"8+>NV&WE>H$@L%M@["+/M_/@S_,CZ@?]A0]= 1LL#:O ?^!4/60-H,AJ M@O:@4^HTW^Y#OD(H'"G \D2!G\5(!(%PEG9XCH2.!"7.URL/T\"C;)Q&Z+9* MK&!'?PJE(P*N3EI>?_PRC+(T- -WLK$[,:QV M?L=$P:$ N\ N$C=41?MJLO6#O7O M:KB7,8# MSX\CEA4*PO!*0R5P&9NZ#,LP+2P) [O%D1;811X0>4#D 7>9!PQ\6P@GO>U! M3*:N/Q."7NS;?[)I'-AC'@HV=;FG\X+B7@2VI+_XH_09?XJ58C!/);V,:;1; M9=XT#!<#Q-8+L=V>"357&*](_NVB0%"&42"'L8[K6.0SS_?TQX'ONFH-6"IF M$"%.B@&U5,Z#')A&MYO?3;/("@*[P.[NL-NVRCQA W:1'"Q2)'CJ3R:^ER;Z M I&E Y'L>RNEX KR2E]!GONR5#'O($>> N0 8UA,:D $6\A< MII5'!&N5,(*]$!&S>3AFT\"_E8YPV'#&#N*0?I#>QZ5]+=R.Y*V,)();^"_X MKW5#9IF&V6Y7W'\AM 4U@!I>2PVMOF'V\ELT 364DQJVG9-]2P!;^ CU;#02 M=J3J*<6]/>;>C6 !CP1+?D[W9U, JZHO]0_BKUC>NNZE;57< M&R'1 H8 0[SK0JA>'QP!CMA-,K:2H:M*KDK/#M0Q0>S $L:&@;GEJ.=T?L9G@ >P.Z0>D'QX/6;MK='*\C[J8Z0>X)% # MJ.'5:^FF,1B &NI.#4A(;CU:%?1GQ*EYTHO5L!2_.'X\=,4>W=%F"Q_?;U9K8R9/!-8 HP15F98JO36S!%>9CBS3G7=-1H+-A6!]/5=C4"<0 M!8BB(D31,5I;V[T,HB@/461A+/W+25OZQS62Z.!QIZ*LM/UL7^_*HH>7W;5,A"_9Z M);/H]NZ2+@]]U\E#8Z=GIY?L[.*_SJ\N+WX]N_AV\H6=7EY];;"3B\_L^K=/ MU^>?ST^NSL^N5Y1:FP&ZH@&Z.#W_L.EOY[[PO1I3)T:0?54X]]>Q$6KU_! M2.5;F=^^J3JRZ8-=2YMX(,A0)T MZ8O%L[7>3D]%&*U]%-Q60EB@ MYCG4O'@D,E #U U\#5 #5 #7U/$"24.>?GPT^54J*FB=Z/.GE;UA3Q4=U/[ M0:0O]6/CL5YB0ZW &TM#]FT9NR@8*GLQD&DU\BMI1Y4/D OD M[@BY_49^]VD"N N@+LCX+;:C?SJ](%<(!?(W1%R+:N1W]6 94 N=CKFO<*M M'S^2$;W)WB!+D?0"F8G2DRTNTWDS&OJ-,E^']7 H-I?Z>X"[-#H&N-\,[EZI M(RJ &^ &N)_4?;?4*4J &^ &N)\^1@!A^3X.-;7R2)-8!4Z3/#7R)Q.?Y/N/ M*O3W]*T\@@>>'T=,W$^%%^*4J!*A#[2[:<:YU-,C+!4!K_7"J]D80,W Z[ZE M!5XW+J*"?P5>]RXM\+JAIKN-_$XN+(.:=UF L7%F8BBP_7NM5"?=69PR6E8',7IH+;;\$+%5)U]7DA]_P'R 'D '*H!CF8 M.99*@A? "^"%:O!"$Y.)]^=\<#?)AY\N?.]0G>K)_)5+2L"\I4F/XDSE5X=5 M76Q! 7+W+RV0^VKDFHUFB14.Y *Y-45NNY_CG 7(!7*!W!TAM]7& 1BX@63[ M-Y"LR44DW0&[5AAL%2?5SESO5NX4!CT0V"MJRTOU=#M]9@DSXU MS)>>>.GS5J/5[[SW)>C&OKOQ3,:S_VS&X5R+S\\?O\;UZC^)Y% MQ4V,[D!ZC/KD2M\+#2;N;:$,9\8]%9*5M9ROFG&2]FY/6]+K4'&4U MK1<+@]].2$48K9UY[JH)"]0\AYH74V1 #3Q+S3$"SP+/ M3 L^QXPHC-KT\6 MG(HHW>W*>,@",?6#2*A[V!BW;1H'[MF"WNZ7>/UZ\:@6D%=*T@OU7+-.+WU560=('-P'/_2)X M!#]%1%E-R;2)15$$/_N7%GC=&*\]J!G.M>):K A8K5(?8P?G"KS6"Z_MFN'U MF!(;\ 7UC1D =WHR+D*:,GK&O(@[P"G&PQ**IPF"VNDT5A()SL MWJ4%7C0'! DBA M4J209R5Z74D!P0)XH6J\<&#EN)I23&+890+HE94GQ0U%WG-[J.\=JGM!F3>_ M1A0A695RI;CY:"FNJELQ'H*F0BH2R'TM;AV-ZE6__R6Q_HC:N( M1;6S5E42W?_)X-10-R!8M"5_3Q99R;[9'<0/ M6B.PUNTN0CC7>BNR['AMH9 !A0RY9Q0NH[$(V$&R8>)C=J4'@AW,,2N63#C8 M_I:)K6H:1X$A\JEIY$/0+?.F"9R]"=C6$;;-4I^8BP0#\%HOO!YT2KW):3L' M+J!X(3?[.E>8$&&$)$/)IIZ%8]#")AFVGZ.MAJ(!6<0\A0"L6;-%%?C7.FJQ M*F!ME3H/".\*P-8+L)V:X14E"[O)(ZA:!1;Q>V02,,&L:";!W/KB2344#<@6 MS0G6--;9/F#+K6;XURIHL2)@[6S]?*-*J!EXK8@BRX[7?H[WR)1!S2A(V-%I M"NJ7P'==Z=TPF=8G(-K!C3VOY-?JW]C3S'&W:#$O[$%452A>J$9Z*C]B*&RF MLA@7?Y;<7! O(%ZH5+Q@XIIPQ N(%Q O;'5;6&7BA5=?^8G"D==;WHGS1QQ& MPF%GG\Z_?3Y!W%:.]"DN/7IU\#6H6>$=(JM"*A+(?4.).X[0A,,%;,L%VTX/ M!25PN/N7%LA]]2FX%DI+/CQ=3K)N*#?-.535P+1ML6ZA^ MA,/=N[1 [AM.=:G7=@/LL]Q!?N&S=.-(. AXRH$BT"8R# AXRJA((!<9!F08 M2J=%P!89!CC<,BH2R$6&H3#[*Q_E&LJ05D"I'NJ<4.>$4KUZ*K4FTH*"JZ;1 M6DH+$ZZ@4JLD+?9CON<46(&-F2 )2 L_5TFEUD1:4'#5-%I+:6'"%51JE:3% MQDQLS,1:,-:"WUE\-2BQPE'% >36%[GU.B4;#K=X6@1L7P_;'LHFX7#W+BV0 M^P;D=DJL<&S,+&1^ 1LS2X4BT.8;YBGY72Y8I<+B%5"20^P;DUNLDA"S#0/_RH2OTCVLZ;39SZO7"*EZ$Y4KKSS:X MJ=PU$$_K<5UNAL>1?SST T<$NB_2NU&=5X\?NGSFQQ&]_EXXQTE39K/9:'Z? M?8$PY?)I*(Y",>4!CT0V"AJ!R;L_K*:J;F4HA]*5T>PH^_Z:)%327,MJ=-N] M[]70K05=TJ>7/K<:@T'GO2]IM#N#@G1D\&)'"M39PG1D9=2>R:+VGZW2VGQ# MR&->+D*%XRO8Z+TUCMT7:AQ3&LEZV>A,J3^^*QV6^>GU0]'?ZE!L$"GH]NX2 M:QGZKO/D2'T;!T*P"?T^#IGP'.&PS\(6DZ$(6,LTWE8L^^'']V^R>)F" MULA6:DJRFE9K>_Q3A-':QYZ52@@+U#R'FA>+>H&:'%%3"J]>/V%!$7"L14%- M>80%:N!8BX*:4OB:;5(Z!VKU!RD;MPFNMPNPT4"R(JJ.]2PODOAJYS4:]CH,':IKM,CM3<&M%HB* %J %:"$O#!,6)?#O(LIS8?\4RE)':^L'\D2ISF9+$,\8]APGZ;*J2+[GA[*V[ MTRJ!Q%<5(I:2D@^L1GX'[+]]:][^ET->E8^L*H&#(< 0CQ@BSZ@-#%%1AJB; MO&#$&C-BOY'?.6A@1# $&*)J#-$"0X A=E5\5,EM7#^K \/T/JZ1Z]^5.&V, M:LQ7+Q-8#5P=5V5"+(DB@=S7(G> !;Y: K=N\A;,<$%4KR6J5AH!N95&+B[=R%6\C36U+>$<>3L7SQ7WAXX,A*VJE]2U%_'$.W9D.'7Y M[$A]JE^=YL::C8[TCO^(PTB.9EDK^JE#X:D\V(\_T+MU&^-Y7FW*;T22,SOD M(]+K$7?O^"Q,LF;+?7G4T/+[=F]O;SE,+ >-75Q^.V-79[^<7'T^O_B%75Q> M'/YRG[RA?UZ=G+]V]79]=[OB=G3"+$]8W53L=\GY>G9Z263 M87IFEMJI:9-7X=)CGN\E)C&68>0'RM&PD?2X9TOZ:2)X& ?4!%??%:'2G,/X MT+\5ZD]W@@V%*P7]%HUY1/]#C]#7;Y+O!(*-A3L=Q2ZCEKCK^G>J:>D1#J43 M^% M#7;"_OZW5OMX+LLC ?3':@ X\^*)2,1,/U/OY_3.R91[LW^$ZP>"&AOY 0VQ MG8HJ[FTW=I24$S]6FV'U7Y7(TM.?.$IF)B)Z_,?% M\XE<2Q\)'GCT0:B,E@UY*&UM5TYRU3<+QV2E!N..+ M,D8*\=0@E3%/,J->(,/A$5^Q>9F01<@"X9*-4V-C?JNH0GB+9@GY*8;T"\5H M1 #1%<^$*(IX_Z/!3<],A4?,P A^A(9Y;?0AO9LG((FX=R,5H!2%1*'!U/#2 M *@^!T(-M'J1+I].=[!G+S7H\S *8IMX1@WEO+%I(&E829%,-Z,^H_Z&1'2! MQJ)ZF2MN2/S%JY8ZIS^GCHF;8$4*LB-[G W7HG=&\C9#XSW6O3=(==Z?^@?U M-I\&*5AJC8:#'*''[#@(A&>KCJ9\HLK#E[Y"9D'40T\I(6@,I4=:_BM6#Y%) M3T+]J-( C9Y/&M6ZX?>D+4^0K2J%)+2NGVZP7[E',9AN).7^<)G\TW<2K7E^ M1*9KDQTD(ZEHWZ;AN!7I.]EIPKD+8L^(?\'M6>]DD%A+J$8S/?DQ?.!)-#UR MQ]$*X,KC:,+6P[_P,@G]BN7F_Z'L-(Q=97RD7S:A'^64S(DZ(7WGH#!&_)JVG([$ .,P^>&-9B6!]JFLC GS _ M#MC3;I4Z,O9CU]&ZIHY2OQ6<5 -*8&$GLQ2&I M[Z%APL%51\HB.[@Y32U%8$_$7 E64FM/+9TH*%#-Q5-B"X4PLN/(3YY4;U48 MH$^'-,&-J&.*L@UEZ/0%Q2R!?G@-IE[N38-=/(-)[6Q=8H@HY5#-"0E#SYCC MZ\X%@F;:=H+)E(Y35"[<@&Y/!^0+/J9G%2<,B3(\Y>*YHA5B5M+_<_T]46.1 MT*S!9GZ\3!S96*;L,Y>#7B9#WTWH57G_Q^-)8\W=62C#QY.$C-.Y^G%*$05U M+_94,VF/YJ["G1GZNS3P<39@Y-5H$I!ZMN<(, X37EYR*)K"YXPX#_=5 )'0 M-CE#$L&E+\Y?HX95N^MD'B)%"!*LCI3GCV&A[$6Y.QFD?I\LX$K0:ZBP.U>H(9QZ>Z-1OF"42 C44 M-%JV=).)P;/3YB>0.,?+'HQ8_U>GI&\U83IWJG-:7N1BU*1.>9P['CB'KN^K MF9D&A)HBIV'$8R-^V6S)29#;"45*",D+9$("]G)LG4K>L9K$Q3>QX2!Y, MO9[FS^3C:++R;9RVMW Q4_QL$J!-,(<9>!5@$6([%>5^#5 MJ.N3G\_8OTZN/EU>O=XJ3>NE5I\>A52M^_&[)S1G6LJ J0]X-IW4>;:O.IM\ ME663$X(AE^$M?XT(8WGIAG!OI(2G&&CI08HZB8LG\Z3>8LZH$YJC,/54R@;82W'\B:U)SART6KK!^=/F MV9JGYQ'_XFMMHFI?>6"U"*6O7U[-4F0)29V/4YDW3:/$J^9^UQM)T+@FH+%T/J@I]U)DU MA,IG+*_!?G[:*J5WZ[OD$P,9_IEH(_:RN$QF:7N=;]81'R$F7KA%U0%'CD8J M(TYO#*1*E"1)897C2#6=/FP\6"#5$=-8Z3#I1RJ6BJ(#Y9))O7IBJQ6_+,M7 M7\Z2TE.*%/.5QY$[#S]M77, MSJEOS#QIL"OJ$/N97N\'X5QW3ZUCG'B>ZL65SCLI8)&2Z#7-P_^31:X4AH2* MIF;KKTYGZII%+;Y2S_#AHK)*@261E%*(GF[\.Z9^"Y582MH,EQO]MY'&A?H5 MA@Z5LSF!3A/J0/M(=XMF.RJ4O)44N*^F^M0*!W&S/TF3 $N3&1[\*70BSTD/ M+J(@F$)6/=J*2[.O+3TADY@L%,&MM/5<@X?'-(&8JM'05N11"_="+8BK!Y17 M"+@=+0+'U$:6PD)GX4XM(DIOBWA9"_SF#?_*ZB: IE:,7'^>!L%95 MH*@L%L=+:Y3JJ9O OR/F3>-*%=KR+)X7.KBG/]O:7+4G(;>DHJH>9%CI:'1Q.Z1YWSP@F2AUQI!/;64%$@LVT866[2\$Y/3E*V"Y9 $J_.6]M9C!B-IKX MJ)_H\S1!ZG(YH3XE[C"QHX"DOA6N/UUX8]6F\A9JA!5?J=[?S%/)28(W_<,Q MB2%=Q6;T[$20(9-IB#3IY(KL.\L,1Z3E.5PYK[52CBDHU+G<,)D1T7PYMK4E M^R.]-A@8>C#\B4Z1*4-Q?57_PI+53>5DUFIYY"H;6YB)AD8R1Z6.Q2KHB=6: MA.JY[\V=<,#OY@08/@#'0[.(2+FC-/ZA*1T-<7"367&J=H7KFUD"IV-E^8F! M\6"6K/GKZ?GRY#7]WG(7LI6&%,=ZF*AUFM?Y02*USO+S1.ZDP$8]X(BASEZJ MJ:=F0C)Z+XV:M,XUH1 ,: ),9$,_>"&W%^O(ZN,EX 5BFB E$ F5J;EF8AVV M>G*QEIPVG!"W=GQ)-[/IY8B-A*/XSDC'16WW[S\6,.2TYTK\3@2?1YN(=2L4C9?6/VB&/JW) MH]C5*0:NUK(3:LLR+NGT>]Z!AXD*LLV;@$^>?V^6@!!):D+I*O,A*=TNMQS. ME$4I9M&,LEY]QW/98R_-/F6M:UM5"9+49=D\4ESL3\?TCB007;9X>Z9<;)@$ MUBHY17V)=!8ED9DL-* I1#C1C!-'>NZJ/B J4G\:D[%F5*A((1ZZU,Z8!"+[ ML^F+&B\J*>BZZM]U4;2B)A)*9-R4AA%H M>IJ9KR.$QRTLJ48[!C\E6#UR#7:=S!"H&?7GB1^(U??3GQ_&BAEV26W)(F;R MBC2!,Y\*J-(,':WX@4HK&*L!F0IG;A59$)KF=, U4Z<&D-0S+-*.B^#>:;#S M^<*N24 MC:<3GC#3D:/,6IMM]FU55:CF3PTU11/3*%EP3.T^"2XU;20$D5F>&E*7W^F! MUK%,[,ZQ,:>)-=/ )Q=_[D326,3_5)$=\\DN;^:5*?'426F) AJIPXKG9A7T MNK'0WG;%0:B(9"GQ9JQ,^#(G?45J"0 ^7< M !$ ( !R1( &-E8V\M,C R-# S,#4N>'-D4$L! A0#% M @ 2#AE6)GD]5Q42P 75L( \ ( !8AP &-E8V\M97@Y =.5\Q+FAT;5!+!08 P # +L #C9P ! end XML 15 ceco-20240305_htm.xml IDEA: XBRL DOCUMENT 0000003197 2024-03-05 2024-03-05 0000003197 false 8-K 2024-03-05 CECO ENVIRONMENTAL CORP. DE 000-7099 13-2566064 14651 North Dallas Parkway Suite 500 Dallas TX 75254 214 357-6181 false false false false Common Stock, par value $0.01 per share CECO NASDAQ false