0000950170-24-093388.txt : 20240808 0000950170-24-093388.hdr.sgml : 20240808 20240808092628 ACCESSION NUMBER: 0000950170-24-093388 CONFORMED SUBMISSION TYPE: 10-Q PUBLIC DOCUMENT COUNT: 77 CONFORMED PERIOD OF REPORT: 20240630 FILED AS OF DATE: 20240808 DATE AS OF CHANGE: 20240808 FILER: COMPANY DATA: COMPANY CONFORMED NAME: FTC Solar, Inc. CENTRAL INDEX KEY: 0001828161 STANDARD INDUSTRIAL CLASSIFICATION: SEMICONDUCTORS & RELATED DEVICES [3674] ORGANIZATION NAME: 04 Manufacturing IRS NUMBER: 814816270 STATE OF INCORPORATION: DE FISCAL YEAR END: 1231 FILING VALUES: FORM TYPE: 10-Q SEC ACT: 1934 Act SEC FILE NUMBER: 001-40350 FILM NUMBER: 241186381 BUSINESS ADDRESS: STREET 1: 9020 N CAPITAL OF TEXAS HWY, SUITE I-260 CITY: AUSTIN STATE: TX ZIP: 78759 BUSINESS PHONE: (907) 312-0717 MAIL ADDRESS: STREET 1: 9020 N CAPITAL OF TEXAS HWY, SUITE I-260 CITY: AUSTIN STATE: TX ZIP: 78759 10-Q 1 ftci-20240630.htm 10-Q 10-Q
false0001828161301Q2--12-31P5YP1Yhttp://fasb.org/us-gaap/2024#OtherLiabilitiesCurrent0.1220.0090001828161srt:MinimumMember2024-06-300001828161us-gaap:PreferredStockMember2023-12-310001828161us-gaap:ToolsDiesAndMoldsMember2023-12-310001828161srt:MinimumMember2022-08-162022-08-1600018281612024-06-300001828161us-gaap:GeneralAndAdministrativeExpenseMember2023-01-012023-06-300001828161us-gaap:GeneralAndAdministrativeExpenseMember2024-01-012024-06-300001828161us-gaap:EquipmentMember2023-12-310001828161ftci:AlphaSteelMember2023-01-012023-06-300001828161us-gaap:ProductMember2023-01-012023-06-300001828161ftci:DayvLlcMember2023-02-090001828161ftci:AlphaSteelMember2024-06-300001828161us-gaap:CommonStockMember2023-03-310001828161us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-01-012023-03-310001828161us-gaap:CostOfSalesMember2024-01-012024-06-300001828161us-gaap:TechnologyEquipmentMember2023-12-310001828161ftci:TreasuryStock1Member2024-06-300001828161us-gaap:PreferredStockMember2022-12-310001828161us-gaap:RetainedEarningsMember2023-12-310001828161us-gaap:RetainedEarningsMember2024-04-012024-06-300001828161us-gaap:ResearchAndDevelopmentExpenseMember2024-04-012024-06-3000018281612024-03-3100018281612023-04-012023-06-300001828161ftci:AlphaSteelMember2023-07-282023-07-280001828161us-gaap:AdditionalPaidInCapitalMember2022-12-310001828161ftci:CbpAssessmentsMember2024-01-012024-06-3000018281612023-01-012023-03-310001828161us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-12-310001828161ftci:FernwehEngagedOperatorCompanyLlcMemberus-gaap:RelatedPartyMember2023-01-012023-06-3000018281612024-01-012024-06-300001828161us-gaap:SellingAndMarketingExpenseMember2024-01-012024-06-300001828161ftci:TamaraMullingsMember2024-06-300001828161ftci:MajorCustomersMember2024-04-032024-04-030001828161us-gaap:AdditionalPaidInCapitalMember2024-01-012024-03-310001828161us-gaap:PreferredStockMember2023-06-300001828161ftci:TamaraMullingsMember2024-04-012024-06-300001828161us-gaap:LeaseholdImprovementsMember2024-06-300001828161us-gaap:RestrictedStockMember2023-01-012023-06-300001828161us-gaap:AdditionalPaidInCapitalMember2023-12-310001828161us-gaap:AdditionalPaidInCapitalMember2024-04-012024-06-300001828161us-gaap:CommonStockMember2024-06-300001828161us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-04-012024-06-300001828161us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-03-310001828161us-gaap:ToolsDiesAndMoldsMember2024-06-300001828161us-gaap:RetainedEarningsMember2023-06-300001828161us-gaap:CostOfSalesMember2023-04-012023-06-300001828161us-gaap:DevelopedTechnologyRightsMember2023-12-310001828161us-gaap:ServiceMember2024-01-012024-06-300001828161us-gaap:AdditionalPaidInCapitalMember2023-01-012023-03-310001828161us-gaap:SellingAndMarketingExpenseMember2023-04-012023-06-3000018281612023-12-222023-12-220001828161us-gaap:PreferredStockMember2024-06-300001828161ftci:AtmProgramMember2023-01-012023-06-300001828161ftci:TreasuryStock1Member2022-12-310001828161srt:MaximumMember2024-06-300001828161us-gaap:SellingAndMarketingExpenseMember2024-04-012024-06-300001828161ftci:MajorCustomersMember2024-04-030001828161us-gaap:CommonStockMember2022-12-310001828161ftci:TreasuryStock1Member2023-03-310001828161us-gaap:ResearchAndDevelopmentExpenseMember2023-04-012023-06-300001828161us-gaap:DevelopedTechnologyRightsMembersrt:MaximumMember2024-06-300001828161ftci:AtmProgramMember2022-09-140001828161us-gaap:ServiceMember2023-04-012023-06-3000018281612023-01-012023-06-3000018281612023-06-300001828161us-gaap:SellingAndMarketingExpenseMember2023-01-012023-06-3000018281612023-12-310001828161ftci:AssessmentMember2024-01-012024-06-300001828161ftci:AlphaSteelMember2023-04-012023-06-300001828161us-gaap:CommonStockMember2023-04-012023-06-300001828161srt:MinimumMemberus-gaap:DevelopedTechnologyRightsMember2024-06-300001828161us-gaap:ServiceMember2024-04-012024-06-300001828161us-gaap:ProductMember2023-04-012023-06-300001828161us-gaap:AdditionalPaidInCapitalMember2023-06-300001828161us-gaap:RetainedEarningsMember2023-01-012023-03-310001828161us-gaap:EquipmentMember2024-06-300001828161us-gaap:EmployeeStockOptionMember2024-01-012024-06-300001828161srt:MinimumMember2024-01-012024-06-300001828161us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-04-012023-06-300001828161ftci:AlphaSteelMember2023-12-310001828161us-gaap:RetainedEarningsMember2023-04-012023-06-300001828161ftci:AlphaSteelMember2023-02-090001828161ftci:FernwehEngagedOperatorCompanyLlcMemberus-gaap:RelatedPartyMember2023-04-012023-06-300001828161us-gaap:AdditionalPaidInCapitalMember2024-03-310001828161us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-03-310001828161us-gaap:AdditionalPaidInCapitalMember2023-03-3100018281612022-12-310001828161us-gaap:ServiceMember2023-01-012023-06-3000018281612023-03-310001828161us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-01-012024-03-310001828161us-gaap:GeneralAndAdministrativeExpenseMember2023-04-012023-06-300001828161ftci:AtmProgramMember2023-04-012023-06-300001828161ftci:AtmProgramMember2024-06-300001828161us-gaap:GeneralAndAdministrativeExpenseMember2024-04-012024-06-300001828161us-gaap:RetainedEarningsMember2024-01-012024-03-310001828161us-gaap:RetainedEarningsMember2023-03-310001828161us-gaap:RetainedEarningsMember2022-12-310001828161us-gaap:CommonStockMember2024-03-3100018281612024-04-012024-06-300001828161us-gaap:EmployeeStockOptionMember2023-01-012023-06-300001828161us-gaap:RetainedEarningsMember2024-03-310001828161srt:MaximumMember2022-08-162022-08-160001828161us-gaap:AdditionalPaidInCapitalMember2024-06-3000018281612024-07-310001828161us-gaap:SoftwareDevelopmentMember2024-06-300001828161ftci:AlphaSteelMember2024-04-012024-06-3000018281612024-01-012024-03-310001828161us-gaap:CommonStockMember2024-04-012024-06-300001828161us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-12-310001828161us-gaap:SoftwareDevelopmentMember2023-12-310001828161us-gaap:CommonStockMember2023-01-012023-03-310001828161srt:MinimumMember2023-12-220001828161ftci:TreasuryStock1Member2023-12-310001828161us-gaap:LeaseholdImprovementsMember2023-12-310001828161ftci:AlphaSteelMember2024-01-012024-06-300001828161us-gaap:ProductMember2024-01-012024-06-300001828161us-gaap:RestrictedStockMember2024-01-012024-06-300001828161us-gaap:CostOfSalesMember2024-04-012024-06-300001828161us-gaap:ResearchAndDevelopmentExpenseMember2024-01-012024-06-300001828161us-gaap:TechnologyEquipmentMember2024-06-300001828161ftci:SouthLakeOneLlcMember2022-02-012022-02-280001828161us-gaap:PreferredStockMember2023-03-310001828161us-gaap:AdditionalPaidInCapitalMember2023-04-012023-06-300001828161ftci:AlphaSteelMembersrt:MaximumMember2024-01-012024-06-300001828161ftci:TaihuaNewEnergyMember2023-02-090001828161us-gaap:RetainedEarningsMember2024-06-300001828161ftci:TreasuryStock1Member2024-03-310001828161us-gaap:CostOfSalesMember2023-01-012023-06-300001828161us-gaap:CommonStockMember2023-06-300001828161us-gaap:CommonStockMember2023-12-310001828161us-gaap:PreferredStockMember2024-03-310001828161us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-06-300001828161us-gaap:DevelopedTechnologyRightsMember2024-06-300001828161srt:MaximumMember2024-01-012024-06-300001828161us-gaap:CommonStockMember2024-01-012024-03-310001828161us-gaap:ResearchAndDevelopmentExpenseMember2023-01-012023-06-300001828161us-gaap:ProductMember2024-04-012024-06-300001828161us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-06-300001828161ftci:TreasuryStock1Member2023-06-30ftci:Daysxbrli:purexbrli:sharesiso4217:USDiso4217:USDxbrli:shares

 

UNITED STATES
SECURITIES AND EXCHANGE COMMISSION

WASHINGTON, D.C. 20549

FORM 10-Q

 

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

 

 

For the quarterly period ended June 30, 2024

 

 

OR

 

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

For the transition period from __________to__________

Commission File Number 001-40350

FTC SOLAR, INC.
(Exact name of registrant as specified in its charter)

Delaware

 

81-4816270

(State or other jurisdiction of incorporation or organization)

 

(I.R.S. Employer Identification No.)

9020 N Capital of Texas Hwy, Suite I-260,

Austin, Texas 78759

 

 

78759

 (Address of principal executive offices)

 

(Zip Code)

 

(737) 787-7906

Registrant's telephone number, including area code

 

Not Applicable

Former name, former address and former fiscal year, if changed since last report

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

Title of each class

Trading Symbol(s)

Name of each exchange on which registered

Common Stock, $0.0001 par value

FTCI

The Nasdaq Stock Market LLC

 

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

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

Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting company, or an emerging growth company. See 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 Rule 12b-2 of the Act). Yes No

As of July 31, 2024, 127,366,590 shares of the registrant's common stock were outstanding.

 

 


 

img146221020_0.jpg 

TABLE OF CONTENTS

 

 

 

Page

PART I - FINANCIAL INFORMATION

 

 

Forward-looking statements

1

 

Item 1.

Financial Statements (Unaudited)

2

 

 

Condensed Consolidated Balance Sheets

2

 

 

Condensed Consolidated Statements of Comprehensive Loss

3

 

 

Condensed Consolidated Statements of Changes in Stockholders’ Equity

4

 

 

Condensed Consolidated Statements of Cash Flows

6

 

 

Notes to Condensed Consolidated Financial Statements

7

 

Item 2.

Management’s Discussion and Analysis of Financial Condition and Results of Operations

23

 

 

 

 

 

Item 3.

Quantitative and Qualitative Disclosures About Market Risk

40

 

 

 

 

 

Item 4.

Controls and Procedures

42

 

 

 

 

PART II – OTHER INFORMATION

 

Item 1.

Legal Proceedings

43

 

Item 1A.

Risk Factors

43

 

Item 2.

Unregistered Sales of Equity Securities and Use of Proceeds

44

 

Item 3.

Defaults Upon Senior Securities

45

 

Item 4.

Mine Safety Disclosures

45

 

Item 5.

Other Information

45

 

Item 6.

Exhibits

46

SIGNATURE

47

 

 

 


 

FORWARD-LOOKING STATEMENTS

This Quarterly Report on Form 10-Q ("Quarterly Report") contains forward-looking statements. All statements other than statements of historical or current facts contained in this Quarterly Report may be forward-looking statements. Statements regarding our future results of operations and financial position, business strategy and plans and objectives of management for future operations, including, among others, liquidity, growth and profitability strategies and factors and trends affecting our business are forward-looking statements. Forward-looking statements can be identified in some cases by the use of words such as “believe,” “can,” “could,” “potential,” “plan,” “predict,” “goals,” “seek,” “should,” “may,” “may have,” “would,” “estimate,” “continue,” “anticipate,” “intend,” “expect,” the negative of these words, other similar expressions or by discussions of strategy, plans or intentions.

The forward-looking statements in this Quarterly Report are only predictions. We have based these forward-looking statements largely on our current expectations and projections about future events and financial trends that we believe may affect our business, financial condition and results of operations. Forward-looking statements involve known and unknown risks, uncertainties, and other important factors that may cause our actual results, performance or achievements, or industry results, to be materially different from any future results, performance or achievements expressed or implied by the forward-looking statements. We believe that these factors include, but are not limited to, the factors set forth under Part II, Item 1A. "Risk Factors" of this Quarterly Report, and more comprehensively in Part I, Item 1A "Risk Factors" included in our Annual Report on Form 10-K for the year ended December 31, 2023. Because forward-looking statements are inherently subject to risks and uncertainties, some of which cannot be predicted or quantified, you should not rely on these forward-looking statements as predictions of future events. The events and circumstances reflected in our forward-looking statements may not be achieved or occur, and actual results could differ materially from those projected in the forward-looking statements.

In addition, statements that “we believe” and similar statements reflect our beliefs and opinions on the relevant subject. These statements are based upon information available to us as of the date of this Quarterly Report, and while we believe such information forms a reasonable basis for such statements, such information may be limited or incomplete, and our statements should not be read to indicate that we have conducted an exhaustive inquiry into, or review of, all potentially available relevant information. These statements are inherently uncertain, and investors are cautioned not to unduly rely upon these statements.

You should read this Quarterly Report with the understanding that our actual future results may be materially different from what we expect. All forward-looking statements attributable to us or persons acting on our behalf are expressly qualified in their entirety by these cautionary statements.

These forward-looking statements speak only as of the date of this Quarterly Report. Except as required by applicable law, we do not plan to publicly update or revise any forward-looking statements contained in this Quarterly Report, whether as a result of any new information, future events or otherwise.

1


 

ITEM 1. FINANCIAL STATEMENTS

 

FTC Solar, Inc.

Condensed Consolidated Balance Sheets

(unaudited)

(in thousands, except shares and per share data)

 

June 30, 2024

 

 

December 31, 2023

 

ASSETS

 

 

 

 

 

 

Current assets

 

 

 

 

 

 

Cash and cash equivalents

 

$

10,779

 

 

$

25,235

 

Accounts receivable, net

 

 

41,511

 

 

 

65,279

 

Inventories

 

 

17,061

 

 

 

3,905

 

Prepaid and other current assets

 

 

14,969

 

 

 

14,089

 

Total current assets

 

 

84,320

 

 

 

108,508

 

Operating lease right-of-use assets

 

 

1,926

 

 

 

1,819

 

Property and equipment, net

 

 

2,446

 

 

 

1,823

 

Intangible assets, net

 

 

264

 

 

 

542

 

Goodwill

 

 

7,169

 

 

 

7,353

 

Equity method investment

 

 

1,529

 

 

 

240

 

Other assets

 

 

2,696

 

 

 

2,785

 

Total assets

 

$

100,350

 

 

$

123,070

 

LIABILITIES AND STOCKHOLDERS' EQUITY

 

 

 

 

 

 

Current liabilities

 

 

 

 

 

 

Accounts payable

 

$

17,580

 

 

$

7,979

 

Accrued expenses

 

 

22,835

 

 

 

34,848

 

Income taxes payable

 

 

106

 

 

 

88

 

Deferred revenue

 

 

2,595

 

 

 

3,612

 

Other current liabilities

 

 

8,202

 

 

 

8,138

 

Total current liabilities

 

 

51,318

 

 

 

54,665

 

Operating lease liability, net of current portion

 

 

1,107

 

 

 

1,124

 

Other non-current liabilities

 

 

3,684

 

 

 

4,810

 

Total liabilities

 

 

56,109

 

 

 

60,599

 

Commitments and contingencies (Note 14)

 

 

 

 

 

 

Stockholders’ equity

 

 

 

 

 

 

Preferred stock par value of $0.0001 per share, 10,000,000 shares authorized; none issued as of June 30, 2024 and December 31, 2023

 

 

 

 

 

 

Common stock par value of $0.0001 per share, 850,000,000 shares authorized; 127,002,580 and 125,445,325 shares issued and outstanding as of June 30, 2024 and December 31, 2023

 

 

13

 

 

 

13

 

Treasury stock, at cost; 10,762,566 shares as of June 30, 2024 and December 31, 2023

 

 

 

 

 

 

Additional paid-in capital

 

 

364,813

 

 

 

361,886

 

Accumulated other comprehensive loss

 

 

(438

)

 

 

(293

)

Accumulated deficit

 

 

(320,147

)

 

 

(299,135

)

Total stockholders’ equity

 

 

44,241

 

 

 

62,471

 

Total liabilities and stockholders’ equity

 

$

100,350

 

 

$

123,070

 

 

The accompanying notes are an integral part of these Condensed Consolidated Financial Statements.

 

2


 

FTC Solar, Inc.

Condensed Consolidated Statements of Comprehensive Loss

(unaudited)

 

 

Three months ended June 30,

 

 

Six months ended June 30,

 

(in thousands, except shares and per share data)

 

2024

 

 

2023

 

 

2024

 

 

2023

 

Revenue:

 

 

 

 

 

 

 

 

 

 

 

 

Product

 

$

8,776

 

 

$

21,074

 

 

$

19,681

 

 

$

53,653

 

Service

 

 

2,654

 

 

 

11,285

 

 

 

4,336

 

 

 

19,600

 

Total revenue

 

 

11,430

 

 

 

32,359

 

 

 

24,017

 

 

 

73,253

 

Cost of revenue:

 

 

 

 

 

 

 

 

 

 

 

 

Product

 

 

10,467

 

 

 

19,152

 

 

 

22,834

 

 

 

50,919

 

Service

 

 

3,306

 

 

 

11,006

 

 

 

5,634

 

 

 

18,098

 

Total cost of revenue

 

 

13,773

 

 

 

30,158

 

 

 

28,468

 

 

 

69,017

 

Gross profit (loss)

 

 

(2,343

)

 

 

2,201

 

 

 

(4,451

)

 

 

4,236

 

Operating expenses

 

 

 

 

 

 

 

 

 

 

 

 

Research and development

 

 

1,535

 

 

 

1,873

 

 

 

2,974

 

 

 

3,795

 

Selling and marketing

 

 

2,036

 

 

 

1,852

 

 

 

4,424

 

 

 

3,563

 

General and administrative

 

 

6,010

 

 

 

8,843

 

 

 

12,577

 

 

 

19,642

 

Total operating expenses

 

 

9,581

 

 

 

12,568

 

 

 

19,975

 

 

 

27,000

 

Loss from operations

 

 

(11,924

)

 

 

(10,367

)

 

 

(24,426

)

 

 

(22,764

)

Interest income (expense), net

 

 

1

 

 

 

(28

)

 

 

(135

)

 

 

(86

)

Gain from disposal of investment in unconsolidated subsidiary

 

 

 

 

 

 

 

 

4,085

 

 

 

898

 

Other income (expense), net

 

 

(7

)

 

 

(141

)

 

 

29

 

 

 

(215

)

Loss from unconsolidated subsidiary

 

 

(246

)

 

 

 

 

 

(511

)

 

 

 

Loss before income taxes

 

 

(12,176

)

 

 

(10,536

)

 

 

(20,958

)

 

 

(22,167

)

(Provision for) benefit from income taxes

 

 

(65

)

 

 

122

 

 

 

(54

)

 

 

(9

)

Net loss

 

 

(12,241

)

 

 

(10,414

)

 

 

(21,012

)

 

 

(22,176

)

Other comprehensive income (loss):

 

 

 

 

 

 

 

 

 

 

 

 

Foreign currency translation adjustments

 

 

36

 

 

 

(408

)

 

 

(145

)

 

 

(413

)

Comprehensive loss

 

$

(12,205

)

 

$

(10,822

)

 

$

(21,157

)

 

$

(22,589

)

Net loss per share:

 

 

 

 

 

 

 

 

 

 

 

 

Basic and diluted

 

$

(0.10

)

 

$

(0.09

)

 

$

(0.17

)

 

$

(0.20

)

Weighted-average common shares outstanding:

 

 

 

 

 

 

 

 

 

 

 

 

Basic and diluted

 

 

126,171,278

 

 

 

112,669,296

 

 

 

125,816,080

 

 

 

109,632,336

 

 

The accompanying notes are an integral part of these Condensed Consolidated Financial Statements.

 

3


 

FTC Solar, Inc.

Condensed Consolidated Statements of Changes in Stockholders’ Equity

(unaudited)

 

 

For the three and six months ended June 30, 2024:

 

 

 

Preferred stock

 

 

Common stock

 

 

Treasury stock

 

 

 

 

 

 

 

 

 

 

 

 

 

(in thousands, except shares)

 

Shares

 

 

Amount

 

 

Shares

 

 

Amount

 

 

Shares

 

 

Amount

 

 

Additional
paid-In
capital

 

 

Accumulated other comprehensive loss

 

 

Accumulated deficit

 

 

Total
stockholders'
equity

 

Balance as of December 31, 2023

 

 

 

 

$

 

 

 

125,445,325

 

 

$

13

 

 

 

10,762,566

 

 

$

 

 

$

361,886

 

 

$

(293

)

 

$

(299,135

)

 

$

62,471

 

Shares issued during the period for vested restricted stock awards

 

 

 

 

 

 

 

 

506,928

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Stock-based compensation

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,639

 

 

 

 

 

 

 

 

 

1,639

 

Net loss

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(8,771

)

 

 

(8,771

)

Other comprehensive loss

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(181

)

 

 

 

 

 

(181

)

Balance as of March 31, 2024

 

 

 

 

 

 

 

 

125,952,253

 

 

 

13

 

 

 

10,762,566

 

 

 

 

 

 

363,525

 

 

 

(474

)

 

 

(307,906

)

 

 

55,158

 

Shares issued during the period for vested restricted stock awards

 

 

 

 

 

 

 

 

1,009,094

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Issuance of common stock upon exercise of stock options

 

 

 

 

 

 

 

 

41,233

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

3

 

Stock-based compensation

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,285

 

 

 

 

 

 

 

 

 

1,285

 

Net loss

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(12,241

)

 

 

(12,241

)

Other comprehensive gain

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

36

 

 

 

 

 

 

36

 

Balance as of June 30, 2024

 

 

 

 

$

 

 

 

127,002,580

 

 

$

13

 

 

 

10,762,566

 

 

$

 

 

$

364,813

 

 

$

(438

)

 

$

(320,147

)

 

$

44,241

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

The accompanying notes are an integral part of these Condensed Consolidated Financial Statements.

 

4


 

FTC Solar, Inc.

Condensed Consolidated Statements of Changes in Stockholders’ Equity (Continued)

(unaudited)

 

 

For the three and six months ended June 30, 2023:

 

 

 

Preferred stock

 

 

Common stock

 

 

Treasury stock

 

 

 

 

 

 

 

 

 

 

 

 

 

(in thousands, except shares)

 

Shares

 

 

Amount

 

 

Shares

 

 

Amount

 

 

Shares

 

 

Amount

 

 

Additional
paid-In
capital

 

 

Accumulated
other
comprehensive
loss

 

 

Accumulated
deficit

 

 

Total
stockholders'
equity

 

Balance as of December 31, 2022

 

 

 

 

$

 

 

 

105,032,588

 

 

$

11

 

 

 

10,762,566

 

 

$

 

 

$

315,345

 

 

$

(61

)

 

$

(248,845

)

 

$

66,450

 

Shares issued during the period for vested restricted stock awards

 

 

 

 

 

 

 

 

1,498,987

 

 

 

 

 

 

 

 

 

 

 

 

2,775

 

 

 

 

 

 

 

 

 

2,775

 

Issuance of common stock upon exercise of stock options

 

 

 

 

 

 

 

 

265,125

 

 

 

 

 

 

 

 

 

 

 

 

51

 

 

 

 

 

 

 

 

 

51

 

Shares issued for legal settlement

 

 

 

 

 

 

 

 

797,396

 

 

 

 

 

 

 

 

 

 

 

 

2,000

 

 

 

 

 

 

 

 

 

2,000

 

Sale of shares

 

 

 

 

 

 

 

 

2,683,000

 

 

 

 

 

 

 

 

 

 

 

 

6,292

 

 

 

 

 

 

 

 

 

6,292

 

Stock offering costs

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(32

)

 

 

 

 

 

 

 

 

(32

)

Stock-based compensation

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2,472

 

 

 

 

 

 

 

 

 

2,472

 

Net loss

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(11,762

)

 

 

(11,762

)

Other comprehensive loss

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(5

)

 

 

 

 

 

(5

)

Balance as of March 31, 2023

 

 

 

 

 

 

 

 

110,277,096

 

 

 

11

 

 

 

10,762,566

 

 

 

 

 

 

328,903

 

 

 

(66

)

 

 

(260,607

)

 

 

68,241

 

Shares issued during the period for vested restricted stock awards

 

 

 

 

 

 

 

 

1,213,037

 

 

 

 

 

 

 

 

 

 

 

 

2,085

 

 

 

 

 

 

 

 

 

2,085

 

Issuance of common stock upon exercise of stock options

 

 

 

 

 

 

 

 

39,087

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Sale of shares

 

 

 

 

 

 

 

 

6,589,000

 

 

 

1

 

 

 

 

 

 

 

 

 

17,347

 

 

 

 

 

 

 

 

 

17,348

 

Stock offering costs

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(127

)

 

 

 

 

 

 

 

 

(127

)

Stock-based compensation

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2,669

 

 

 

 

 

 

 

 

 

2,669

 

Net loss

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(10,414

)

 

 

(10,414

)

Other comprehensive loss

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(408

)

 

 

 

 

 

(408

)

Balance as of June 30, 2023

 

 

 

 

$

 

 

 

118,118,220

 

 

$

12

 

 

 

10,762,566

 

 

$

 

 

$

350,877

 

 

$

(474

)

 

$

(271,021

)

 

$

79,394

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

The accompanying notes are an integral part of these Condensed Consolidated Financial Statements.

 

5


 

FTC Solar, Inc.

Condensed Consolidated Statements of Cash Flows

(unaudited)

 

 

Six months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

Cash flows from operating activities

 

 

 

 

 

 

Net loss

 

$

(21,012

)

 

$

(22,176

)

Adjustments to reconcile net loss to cash used in operating activities:

 

 

 

 

 

 

Stock-based compensation

 

 

2,924

 

 

 

7,852

 

Depreciation and amortization

 

 

812

 

 

 

666

 

Amortization of debt issue costs

 

 

236

 

 

 

355

 

Provision for obsolete and slow-moving inventory

 

 

177

 

 

 

1,261

 

Loss from unconsolidated subsidiary

 

 

511

 

 

 

 

Gain from disposal of investment in unconsolidated subsidiary

 

 

(4,085

)

 

 

(898

)

Warranty and remediation provisions

 

 

1,639

 

 

 

2,852

 

Warranty recoverable from manufacturer

 

 

238

 

 

 

30

 

Credit loss provisions

 

 

587

 

 

 

203

 

Deferred income taxes

 

 

223

 

 

 

184

 

Lease expense and other

 

 

609

 

 

 

497

 

Impact on cash from changes in operating assets and liabilities:

 

 

 

 

 

 

Accounts receivable

 

 

23,181

 

 

 

(17,879

)

Inventories

 

 

(13,333

)

 

 

7,643

 

Prepaid and other current assets

 

 

(864

)

 

 

70

 

Other assets

 

 

(562

)

 

 

(1,422

)

Accounts payable

 

 

9,483

 

 

 

11,247

 

Accruals and other current liabilities

 

 

(13,463

)

 

 

(7,895

)

Deferred revenue

 

 

(1,017

)

 

 

(8,804

)

Other non-current liabilities

 

 

(1,331

)

 

 

(4,264

)

Lease payments and other, net

 

 

(588

)

 

 

(331

)

Net cash used in operations

 

 

(15,635

)

 

 

(30,809

)

Cash flows from investing activities:

 

 

 

 

 

 

Purchases of property and equipment

 

 

(1,131

)

 

 

(195

)

Equity method investment in Alpha Steel

 

 

(1,800

)

 

 

(900

)

Proceeds from disposal of investment in unconsolidated subsidiary

 

 

4,085

 

 

 

898

 

Net cash provided by (used in) investing activities

 

 

1,154

 

 

 

(197

)

Cash flows from financing activities:

 

 

 

 

 

 

Sale of common stock

 

 

 

 

 

20,640

 

Stock offering costs paid

 

 

 

 

 

(114

)

Proceeds from stock option exercises

 

 

3

 

 

 

51

 

Net cash provided by financing activities

 

 

3

 

 

 

20,577

 

Effect of exchange rate changes on cash and cash equivalents

 

 

22

 

 

 

(139

)

Decrease in cash and cash equivalents

 

 

(14,456

)

 

 

(10,568

)

Cash and cash equivalents at beginning of period

 

 

25,235

 

 

 

44,385

 

Cash and cash equivalents at end of period

 

$

10,779

 

 

$

33,817

 

 

 

 

 

 

 

Supplemental disclosures of cash flow information:

 

 

 

 

 

 

Purchases of property and equipment included in ending accounts payable and accruals

 

$

202

 

 

$

12

 

Stock issued for accrued legal settlement

 

$

 

 

$

2,000

 

Right-of-use asset and lease liability recognition for new leases

 

$

500

 

 

$

1,417

 

Cash paid during the period for interest

 

$

189

 

 

$

255

 

Cash paid during the period for taxes, net of refunds

 

$

78

 

 

$

126

 

 

The accompanying notes are an integral part of these Condensed Consolidated Financial Statements.

 

6


 

FTC Solar, Inc.

Notes to Condensed Consolidated Financial Statements

(unaudited)

1. Description of business

FTC Solar, Inc. (the “Company”, “we”, “our”, or “us”) was founded in 2017 and is incorporated in the state of Delaware. In April 2021, we completed an initial public offering ("IPO"), and our common stock currently trades on the Nasdaq Capital Market under the symbol “FTCI”.

We are a global provider of solar tracker systems, supported by proprietary software and value-added engineering services. Solar tracker systems move solar panels throughout the day to maintain an optimal orientation relative to the sun, thereby increasing the amount of solar energy produced at a solar installation. Our original two-panel in-portrait solar tracker system is currently marketed under the Voyager brand name (“Voyager”) and our one module-in-portrait ("1P") solar tracker system, which became certified in 2023, is marketed under the Pioneer brand name ("Pioneer"). We also have a mounting solution to support the installation and use of U.S.-manufactured thin-film modules by project owners. Our primary software offerings include SUNPATH which is intended to help customers optimize solar tracking for increased energy production, our SUNOPS real-time operations management platform and our web-based ATLAS portfolio management software. In addition, we have a team of renewable energy professionals available to assist our U.S. and worldwide clients in site layout, structural design, pile testing and other needs across the solar project development and construction cycle. The Company is headquartered in Austin, Texas, and has international subsidiaries in Australia, China, India, South Africa and Spain.

We are an emerging growth company, as defined in the Jumpstart Our Business Startups (JOBS) Act. Under the JOBS Act, we elected to use the allowed extended transition period to delay adopting new or revised accounting standards until such time as those standards apply to private companies.

 

2. Summary of significant accounting policies

Basis of presentation and principles of consolidation

The accompanying unaudited condensed consolidated financial statements include the results of the Company and its wholly owned subsidiaries and have been prepared in accordance with accounting principles generally accepted in the United States of America (“U.S. GAAP”) for interim financial statements and pursuant to Form 10-Q and Article 10 of Regulation S-X. In the opinion of management, all adjustments of a normal recurring nature have been made that are considered necessary for a fair statement of our financial position as of June 30, 2024, and December 31, 2023, our results of operations for the three and six months ended June 30, 2024 and 2023, and our cash flows for the six months ended June 30, 2024 and 2023. The condensed consolidated balance sheet as of December 31, 2023 has been derived from the Company’s audited consolidated financial statements but does not include all disclosures required by accounting principles generally accepted in the United States of America. Operating results for the three and six months ended June 30, 2024 are not necessarily indicative of the results that may be expected for the year ending December 31, 2024. Intercompany balances and transactions have been eliminated in consolidation.

Certain information and disclosures normally included in the notes to annual financial statements prepared in accordance with U.S. GAAP have been omitted from these interim financial statements pursuant to the rules and regulations of the Securities and Exchange Commission (the “SEC”). Therefore, these unaudited condensed consolidated financial statements should be read in conjunction with the consolidated financial statements and related notes included in the Company’s Annual Report on Form 10-K for the year ended December 31, 2023 (our "2023 Annual Report").

We currently operate in one business segment, the manufacturing and servicing of solar tracker systems.

Liquidity

We have incurred cumulative losses since inception and have a history of cash outflows from operations. As of June 30, 2024, we had $10.8 million of cash on hand, $33.0 million of working capital and approximately $64.9 million of remaining capacity available for future sales of our common stock under our ATM program as defined and described further in Note 4, "ATM program" below. There can be no assurance that we will be able to sell any additional shares of our common stock under the ATM program and no assurance regarding

 

7


 

the price at which we will be able to sell such shares, and any sales of our common stock under the ATM program may be at prices that result in additional dilution to our existing stockholders.

On December 22, 2023, we received notification from The Nasdaq Stock Market LLC (“Nasdaq”) that we were not in compliance with the requirement to maintain a minimum closing bid price of $1.00 per share, as set forth in Nasdaq Listing Rule 5450(a)(1), because the closing bid price of the Company’s common stock was below $1.00 per share for 30 consecutive business days. In accordance with Nasdaq Listing Rule 5810(c)(3)(A), we were initially given a period of 180 calendar days from the date of notification, or until June 19, 2024, to regain compliance with the minimum bid price requirement, which was not achieved. Effective May 31, 2024, trading in our common stock transferred from the Nasdaq Global Market to the Nasdaq Capital Market. On June 21, 2024, we received notification from Nasdaq that we were approved for an additional 180-day period, or until December 17, 2024, to cure the bid price deficiency in accordance with Nasdaq Listing Rule 5810(c)(3)(A). We are currently evaluating all of our options to achieve compliance with Nasdaq requirements for continued listing, which may include effecting a reverse stock split, if necessary, at least 10 days prior to December 17, 2024. At this time, our common stock continues to trade on the Nasdaq Capital Market under the symbol "FTCI". If at any time before December 17, 2024 the bid price of our common stock closes at or above $1.00 per share for a minimum of ten consecutive business days, Nasdaq will provide written notification that we have achieved compliance with this minimum bid price requirement. If we fail to regain compliance with the minimum bid price requirement during this second 180-day period, then Nasdaq will notify us that our common stock is subject to delisting.

Effective April 30, 2024, our Senior Secured Revolving Credit Facility ("Credit Facility) expired unused and has not been replaced as of June 30, 2024. We continue to evaluate additional opportunities to obtain financing.

At June 30, 2024, we had a contractual obligation that could require us to make additional capital contributions of up to $0.8 million to Alpha Steel, as well as make a minimum level of purchases from Alpha Steel, as described further in Note 3, "Equity method investment" below. In the event we were to fail to meet our minimum required purchase commitments during a specified period, including the current period from January 1, 2024 to June 30, 2025, we may be required to make a cash payment for the net profit attributable to any unfilled requirements, calculated as specified in the agreement, in an amount not to exceed $4.0 million in the aggregate.

The most notable incentive program impacting our U.S. business has historically been the investment tax credit ("ITC") for solar energy projects, which allows taxpayers to offset their U.S. federal income tax liability by a certain percentage of their cost basis in solar energy systems placed in service for commercial use. The Inflation Reduction Act of 2022, passed by the U.S. Congress and signed into law by President Biden on August 16, 2022, expanded and extended the tax credits and other tax benefits available to solar energy projects and the solar energy supply chain. ITCs have been extended for such projects through at least 2032 and, depending on the location of a particular project and its ability to satisfy certain labor and domestic content requirements, the ITC percentage can range between 30% and 50%. U.S. manufacturers of specific solar components are now eligible to claim production tax credits as an alternative to the ITC. Implementing regulations for this law are, in certain cases, still being finalized and the impact of these regulations continue to be evaluated by developers of new solar projects and manufacturers of solar components. Our investment in and commitments made to Alpha Steel will allow us to obtain certain benefits as a result of this new production tax credit program.

We have taken steps to expand and diversify our manufacturing partnerships and have adjusted our modes of transportation to mitigate the impact of headwinds that might arise in the global supply chain and logistics markets. As an example, we modified our ocean freight from previously using charter shipments to now using containerized shipments as costs in the container market began to decrease starting in 2022, but more recently have begun to increase. However, we have been able to mitigate some of this increase as a result of increasing our domestic production capabilities. We continue to monitor the logistics markets and will continue to evaluate our use of various modes of transportation when warranted to optimize our transportation costs. Additionally, from February 2022 to September 2023, we utilized a related-party consulting firm to support us in making improvements to our processes and performance in various areas, including design, sourcing, logistics, pricing, software and our distributed generation business. For further information regarding this consulting firm, see Note 16, "Related party transactions" below. These steps, and others, have allowed us to improve our business processes and lower our product cost structure, thus improving our direct product margins in recent periods. As an example, we generated positive gross profit during each quarter in 2023. Additionally, we have made substantial progress in lowering our operating costs, showing significant improvement since becoming a public company, as well as in comparison to the prior year periods included in this Quarterly Report. These combined factors have allowed us to significantly lower the estimated quarterly revenue level that we believe is required to break even. However, our low revenue levels for the three and six months ended June 30, 2024, have prevented us from continuing to show positive quarterly gross profit in 2024, similar to 2023, as revenues have not been sufficient to fully cover our indirect costs.

Similar to previous periods, we continue to evaluate additional opportunities in 2024 to address existing market challenges, our cost structure and our historical use of cash. In 2023, (i) we introduced a new mounting solution to support the installation and use of

 

8


 

U.S.-manufactured thin-film modules, (ii) Pioneer, our 1P solar tracker solution, became certified, and (iii) we introduced SUNOPS, a cloud-based, tracker agnostic solar asset monitoring solution allowing asset owners and managers to evaluate the operation and performance of their solar deployments. We have continued to enhance our customer offerings in 2024, including the launch of our Automated Hail Stow Solution which is aimed at minimizing solar panel damage caused by hail storms. As described elsewhere in this Quarterly Report, we also have recently added experienced and accomplished leadership talent to head our North America and International sales organizations and have named a new President and Chief Executive Officer with significant experience in the solar industry who will join us on August 19, 2024.

In accordance with Accounting Standards Codification ("ASC") 205-40, Going Concern, we have evaluated whether there are conditions and events, considered in the aggregate, which raise substantial doubt about our ability to continue as a going concern within one year after the date our condensed consolidated financial statements are issued.

Management believes that our existing cash on hand, as well as the continuing impact of certain of the actions described within this memo and our expectations of (i) the expected timing of future customer project activity, including activity related to certain large project awards previously received, and (ii) the positive results in recent periods from our efforts to increase our direct product margins and lower our cost structure, will allow us to grow profitably and generate positive cash flow from operations during the next twelve months in amounts that will be sufficient, along with our other available resources such as our existing working capital and, the remaining capacity available for future sales of our common stock under our ATM program, to fund our operations for at least one year from the date of issuance of our condensed consolidated financial statements.

While there are already many underlying drivers of growth in the solar industry, the expected positive impact on demand for our products from these drivers of growth could take longer than expected to occur because the timing of construction activity by existing customers and solar project developers can be uncertain. As an example, we have experienced in recent periods customer delays caused by interconnection issues, equipment shortages and the timing and ability of obtaining financing at acceptable levels. In addition, domestic and international market conditions, including differences between margins on international and U.S. projects, could deteriorate significantly from what we currently expect, and regulatory and international trade policies could become more stringent as a result of (i) findings from an ongoing investigation by the U.S. Department of Commerce (the Solar Circumvention Investigation") in response to a petition by Auxin Solar, Inc. of claims related to alleged circumvention of U.S. antidumping and countervailing duties ("AD/CVD") by solar manufacturers in certain Southeast Asian countries, (ii) enforcement of the Uyghur Forced Labor Prevention Act ("UFLPA") passed by the U.S. Congress and signed into law by President Biden on December 23, 2021, by U.S. Customs and Border Protection ("CBP"), and (iii) other factors, which may result in a need for us to issue additional debt or obtain new equity financing to adequately fund our existing operations beyond the next twelve months. We continue to actively explore options to obtain additional sources of capital through the issuance of new debt, asset financing or other potential measures for our longer-term needs. However, we may be unable to obtain any desired additional financing on terms favorable to us, or at all, depending on market and other conditions, which could result in curtailment of our current operations and our ability to further invest in our products and new technology. The ability to raise additional financing depends on numerous factors, some of which are outside of our control, including macroeconomic factors such as the impact of inflation, the level of interest rates, supply chain or other effects from the ongoing conflicts in the Ukraine and the Middle East, general market conditions, the health of financial institutions (including recent bankruptcies and financial difficulties involving certain regional banks and related impacts that have occurred and continue to occur in the banking industry), investors' and lenders' assessments of our prospects and the prospects of the solar industry in general and the ability of our common stock to continue to trade in active markets.

Use of estimates

Preparation of condensed consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements, and the reported revenue and expenses during the period. Estimates are used for calculating the measure of progress of our solar tracker projects and deriving the standalone selling prices of the individual performance obligations when determining amounts to recognize for revenue, estimating allowances for credit losses and slow-moving and obsolete inventory, determining useful lives of long-lived assets and the estimated fair value of those assets for impairment assessments, and estimating the fair value of investments, stock compensation awards, warranty liabilities and federal and state taxes, including tax valuation allowances, as well as other contingencies. We base our estimates on historical experience and anticipated results, trends, and various other assumptions that we believe are reasonable under the circumstances, including assumptions as to future events. Actual results could differ from those estimates due to risks and uncertainties.

 

9


 

Concentration of credit risk

Financial instruments that potentially subject the Company to concentrations of credit risk are primarily cash and accounts receivable.

We regularly maintain cash balances with various financial institutions that exceed federally insured amounts, but we have experienced no losses associated with these amounts to date. We also took action in early 2023 to reallocate cash balances between different financial institutions based on our assessment as to the financial health of certain institutions.

We extend credit to customers in the normal course of business, often without requiring collateral. We also perform credit analyses and monitor the financial health of our customers to reduce credit risk.

The Company’s accounts receivables are derived from revenue earned from customers primarily located in the U.S. and Australia. No countries other than the U.S. and Australia accounted for 10% or more of our revenue. Most of our customers are project developers, solar asset owners and engineering, procurement and construction (“EPC”) contractors that design and build solar energy projects. We typically rely on a small number of customers that account for a large portion of our revenue each period and our outstanding receivables at each period end.

Cash and cash equivalents

We consider all highly liquid investments purchased with an original maturity of three months or less to be cash equivalents. Certain of our cash equivalents include deposits in money market funds that invest primarily in short-term securities issued or guaranteed by the U.S. government or its agencies or instrumentalities and contain no restrictions on immediate redemption. These deposits totaled $5.9 million at June 30, 2024 and $13.9 million at December 31, 2023. Interest earned on cash equivalents is included in interest income, which is reported net of interest expense in our condensed consolidated statements of comprehensive loss.

Accounts receivable, net

Trade receivables are recorded at invoiced amounts, net of allowances for credit losses, and do not bear interest. We generally do not require collateral from our customers; however, in certain circumstances, we may require letters of credit, other collateral, additional guarantees or advance payments.

The allowance for credit losses is based on the lifetime expected credit loss of our customer accounts. To assess the lifetime expected credit loss, we utilize a loss rate method that takes into consideration historical experience and certain other factors, as appropriate, such as credit quality and current economic or other conditions that may affect a customer's ability to pay. Provisions for credit losses are included as a component of our selling and marketing expenses.

Receivables arising from revenue recognized in excess of billings represents our unconditional right to consideration before customers are invoiced due to the level of progress obtained as of period end on our contracts to procure and deliver tracker systems and related equipment. Further information may be found below in our revenue recognition policy.

Inventories

Inventories are stated at the lower of cost or net realizable value, with costs computed on a first-in, first-out basis. The Company periodically reviews its inventories for excess and obsolete items and adjusts carrying costs to estimated net realizable values when they are determined to be less than cost.

Impairment

We review our long-lived assets that are held for use for impairment whenever events or changes in circumstances indicate that the carrying amount of the asset may not be recoverable or that its useful life may be shorter than previously expected. If such impairment indicators are present or other factors exist that indicate the carrying amount of the asset may not be recoverable, we determine whether an impairment has occurred through the use of an undiscounted cash flow analysis of the asset at the lowest level for which identifiable cash flows exist. If an impairment has occurred, we recognize a loss for the difference between the carrying amount and the fair value of the asset, which in most cases is estimated based upon Level 3 unobservable inputs. If the asset is determined to have a remaining useful life shorter than previously expected, an adjustment for the shorter remaining life will be made for purposes of recognizing future depreciation

 

10


 

expense. Assets are classified as held for sale when we have a plan, approved by the appropriate levels of management, for disposal of such assets, as well as other considerations, and those assets are stated at the lower of carrying value or estimated fair value less estimated costs to sell.

Intangible assets, net

Intangible assets are recorded at fair value when acquired in connection with a business combination and consist of developed technology in the form of software tools, licenses, and intellectual property, which are amortized over the period of their estimated useful lives, generally 2.5 - 3.0 years, using the straight-line method. Costs incurred to renew or extend the term of a recognized intangible asset, if any, are expensed as incurred. We evaluate intangible assets for impairment using the method described above under "Impairment".

Goodwill

We recognize goodwill as the excess of the purchase price over the estimated fair value of the identified assets and liabilities acquired in a business combination accounted for using the acquisition method. Goodwill is not amortized but is subject to a periodic assessment for impairment at least annually, or whenever events and circumstances indicate an impairment may exist. Our assessments may include qualitative factors such as current or expected industry and market conditions, our overall financial performance, share price trends, market capitalization and other company-specific events.

We operate in one segment, being the consolidated entity, which we have also determined is the reporting unit for goodwill impairment.

No impairment of goodwill was recognized as of June 30, 2024 or 2023.

Equity method investment

We use the equity method of accounting for investments in which we have the ability to exercise significant influence, but not control, over operating and financial policies of the investee. Our proportionate share of the net income or loss of these investees is included in our condensed consolidated statements of comprehensive loss. Judgment regarding the level of influence over each equity method investment includes considering key factors such as our ownership interest, legal form of the investee, representation on the board of directors or managers, participation in policy-making decisions and material intra-entity transactions.

We account for distributions received from equity method investees under the “nature of the distribution” approach based on the nature of the activity or activities of the investee that generated the distribution as either a return on investment (classified as cash inflows from operating activities) or a return of investment (classified as cash inflows from investing activities).

We evaluate equity method investments for impairment whenever events or changes in circumstances indicate that the carrying amount of the investment might not be recoverable. Factors considered by the Company when reviewing an equity method investment for impairment include the length of time and the extent to which the fair value of the equity method investment has been less than its cost, the investee’s financial condition and near-term prospects and the intent and ability to hold the investment for a period of time sufficient to allow for anticipated recovery. An impairment that is other-than temporary is recognized in the period identified.

We made an accounting policy election that, upon the sale of our equity method investments, we will recognize contractual contingent gains arising from earnout provisions and project escrow releases when such amounts are realizable in periods subsequent to the disposal date.

Warranty

Typically, the sale of solar tracker projects includes parts warranties to customers as part of the overall price of the product. We provide standard assurance type warranties for our products for periods generally ranging from five to ten years. We also accrue for costs relating to remediation efforts involving product issues we believe require correction. We record a provision for estimated warranty and remediation expenses in cost of sales, net of amounts recoverable from manufacturers under their warranty obligations to us. When historical claims information relating to our equipment is not sufficient, we will base our estimates on industry studies involving the nature and frequency of product failure rates for similar parts used by our competitors, as well as other related businesses. We do not maintain general

 

11


 

or unspecified reserves; all warranty reserves are related to specific projects. All actual or estimated material costs incurred for warranty or remediation services in subsequent periods are charged to those established reserves.

While we periodically monitor our warranty activities and claims, if actual costs incurred were to be different from our estimates, we would recognize adjustments to our warranty reserves in the period in which those differences arise or are identified.

Stock-based compensation

We recognize compensation expense for all share-based payment awards made, including stock options and restricted stock units ("RSUs"), based on the estimated fair value of the award on the grant date. We calculate the fair value of stock options using the Black-Scholes option pricing model for awards with service-based vesting or through use of a lattice model or a Monte Carlo simulation for stock option and RSU awards with market conditions. The fair value of RSUs with service or performance-based vesting is based on the estimated fair value of the Company's common stock on the date of grant. We consider the closing price of our stock, as reported on the Nasdaq Capital Market, to be the fair value of our stock on the grant date.

Forfeitures are accounted for as they occur. For service-based awards, stock-based compensation is recognized using the straight-line attribution approach over the requisite service period. For performance-based awards, stock-based compensation is recognized based on graded vesting over the requisite service period when the performance condition is probable of being achieved. Stock compensation expense for market-based awards is recognized over the derived service period determined in the valuation model, inclusive of any vesting conditions.

Revenue recognition

Product revenue is derived from the sale of solar tracker systems and customized components for those systems, individual part sales for certain specific transactions and the sale of term-based software licenses. Term-based licensed software is deployed on the customers’ own servers and has significant standalone functionality.

Service revenue includes revenue from shipping and handling services, engineering consulting and pile testing services, our subscription-based enterprise licensing model and maintenance and support services in connection with the term-based software licenses. Our subscription-based enterprise licensing model typically has contract terms ranging from one to two years and consists of subscription fees from the licensing of subscription services. Our hosted on-demand service arrangements do not provide customers with the right to take possession of the software supporting the hosted services. Support services include ongoing security updates, upgrades, bug fixes, and maintenance.

We recognize revenue when promised goods or services are transferred to customers in an amount that reflects the consideration to which we expect to be entitled to in exchange for those goods or services by following a five-step process: (1) identify the contract with a customer, (2) identify the performance obligations in the contract, (3) determine the transaction price, (4) allocate the transaction price to the performance obligations in the contract, and (5) recognize revenue when or as the Company satisfies a performance obligation, as further described below.

Identify the contract with a customer: A contract with a customer exists when (i) the Company enters into an enforceable contract with a customer that defines each party’s rights regarding the products and services to be transferred and identifies the payment terms related to these products and services, (ii) the contract has commercial substance, and (iii) the Company determines that collection of substantially all consideration for products and services that are transferred is probable based on the customer’s intent and ability to pay the promised consideration. In assessing the recognition of revenue, we also evaluate whether two or more contracts should be combined and accounted for as one contract and if the combined or single contract should be accounted for as multiple performance obligations which could change the amount of revenue and profit (loss) recorded in a period. Change orders may include changes in specifications or design, manner of performance, equipment, materials, scope of work, and/or the period of completion of the project. We analyze change orders to determine if they should be accounted for as a modification to an existing contract or a new stand-alone contract.

Contracts we enter into with our customers for sale of solar tracker systems are generally under two different types of arrangements: (1) purchase agreements and equipment supply contracts (“Purchase Agreements”), and (2) sale of individual parts for those systems.

Change orders from our customers are generally modifications to existing contracts and are included in the total estimated contract revenue when it is probable that the change order will result in additional value that can be reliably estimated and realized.

 

12


 

Identify the performance obligations in the contract: We enter into contracts that can include various combinations of products and services, which are either capable of being distinct and accounted for as separate performance obligations or as one performance obligation since the majority of tasks and services are part of a single project or capability. However, determining whether products or services are considered distinct performance obligations that should be accounted for separately versus together may sometimes require significant judgment.

Our Purchase Agreements typically include two performance obligations: 1) our solar tracker systems or customized components of those systems, and 2) shipping and handling services. The deliverables included as part of our solar tracker systems are predominantly accounted for as one performance obligation, as these deliverables are part of a combined promise to deliver a project.

The revenue for shipping and handling services will be recognized over time based on progress in meeting shipping terms of the arrangements, as this faithfully depicts the Company’s performance in transferring control. Revenue for stand-alone engineering consulting and pile testing services is recognized at a point in time upon completion of the services performed.

Sales of individual parts of our solar tracker systems for certain specific transactions include multiple performance obligations consisting of individual parts of those systems. Revenue is recognized for parts sales at a point in time when the obligations under the terms of the contract with our customer are satisfied. Generally, this occurs with the transfer of control of the asset, which is in line with shipping terms.

Determine the transaction price: The transaction price is determined based on the consideration to which we will be entitled in exchange for transferring services to the customer. Such amounts are typically stated in the customer contract, and to the extent that we identify variable consideration, we will estimate the variable consideration at the onset of the arrangement as long as it is probable that a significant reversal in the amount of cumulative revenue recognized will not occur when the uncertainty associated with the variable consideration is subsequently resolved. The majority of our contracts do not contain variable consideration provisions as a continuation of the original contract. None of our contracts contain a significant financing component. Taxes collected from customers and remitted to governmental authorities are not included in revenue.

Allocate the transaction price to performance obligations in the contract: Once we have determined the transaction price, we allocate the total transaction price to each performance obligation in a manner depicting the amount of consideration to which we expect to be entitled in exchange for transferring the good(s) or service(s) to the customer. We allocate the transaction price to each performance obligation identified in the contract on a relative standalone selling price basis.

We use the expected cost-plus margin approach based on hardware, labor, and related overhead cost to estimate the standalone selling price of our solar tracker systems, customized components of those systems, and individual parts for certain specific transactions. We also use the expected cost-plus margin approach based on expected third-party shipping and transportation costs to estimate the standalone selling price of our shipping, handling and logistics performance obligations. We use the adjusted market assessment approach for all other performance obligations.

Recognize revenue when or as the Company satisfies a performance obligation: For each performance obligation identified, we determine at contract inception whether we satisfy the performance obligation over time or at a point in time. The performance obligations in the contracts for our solar tracker systems and customized components of those systems are satisfied over time as work progresses, utilizing an input measure of progress determined by cost-to-cost measures on these projects as this faithfully depicts our performance in transferring control. Additionally, our performance does not create an asset with an alternative use, due to the highly customized nature of the product, and we have an enforceable right to payment for performance completed to date. Our performance obligations for individual part sales for certain specific transactions are recognized at a point in time as and when control transfers based on the terms for the contract. Our performance obligations for engineering consulting and pile testing services are recognized at a point in time upon completion of the services. Our performance obligations for term-based software licenses are recognized at a point in time as and when control transfers, either upon delivery to the customer or the software license start date, whichever is later. Our performance obligations for shipping and handling services are satisfied over time as the services are delivered over the term of the contract. We recognize revenue for subscription and other services on a straight-line basis over the contract period. With regard to support revenue, a time-elapsed method is used to measure progress because we transfer control evenly over the contractual period. Accordingly, the fixed consideration related to support revenue is generally recognized on a straight-line basis over the contract term.

Contract assets and liabilities: The timing of revenue recognition, billing, and cash collection results in the recognition of accounts receivable, unbilled receivables for revenue recognized in excess of billings, and deferred revenue in the condensed consolidated balance sheets. We have elected to use the practical expedient of expensing incremental costs of obtaining a contract as incurred since the majority

 

13


 

of the performance obligations in our contracts are satisfied in less than one year. We may receive advances or deposits from our customers before revenue is recognized, resulting in contract liabilities, which are reflected as “deferred revenue” in our condensed consolidated balance sheets. Customer deposits are short term as the related performance obligations are typically fulfilled within 12 months. Changes in deferred revenue relate to fluctuations in the timing of customer deposits and completion of performance obligations. Revenue recognized during the three and six months ended June 30, 2024, from amounts included in deferred revenue at December 31, 2023, totaled $0.2 million and $2.5 million, respectively. Revenue recognized during the three and six months ended June 30, 2023, from amounts included in deferred revenue at December 31, 2022, totaled $1.7 million and $9.3 million, respectively.

Cost of revenue consists primarily of costs related to raw materials, equipment manufacturing activities, freight and delivery, product warranty, remediation and personnel costs (salaries, bonuses, benefits, and stock-based compensation). Personnel costs in cost of revenue include both direct labor costs, as well as costs attributable to any individuals whose activities relate to the procurement, installment and delivery of the finished product and services. Cost of revenue owed but not yet paid is recorded as accrued cost of revenue in the accompanying condensed consolidated balance sheets. Deferred cost of revenue, a component of our prepaid and other current assets, results from the timing differences between the costs incurred in advance of the satisfaction of all revenue recognition criteria consistent with our revenue recognition policy.

Recent accounting and regulatory pronouncements not yet adopted

In November 2023, the Financial Accounting Standards Board ("FASB") issued ASU No. 2023-07 - Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures ("ASU 2023-07"), which will become effective for us for our year end 2024 financial reporting and our interim reporting beginning January 1, 2025. ASU 2023-07 requires public companies to disclose significant segment expenses and other segment items on an annual and interim basis and will require interim disclosures about a reportable segment's profit or loss and assets that are currently required annually. As noted above, we operate in one segment. We are currently evaluating the impact of ASU 2023-07 on our existing disclosures. ASU 2023-07 will be applied retrospectively to all periods when presented in our consolidated financial statements for the year ending December 31, 2024.

In December 2023, the FASB issued ASU No. 2023-09 - Income Taxes (Topic 740): Improvements to Income Tax Disclosures ("ASU 2023-09"). ASU 2023-09 requires companies to disclose (i) additional categories of information about federal, state and foreign income taxes above a quantitative threshold in their rate reconciliation table and (ii) income taxes paid, net of refunds, disaggregated by federal, state and foreign taxes for annual periods, as well as other disclosure changes. As an emerging growth company, we are not required to adopt ASU 2023-09 prior to 2026, although earlier adoption is permitted. We are currently evaluating the impact of ASU 2023-09 on our existing income tax disclosures.

In March 2024, the U.S. Securities and Exchange Commission ("SEC") adopted the final rule under SEC Release No. 33-11275, The Enhancement and Standardization of Climate-Related Disclosures for Investors. This rule would require registrants to disclose certain climate-related information in registration statements and annual reports. In April 2024, the SEC issued a stay of the final rules pending a judicial review of the validity of the rules by the Eighth Circuit Court of Appeals. We are currently evaluating the final rule to determine its impact on our disclosures.

Other standards or regulatory requirements that have been issued but not yet adopted as of June 30, 2024, are either not applicable to us or are not expected to have any material impact upon adoption.

Reclassifications

Certain prior year amounts have been reclassified to conform to the current year presentation. There was no impact on our financial condition or results of operations as a result of the reclassification.

 

3. Equity method investment

On February 9, 2023, we entered into a limited liability company agreement (the "LLC Agreement") with Taihua New Energy (Thailand) Co., LTD ("Taihua"), a leading steel fabricator and an existing vendor, and DAYV LLC, for the creation of Alpha Steel LLC ("Alpha Steel"), a Delaware limited liability company dedicated to producing steel components, including torque tubes, for utility-scale solar projects. The Alpha Steel facility, which is located outside of Houston in Sealy, Texas, began commercial production late in the fourth quarter of 2023.

 

14


 

We entered into amendment no. 1 to the Alpha Steel LLC Agreement with Taihua and DAYV LLC on July 28, 2023, to allow for members at their option, and with the approval of the Board of Managers, to make payments in respect of Alpha Steel’s contractual obligations in the event that Alpha Steel does not or is not able to make such payments from its own resources (“Credit Support Payments”). Any such Credit Support Payments will be treated as capital contributions by the members to Alpha Steel, with any member funding more than its ratable share of Credit Support Payments being deemed to have loaned such excess to each underfunding member at the U.S. prime rate plus 2%.

Alpha Steel is intended to enhance our domestic supply chain, our ability to support our customers and the growth of the U.S. solar market, with domestic manufacturing utilizing U.S. steel. We have a 45% interest in Alpha Steel, which is accounted for under the equity method of accounting. Taihua has a 51% interest in Alpha Steel and DAYV LLC, an entity owned by members of the Board of Managers of Alpha Steel and a related party with the parent company of Taihua, has a 4% interest in Alpha Steel. The Chief Executive Officer of Taihua is the General Manager of Alpha Steel. We have equal voting representation with Taihua and DAYV LLC, combined, on Alpha Steel's Board of Managers which is responsible, through majority vote, for making certain "major decisions" involving Alpha Steel, as specified in the LLC Agreement, including, among other things, approval of an annual business plan.

During 2023, we made a required initial capital contribution of $0.9 million to Alpha Steel. For the six months ended June 30, 2024, we also made required additional capital contributions totaling $1.8 million. Pursuant to the LLC Agreement, we could be required to make up to $0.8 million in future additional capital contributions as Alpha Steel continues to expand production. For the three and six months ended June 30, 2024, we recognized losses of $0.2 million and $0.5 million, respectively, which represents our share of the net operating losses incurred by Alpha Steel during the period. No such losses were recognized during the three and six months ended June 30, 2023 as Alpha Steel had not begun operating activities during those periods.

In connection with the creation of Alpha Steel, we also entered into a three-year equipment supply agreement (the "Supply Agreement") with Alpha Steel, the terms of which will apply to our equipment purchase orders. Pursuant to the Supply Agreement, we have committed to placing a minimum level of purchase orders for torque tubes with Alpha Steel during the period from January 1, 2024 to June 30, 2025, with such volume commitments increasing in each of the next two annual periods. In the event we fail to meet our minimum required purchase commitments in any period, we may be required to make a cash payment for the net profit attributable to any unfilled requirements, calculated as specified in the agreement, in an amount not to exceed $4.0 million in the aggregate. As of June 30, 2024, we had met approximately 7% of our required purchase commitments for the period ending June 30, 2025. The Supply Agreement may be terminated early in accordance with its provisions or may be extended beyond the initial term if mutually agreed to by the parties.

At June 30, 2024, in addition to our requirement to meet the remaining minimum purchase obligations for the remainder of the year, as described above, we were contingently liable for unpaid vendor obligations, including issued but unsatisfied purchase orders, of Alpha Steel totaling approximately $0.9 million. We expect Alpha Steel will be able to satisfy these obligations with financial resources available to them in the normal course of operations.

 

4. ATM program

On September 14, 2022, we filed a prospectus supplement and entered into an equity distribution agreement (as amended, the "EDA") under which we may from time to time, in one or more transactions, offer and sell newly issued shares of our common stock having an aggregate offering price of up to $100 million in "at the money" offerings (the "ATM program"). We have and may continue to use the net proceeds from this offering for general corporate purposes, including working capital and operating expenses. We may also use a portion of such proceeds to acquire or invest in businesses, products, services or technologies.

Barclays Capital Inc. ("Barclays") is our sales agent under the EDA. The offering of our common stock under the EDA will terminate upon the earlier of (1) the sale of all common stock subject to the EDA or (2) the termination of the EDA by us or by Barclays as permitted therein. The EDA contains customary representations, covenants and indemnification provisions.

We sold no shares of newly issued common stock under the ATM program during the three and six months ended June 30, 2024, however, during the three and six months ended June 30, 2023, we sold 6,589,000 and 9,272,000 shares of newly issued common stock valued at $17.9 million and $24.4 million, respectively, for proceeds, net of commissions and fees, of approximately $17.3 million and $23.6 million, respectively, including $3.0 million in proceeds, net of commissions and fees, for shares sold but not yet settled as of June 30, 2023. As of June 30, 2024, approximately $64.9 million of capacity remained for future sales of our common stock under the ATM program.

 

 

15


 

5. Accounts receivable, net

Accounts receivable consisted of the following:

(in thousands)

 

June 30, 2024

 

 

December 31, 2023

 

Trade receivables

 

$

22,006

 

 

$

46,152

 

Related party receivables

 

 

2,564

 

 

 

868

 

Revenue recognized in excess of billings

 

 

17,169

 

 

 

26,813

 

Other receivables

 

 

4

 

 

 

3

 

Total

 

 

41,743

 

 

 

73,836

 

Allowance for credit losses

 

 

(232

)

 

 

(8,557

)

Accounts receivable, net

 

$

41,511

 

 

$

65,279

 

On April 3, 2024, we entered into a First Amendment ("the Amendment") to Master Project Supply Agreements dated October 11, 2021 with a customer and major solar project developer that owed us approximately $30.8 million for project equipment we had previously completed and made available to the customer pursuant to the Master Project Supply Agreements. The Amendment was executed in consideration of and concurrent with the sale of the uncompleted projects by our customer, including the amended Master Project Supply Agreements, to a new third-party developer (the "Purchaser") who assumed certain obligations to us under the amended Master Project Supply Agreements.

Pursuant to the Amendment, we received a cash payment of $9.0 million from the Purchaser to acquire completed foundation piles, which are being stored at the request of the Purchaser for final delivery to the project sites, currently expected during the fourth quarter of 2024. We expect to receive certain additional amounts from the Purchaser for the temporary storage and upon final delivery. The remaining completed project equipment, with an estimated fair value of approximately $13.2 million, was retained by us and returned to our inventory in exchange for forgiveness of the associated outstanding receivable balance owed by our customer. The fully reserved unpaid receivable balance totaling approximately $8.9 million was written off against our allowance for credit losses.

Information about our related party receivables at June 30, 2024, may be found below in Note 16, "Related party transactions".

Included in total receivables above are amounts billed under retainage provisions totaling $0.6 million and $0.9 million as of June 30, 2024 and December 31, 2023, respectively, which are due within the next twelve months.

Activity in the allowance for credit losses during the three and six months ended June 30, 2024 and 2023 was as follows:

 

 

Three months ended June 30,

 

 

Six months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

2024

 

 

2023

 

Balance at beginning of period

 

$

9,227

 

 

$

1,184

 

 

$

8,557

 

 

$

1,184

 

Impact of adoption of ASU 2016-13, effective January 1, 2023

 

N/A

 

 

N/A

 

 

N/A

 

 

 

 

Amounts charged (credited) to earnings during the period

 

 

(83

)

 

 

203

 

 

 

587

 

 

 

203

 

Write-offs of accounts

 

 

(8,912

)

 

 

 

 

 

(8,912

)

 

 

 

Balance at end of period

 

$

232

 

 

$

1,387

 

 

$

232

 

 

$

1,387

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6. Inventories

Inventories consisted of the following:

(in thousands)

 

June 30, 2024

 

 

December 31, 2023

 

Finished goods

 

$

17,576

 

 

$

4,246

 

Allowance for slow-moving and obsolete inventory

 

 

(515

)

 

 

(341

)

Total

 

$

17,061

 

 

$

3,905

 

The increase in our finished goods inventory is primarily related to completed project equipment retained by us pursuant to the agreement reached with a major customer described further in Note 5, "Accounts receivable, net" above.

 

16


 

7. Prepaid and other current assets

Prepaid and other current assets consisted of the following:

(in thousands)

 

June 30, 2024

 

 

December 31, 2023

 

Vendor deposits

 

$

6,605

 

 

$

5,667

 

Vendor deposits with related party

 

 

1,974

 

 

 

520

 

Prepaid expenses

 

 

1,016

 

 

 

1,251

 

Prepaid taxes

 

 

545

 

 

 

447

 

Deferred cost of revenue

 

 

620

 

 

 

666

 

Surety collateral

 

 

7

 

 

 

 

Other current assets

 

 

4,202

 

 

 

5,538

 

Total

 

$

14,969

 

 

$

14,089

 

At June 30, 2024, other current assets included $2.0 million for a non-interest-bearing customer advance related to pre-project construction financing activities. This advance is secured by certain customer assets.

8. Leases

We lease office and warehouse space in various locations, including our corporate headquarters in Austin, Texas. Additionally, we lease space for an applications laboratory in Austin, Texas and a research and development facility in Seguin, Texas. All of our manufacturing is outsourced to contract manufacturing partners, and we currently do not own or lease any manufacturing facilities.

Our expense for our operating leases consisted of the following:

 

 

Three months ended June 30,

 

 

Six months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

2024

 

 

2023

 

Operating lease cost

 

$

300

 

 

$

268

 

 

$

609

 

 

$

497

 

Short-term lease cost

 

 

111

 

 

 

110

 

 

 

204

 

 

 

202

 

Total lease cost

 

$

411

 

 

$

378

 

 

$

813

 

 

$

699

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Reported in:

 

 

 

 

 

 

 

 

 

 

 

 

Cost of revenue

 

$

259

 

 

$

250

 

 

$

495

 

 

$

465

 

Research and development

 

 

14

 

 

 

11

 

 

 

28

 

 

 

26

 

Selling and marketing

 

 

39

 

 

 

23

 

 

 

87

 

 

 

38

 

General and administrative

 

 

99

 

 

 

94

 

 

 

203

 

 

 

170

 

Total lease cost

 

$

411

 

 

$

378

 

 

$

813

 

 

$

699

 

Future remaining operating lease payment obligations were as follows:

(in thousands)

 

June 30,
2024

 

Remainder of 2024

 

$

465

 

2025

 

 

884

 

2026

 

 

313

 

2027

 

 

291

 

2028

 

 

157

 

Total lease payments

 

 

2,110

 

Less: imputed interest

 

 

(146

)

Present value of operating lease liabilities

 

$

1,964

 

 

 

 

 

Current portion of operating lease liability

 

$

857

 

Operating lease liability, net of current portion

 

 

1,107

 

Present value of operating lease liabilities

 

$

1,964

 

 

 

17


 

9. Property and equipment, net

Property and equipment consisted of the following:

(in thousands)

 

June 30, 2024

 

 

December 31, 2023

 

Leasehold improvements

 

$

338

 

 

$

157

 

Field equipment

 

 

1,108

 

 

 

1,062

 

Information technology equipment

 

 

574

 

 

 

466

 

Tooling

 

 

1,732

 

 

 

1,014

 

Capitalized software

 

 

848

 

 

 

734

 

Total

 

 

4,600

 

 

 

3,433

 

Accumulated depreciation

 

 

(2,154

)

 

 

(1,610

)

Property and equipment, net

 

$

2,446

 

 

$

1,823

 

Depreciation expense for the three months ended June 30, 2024 and 2023, totaled $0.3 million and $0.2 million, respectively, and for the six months ended June 30, 2024 and 2023, totaled $0.5 million and $0.4 million, respectively.

 

10. Intangible assets, net and goodwill

Intangible assets consisted of the following:

(in thousands)

 

Estimated Useful Lives (Years)

 

June 30, 2024

 

 

December 31, 2023

 

Developed technology

 

2.5 3.0

 

$

2,520

 

 

$

2,555

 

Total

 

 

 

 

2,520

 

 

 

2,555

 

Accumulated amortization

 

 

 

 

(2,256

)

 

 

(2,013

)

Intangible assets, net

 

 

 

$

264

 

 

$

542

 

Amortization expense for the three months ended June 30, 2024 and 2023, totaled $0.1 million and $0.1 million, respectively, and for the six months ended June 30, 2024 and 2023, totaled $0.3 million and $0.3 million, respectively.

During the six months ended June 30, 2024 and 2023, activity in our goodwill balance was as follows:

 

 

 

 

Six months ended June 30,

 

(in thousands)

 

 

 

2024

 

 

2023

 

Balance at beginning of period

 

 

 

$

7,353

 

 

$

7,538

 

Translation

 

 

 

 

(184

)

 

 

(365

)

Balance at end of period

 

 

 

$

7,169

 

 

$

7,173

 

 

11. Debt

Our Credit Facility, entered into in 2021 with various lenders, including Barclays Bank PLC, as issuing lender, the swingline lender and as administrative agent, expired unused on April 30, 2024. The Credit Facility has not currently been replaced.

Interest expense for the three months ended June 30, 2024 and 2023, totaled $0.1 million and $0.3 million, respectively, and for the six months ended June 30, 2024 and 2023, totaled $0.4 million and $0.6 million, respectively. Our interest expense primarily consisted of commitment and letter of credit fees, as well as amortization of costs relating to the initial establishment of the Credit Facility.

 

 

18


 

12. Accrued expenses and other current liabilities

Accrued expenses and other current liabilities consisted of the following:

(in thousands)

 

June 30, 2024

 

 

December 31, 2023

 

Accrued cost of revenue

 

$

16,260

 

 

$

26,773

 

Related party accrued cost of revenue

 

 

657

 

 

 

1,451

 

Accrued compensation

 

 

3,435

 

 

 

3,858

 

Other accrued expenses

 

 

2,483

 

 

 

2,766

 

Total accrued expenses

 

$

22,835

 

 

$

34,848

 

 

 

 

 

 

 

 

Warranty reserves

 

$

7,264

 

 

$

7,279

 

Current portion of operating lease liability

 

 

857

 

 

 

740

 

Non-federal tax obligations

 

 

81

 

 

 

119

 

Total other current liabilities

 

$

8,202

 

 

$

8,138

 

Information relating to our related party accrued cost of revenue at June 30, 2024 and December 31, 2023 may be found below in Note 16, "Related party transactions".

Other accrued expenses primarily include amounts due for (i) legal costs associated with outstanding corporate or legal matters and (ii) other professional services.

Activity by period in the Company's warranty accruals was as follows:

 

 

Three months ended June 30,

 

 

Six months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

2024

 

 

2023

 

Balance at beginning of period

 

$

10,472

 

 

$

12,557

 

 

$

11,002

 

 

$

12,426

 

Warranties issued and remediation added during the period

 

 

801

 

 

 

1,309

 

 

 

1,639

 

 

 

2,852

 

Settlements made during the period

 

 

(443

)

 

 

(1,234

)

 

 

(1,292

)

 

 

(2,337

)

Changes in liability for pre-existing warranties

 

 

(415

)

 

 

(551

)

 

 

(934

)

 

 

(860

)

Balance at end of period

 

$

10,415

 

 

$

12,081

 

 

$

10,415

 

 

$

12,081

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Warranty accruals are reported in:

 

 

 

 

 

 

 

 

 

 

 

 

Other current liabilities

 

$

7,264

 

 

$

7,791

 

 

$

7,264

 

 

$

7,791

 

Other non-current liabilities

 

 

3,151

 

 

 

4,290

 

 

 

3,151

 

 

 

4,290

 

Balance at end of period

 

$

10,415

 

 

$

12,081

 

 

$

10,415

 

 

$

12,081

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13. Income taxes

For the three months ended June 30, 2024 and 2023, we recorded an income tax expense of $0.07 million and an income tax benefit of $0.12 million respectively, and for the six months ended June 30, 2024 and 2023, we recorded an income tax expense of $0.05 million and an income tax expense of $0.01 million respectively. These amounts for each period were lower than the statutory rate of 21%, primarily due to a valuation allowance established against the U.S. deferred tax assets.

We have had no material change in our unrecognized tax benefits since December 31, 2023. We recognize accrued interest and penalties related to unrecognized tax benefits as a component of income tax expense. As of June 30, 2024 and December 31, 2023, we had no accrued interest or penalties related to unrecognized tax benefits.

 

14. Commitments and contingencies

We may become involved in various claims, lawsuits, investigations, and other proceedings, arising in the normal course of business. We accrue a liability when information available prior to the issuance of our financial statements indicates it is probable a loss has been incurred as of the date of the financial statements and the amount of loss can be reasonably estimated. If the reasonable estimate of the

 

19


 

probable loss is a range, we record an accrual for the most likely estimate of the loss, or the low end of the range if there is no one best estimate. We adjust our accruals to reflect the impact of negotiation, settlements, rulings, advice of legal counsel and other information and events pertaining to a particular case. Legal costs are expensed as incurred.

In March of 2023, CBP issued notices of tariff assessment that indicated an action taken at the Import Specialist (i.e., the port) level with respect to merchandise imported from Thailand under entry number 004-1058562-5 (the “625 Assessment”) and entry number 004-1063793-9 (the “Original 939 Assessment”, and collectively with the 625 Assessment, the “Original CBP Assessments”). The Original CBP Assessments related to certain torque beams that are used in our Voyager+ product that were imported in 2022. In the Original CBP Assessments, CBP asserted that Section 301 China tariffs, Section 232 steel and aluminum tariffs, and antidumping and countervailing duties applied to the merchandise. Based on correspondence received to date from CBP and our calculations based on applicable duty and tariff rates, the 625 Assessment is currently for approximately $2.84 million. In September of 2023, CBP informed us (the "Revised 939 Assessment", and together with the 625 Assessment, the "Revised CBP Assessments") that the amount owed under the Original 939 Assessment was being revised downward to approximately $2.01 million. In particular, CBP accepted our position that the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, previously assessed under the Original 939 Assessment are not applicable as they are only applicable to articles that originate in China and that, in this case, the finished goods are products of Thailand.

Upon review of the facts involved, and in consultation with outside legal counsel, we believe that the remaining amounts claimed in the Revised CBP Assessments are incorrect. In particular, the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, are not applicable under the 625 Assessment for the same reason stated above with respect to the Revised 939 Assessment, which has been accepted by CBP. Moreover, with respect to both Revised CBP Assessments, we believe that the goods in question were properly classified as parts of structures at the time of importation and that when properly classified, the beams and other materials are not subject to Section 232 duties applicable to more basic steel products.

CBP has legally finalized both Revised CBP Assessments. We filed a formal protest for the 625 Assessment in September of 2023 and for the Revised 939 Assessment in March of 2024. Based on the above, and under the relevant accounting guidance related to loss contingencies, we have made no accrual for the amounts claimed by CBP as of June 30, 2024, as we do not consider these amounts to be a probable obligation, as such term is defined and interpreted under the relevant accounting guidance, for us at this time. However, because matters of this nature are subject to inherent uncertainties, and unfavorable rulings or developments, including future assessments of additional duties or tariffs owed in respect of other shipments or other materials beyond what is presently included in the Revised CBP Assessments, could occur despite our belief that the tariffs and duties asserted are incorrect, there can be no certainty that the Company may not ultimately incur charges that are not currently recorded as liabilities. Since the outcome of these matters cannot be predicted with certainty, the costs associated with them could have a material adverse effect on our consolidated results of operations, financial position, or liquidity.

 

15. Stock-based compensation

Stock compensation expense for each period was as follows:

 

 

Three months ended June 30,

 

 

Six months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

2024

 

 

2023

 

Cost of revenue

 

$

240

 

 

$

316

 

 

$

456

 

 

$

1,132

 

Research and development

 

 

93

 

 

 

115

 

 

 

174

 

 

 

364

 

Selling and marketing

 

 

114

 

 

 

271

 

 

 

158

 

 

 

655

 

General and administrative

 

 

838

 

 

 

2,260

 

 

 

2,136

 

 

 

5,701

 

Total stock compensation expense

 

$

1,285

 

 

$

2,962

 

 

$

2,924

 

 

$

7,852

 

 

16. Related party transactions

Transaction with Ayna.AI LLC

In February 2022, we engaged Ayna.AI LLC (as successor in interest to Fernweh Engaged Operator Company LLC) (“Ayna”) to support us with improvements to our processes and performance in various areas including design, sourcing, logistics, pricing, software and standard configuration. The foregoing engagement constituted a related party transaction as South Lake One LLC, an entity affiliated with

 

20


 

Isidoro Quiroga Cortés, a member of our board of directors, and a holder of more than 5% of our outstanding capital stock, is an investor in Ayna. In addition, Discrimen LLC is an investor in Ayna, and Isidoro Quiroga Cortés is affiliated with that entity. Isidoro Quiroga Cortés is also on the board of directors of Ayna. On September 13, 2023, we executed a termination of the master services agreement and statement of work (collectively, the "Service Agreement") with Ayna and Fernweh Group LLC, the parent company of Fernweh Engaged Operator Company LLC.

For the three and six months ended June 30, 2023, we incurred $0.5 million and $1.4 million, respectively, of general and administrative expense, including expense relating to stock-based compensation awards, and made cash payments of $0.8 million and $1.7 million, respectively, associated with our engagement of Ayna.

Related party receivables and payables

We have related party receivables at June 30, 2024 and December 31, 2023, totaling $2.6 million and $0.9 million, respectively, for future material costs discounts contractually owed to us by Alpha Steel in connection with the expected receipt of manufacturing incentives available to Alpha Steel under the Inflation Reduction Act as costs are incurred by Alpha Steel to purchase raw materials and manufacture torque tubes and other products that will be used to fulfill purchase orders we issue to Alpha Steel.

We also have related party liabilities to Alpha Steel at June 30, 2024 and December 31, 2023, totaling $0.7 million and $1.5 million, respectively, for the accrued cost of revenue recognized on certain of our customer projects associated with the cost of products that are being manufactured for us by Alpha Steel.

During the three and six months ended June 30, 2024, we made vendor deposits of $1.1 million and $2.7 million, respectively, to Alpha Steel and received invoices from Alpha Steel totaling $3.8 million and $5.5 million, respectively. Our balance of vendor deposits with Alpha Steel as of June 30, 2024 and December 31, 2023 is shown in Note 7, "Prepaids and other current assets" above as "Vendor deposits with related party". After payments and application of vendor deposits to invoices received, we owe $1.0 million to Alpha Steel, which is included in our accounts payable balance at June 30, 2024 (none at December 31, 2023) in our condensed consolidated balance sheets.

 

17. Net loss per share

 

 

Three months ended June 30,

 

 

Six months ended June 30,

 

 

2024

 

 

2023

 

 

2024

 

 

2023

 

Net loss (in thousands)

 

$

(12,241

)

 

$

(10,414

)

 

$

(21,012

)

 

$

(22,176

)

Weighted average shares outstanding for calculating basic and diluted loss per share

 

 

126,171,278

 

 

 

112,669,296

 

 

 

125,816,080

 

 

 

109,632,336

 

Basic and diluted loss per share

 

$

(0.10

)

 

$

(0.09

)

 

$

(0.17

)

 

$

(0.20

)

 

 

 

 

 

 

 

 

 

 

 

 

 

For purposes of computing diluted loss per share, weighted average common shares outstanding do not include potentially dilutive securities that are anti-dilutive, as shown below.

 

 

For the three and six months ended June 30,

 

 

 

2024

 

 

2023

 

Anti-dilutive securities excluded from calculating dilutive loss per share:

 

 

 

 

 

 

Shares of common stock issuable under stock option plans outstanding

 

 

2,386,293

 

 

 

6,505,638

 

Shares of common stock issuable upon vesting of RSUs

 

 

11,521,675

 

 

 

9,124,189

 

Potential common shares excluded from diluted net loss per share calculation

 

 

13,907,968

 

 

 

15,629,827

 

 

18. Subsequent events

On July 17, 2024, we entered into an employment agreement with Yann Brandt to become our President and Chief Executive Officer and a member of our Board of Directors, all effective as of August 19, 2024. Mr. Brandt, age 41, was Chief Commercial Officer of FlexGen Power Systems Inc. ("FlexGen") from November 2022 and was Chief Financial Officer of FlexGen from February 2021 until November 2022. He previously served as Chief Executive Officer of QuickMount PV from June 2018 until June 2020 and prior to that, was with

 

21


 

Conergy, a downstream solar company where he served as President of the Americas, as well as Global Head of Marketing and Public Relations. He is also a current board member of the Solar Energy Industries Association.

 

 

22


 

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

The following discussion and analysis of our financial condition and results of operations should be read in conjunction with our condensed consolidated financial statements and related notes included in Item 1 of this Form 10-Q and along with information included in our 2023 Annual Report. In addition to historical financial information, the following discussion contains forward-looking statements that involve risks and uncertainties. Our actual results could differ materially from such forward-looking statements. Factors that could cause or contribute to those differences include, but are not limited to, those identified below and those discussed in Part I, Item 1A. "Risk Factors" included in our 2023 Annual Report. Additionally, our historical results are not necessarily indicative of the results that may be expected in any future period.

This discussion and analysis of our financial condition and results of operations contain the presentation of Adjusted EBITDA, Adjusted Net Loss and Adjusted EPS, which are not presented in accordance with U.S. GAAP. Adjusted EBITDA, Adjusted Net Loss and Adjusted EPS are being presented because they provide the Company and readers of this Form 10-Q with additional insight into our operational performance relative to earlier periods and relative to our competitors. We do not intend Adjusted EBITDA, Adjusted Net Loss and Adjusted EPS to be substitutes for any U.S. GAAP financial information. Readers of this Form 10-Q should use Adjusted EBITDA, Adjusted Net Loss and Adjusted EPS only in conjunction with Net Loss and Net Loss per Share, the most comparable U.S. GAAP financial measures. Reconciliations of Adjusted EBITDA, Adjusted Net Loss and Adjusted EPS to Net Loss and Net Loss per Share, the most comparable U.S. GAAP measures, are provided in "Non-GAAP Financial Measures" below.

Overview

FTC Solar, Inc. (the “Company”, “we”, “our”, or “us”) was founded in 2017 and is incorporated in the state of Delaware. In April 2021, we completed an initial public offering ("IPO"), and our common stock currently trades on the Nasdaq Capital Market under the symbol “FTCI”.

We are a global provider of solar tracker systems, supported by proprietary software and value-added engineering services. Solar tracker systems move solar panels throughout the day to maintain an optimal orientation relative to the sun, thereby increasing the amount of solar energy produced at a solar installation. Our original two-panel in-portrait solar tracker system is currently marketed under the Voyager brand name (“Voyager”) and our one module-in-portrait ("1P") solar tracker system, which became certified in 2023, is marketed under the Pioneer brand name ("Pioneer"). We also have a mounting solution to support the installation and use of U.S.-manufactured thin-film modules by project owners. Our primary software offerings include SUNPATH which is intended to help customers optimize solar tracking for increased energy production, our SUNOPS real-time operations management platform and our web-based ATLAS portfolio management software. In addition, we have a team of renewable energy professionals available to assist our U.S. and worldwide clients in site layout, structural design, pile testing and other needs across the solar project development and construction cycle. The Company is headquartered in Austin, Texas, and has international subsidiaries in Australia, China, India, South Africa and Spain.

We are an emerging growth company, as defined in the Jumpstart Our Business Startups (JOBS) Act. Under the JOBS Act, we elected to use the allowed extended transition period to delay adopting new or revised accounting standards until such time as those standards apply to private companies.


Key Factors Affecting Our Performance

Government Regulations. Changes in the U.S. trade environment, including the imposition of import tariffs, AD/CVD investigations and the UFLPA, which became effective in June 2022, can have an impact on the timing of developer projects. The UFLPA resulted in new rules for module importers and reviews by CBP. There is currently uncertainty in the market around achieving full compliance with UFLPA, whether related to sufficient traceability of materials or other factors. Escalating trade tensions, particularly between the United States and China, have led to increased tariffs and trade restrictions, including tariffs applicable to certain raw materials and components for our products. We have taken measures with the intention of mitigating the effect of tariffs and the impact of AD/CVD and UFLPA on our business by reducing our reliance on China and enhancing our U.S.-based supply chain, including through our investment in Alpha Steel, as described further in Note 3, "Equity method investment" in Part I, Item 1 of this Form 10-Q. As an example, we have reduced our reliance on suppliers in China in terms of meeting our supply chain requirements from 90% in 2019 to less than 20% as of the date of this Quarterly Report. As of June 30, 2024, we have qualified suppliers outside of China for certain of our commodities and we continue to work to have second-source capability for all Chinese-manufactured components to help reduce the extent to which our supply chain for U.S.-based

 

23


 

projects is subject to existing tariffs and to be able to quickly address potential future regulatory and governmental policy changes. We have entered into partnerships with manufacturers based in the United States, Hong Kong, India, South Africa, Spain, Turkey, Thailand and Vietnam to diversify our supply chain and optimize costs. On June 6, 2022, President Biden issued an Executive Order allowing U.S. solar deployers to import solar modules and cells from Cambodia, Malaysia, Thailand and Vietnam free from certain duties for 24 months, along with other incentives designed to accelerate U.S. domestic production of clean energy technologies. However, on December 29, 2023, Auxin Solar, Inc. and Concept Clean Energy, Inc. filed suit in the U.S. Court of International Trade challenging the legal basis for the moratorium and implementing regulations. If the suit proves successful, solar module importers could owe retroactive duties on goods that have already cleared customs.

The most notable incentive program impacting our U.S. business has historically been the ITC for solar energy projects, which allows taxpayers to offset their U.S. federal income tax liability by a certain percentage of their cost basis in solar energy systems placed in service for commercial use. The Inflation Reduction Act of 2022, passed by the U.S. Congress and signed into law by President Biden on August 16, 2022, expanded and extended the tax credits and other tax benefits available to solar energy projects and the solar energy supply chain. ITCs have been extended for such projects through at least 2032 and, depending on the location of a particular project and its ability to satisfy certain labor and domestic content requirements, the ITC percentage can range between 30% and 50%. U.S. manufacturers of specific solar components are now eligible to claim production tax credits as an alternative to the ITC. Implementing regulations for this law are, in certain cases, still being finalized and the impact of these regulations continue to be evaluated by developers of new solar projects and manufacturers of solar components. Our investment in and commitments made to Alpha Steel will allow us to obtain certain benefits as a result of this new production tax credit program. We believe this law will bolster and extend future demand for our products in the United States, however as the implementing regulations for this law are not completely finalized, this creates uncertainty about the extent of its impact on our Company and the solar energy industry.

Disruptions in Transportation and Supply Chain. Our costs are affected by the costs of certain components and materials, such as steel, motors and micro-chips, as well as transportation costs. Current market conditions and international conflicts that constrain the supply of materials and disrupt the flow of materials from international vendors can impact the cost of our products and services, along with overall rates of inflation in the global economy, which have been higher than pre-COVID 19 pandemic historical rates. While certain costs have moderated compared to pre-pandemic rates, domestic fuel prices continue to be elevated. Although we don't believe inflation has had a material impact on our results as presented in this report, such cost increases and decreases could impact our future operating margins, if material.

We have taken steps to expand and diversify our manufacturing partnerships and have adjusted our modes of transportation to mitigate the impact of headwinds that might arise in the global supply chain and logistics markets. As an example, we modified our ocean freight from previously using charter shipments to now using containerized shipments as costs in the container market began to decrease starting in 2022, but more recently have begun to increase. However, we have been able to mitigate some of this increase as a result of increasing our domestic production capabilities. We continue to monitor the logistics markets and will continue to evaluate our use of various modes of transportation when warranted to optimize our transportation costs. Additionally, from February 2022 to September 2023, we utilized a related-party consulting firm to support us in making improvements to our processes and performance in various areas, including design, sourcing, logistics, pricing, software and our distributed generation business. For further information regarding this consulting firm, see Note 16, "Related party transactions" included in our condensed consolidated financial statements in Part I, Item 1 of this Quarterly Report with regard to the related-party consulting firm. We also intend to maintain a sharp focus on our design-to-value initiative to continue to improve margins by reducing manufacturing and material costs of our products.

Megawatts ("MW") Produced and MW Shipped and Average Selling Price ("ASP"). The primary operating metrics we use to evaluate our sales performance and to track market acceptance of our products are the change in quantity of MW produced and MW shipped from period to period. MW are measured for each individual project and are calculated based on the expected output of that project once installed and fully operational. We also utilize metrics related to price and cost of goods sold per watt, including the change in ASP from period to period and cost per watt. ASP is calculated by dividing product and service revenue by total watts produced or shipped and product and service cost per watt is calculated by dividing product or service costs of goods sold by total watts produced or shipped. These metrics enable us to evaluate trends in pricing, manufacturing and logistics costs and profitability. Events such as the COVID-19 pandemic, global inflation rates and international conflicts have in the past impacted and may continue to impact the U.S. economy, global supply chains, and our business. These impacts can cause significant shipping delays and cost increases, as well as offsetting ASP increases, and also raise the price of inputs like steel and logistics, affecting our cost per watt.

Investment in Technology and Personnel. We invest in both the people and technology behind our products. We intend to continue making significant investments in the technology for our products and expansion of our patent portfolio to attract and retain customers, expand the capabilities and scope of our products, and enhance user experience. As an example, in August 2023, we introduced SUNOPS,

 

24


 

a cloud-based, tracker-agnostic solar asset monitoring solution allowing asset owners and managers to evaluate the operation and performance of their solar deployments. Additionally, in May 2024, we announced the launch of our Automated Hail Stow Solution, aimed at minimizing solar panel damage caused by hail storms. This solution integrates advanced technology with meteorological data to automatically adjust the positioning of solar panels, reducing the risk of hail-related damage.

We also intend over time to make significant investments to attract and retain employees in key positions, including sales leads, engineers, software developers, quality assurance personnel, supply chain personnel, product management, and operations personnel, to help us drive additional efficiencies across our marketplace and, in the case of sales leads, to continue to enhance and diversify our sales capabilities, including international expansion. For example, in May 2024, we announced the appointment of Tamara Mullings, a former member of our Board of Directors, to be our Senior Vice President, North American Sales and Alberto Echeverria, a tracker industry veteran and the former CEO and Executive Member of the Board of STI Norland, to be our Senior Vice President, International Sales. Additionally, in July 2024, we announced that we had hired Yann Brandt as our new President and Chief Executive Officer and as a new member of our Board of Directors, effective August 19, 2024.

Impact of Climate Change. Climate change has primarily impacted our business operations by increasing demand for solar power generation and, as a result, for use of our products. According to the Federal Energy Regulatory Commission's Energy Infrastructure Update for May 2024, solar has become the largest energy source for new capacity in the first five months of 2024 in the United States.

While climate change has not resulted in any material negative impact to our operations to date, we recognize the risk of disruptions to our supply chain due to extreme weather events. This, among other things, has led us to expand the diversity of our supplier base and to partner with more local suppliers to reduce shipping and transportation needs. We are also increasingly partnering with larger scale steel producers rather than smaller suppliers to facilitate scaling of our operations while remaining conscious of the environmental impacts of steel manufacturing as the regulatory landscape around these high-emitting industries evolves. An example of this strategy is our investment in Alpha Steel, a U.S.-based manufacturing partnership with Taihua, a leading steel fabricator.

We also attempt to mitigate the climate-related risks from the use of our products by designing our equipment and systems to have a high-slope tolerance and wind mitigation capabilities, while at the same time reducing the required foundation/pile count needed. This allows our trackers to be installed in increasingly hostile environments with minimal disturbance to the surrounding land.

Liquidity. See "Liquidity and Capital Resources" below for a discussion of the impact of the items above on our liquidity position.

Non-GAAP Financial Measures

Adjusted EBITDA, adjusted net loss and adjusted earnings per share ("EPS")

We utilize Adjusted EBITDA, Adjusted Net Loss, and Adjusted EPS as supplemental measures of our performance. We define Adjusted EBITDA as net loss plus (i) provision for (benefit from) income taxes, (ii) interest expense, net, (iii) depreciation expense, (iv) amortization of intangibles, (v) stock-based compensation, and (vi) non-routine legal fees, severance and certain other costs (credits). We also deduct the contingent gains arising from earnout payments and project escrow releases relating to the disposal of our investment in an unconsolidated subsidiary from net loss in arriving at Adjusted EBITDA. We define Adjusted Net Loss as net loss plus (i) amortization of debt issue costs and intangibles, (ii) stock-based compensation, (iii) non-routine legal fees, severance and certain other costs (credits), and (iv) the income tax expense (benefit) of those adjustments, if any. We also deduct the contingent gains arising from earnout payments and project escrow releases relating to the disposal of our investment in an unconsolidated subsidiary in arriving at Adjusted Net Loss. Adjusted EPS is defined as Adjusted Net Loss on a per share basis using our weighted average diluted shares outstanding.

Adjusted EBITDA, Adjusted Net Loss, and Adjusted EPS are intended as supplemental measures of performance that are neither required by, nor presented in accordance with, U.S. GAAP. We present Adjusted EBITDA, Adjusted Net Loss and Adjusted EPS, because we believe they assist investors and analysts in comparing our performance across reporting periods on an ongoing basis by excluding items that we do not believe are indicative of our core operating performance. In addition, we use Adjusted EBITDA, Adjusted Net Loss and Adjusted EPS to evaluate the effectiveness of our business strategies.

Among other limitations, Adjusted EBITDA, Adjusted Net Loss, and Adjusted EPS do not reflect (i) our cash expenditures, or future requirements, for capital expenditures or contractual commitments, and (ii) the impact of certain cash charges resulting from matters we consider not to be indicative of our ongoing operations. Further, the adjustments noted in Adjusted EBITDA do not reflect the impact of

 

25


 

any income tax expense or benefit. Additionally, other companies in our industry may calculate Adjusted EBITDA, Adjusted Net Loss, and Adjusted EPS differently than we do, which limits its usefulness as a comparative measure.

Because of these limitations, Adjusted EBITDA, Adjusted Net Loss, and Adjusted EPS should not be considered in isolation or as substitutes for performance measures calculated in accordance with U.S. GAAP, and you should not rely on any single financial measure to evaluate our business. These non-GAAP financial measures, when presented, are reconciled to the most closely applicable U.S. GAAP measure as disclosed below:

 

 

Three months ended June 30,

 

 

 

2024

 

 

2023

 

(in thousands, except shares and per share data)

 

Adjusted EBITDA

 

 

Adjusted Net Loss

 

 

Adjusted EBITDA

 

 

Adjusted Net Loss

 

Net loss per U.S. GAAP

 

$

(12,241

)

 

$

(12,241

)

 

$

(10,414

)

 

$

(10,414

)

Reconciling items -

 

 

 

 

 

 

 

 

 

 

 

 

Provision for (benefit from) income taxes

 

 

65

 

 

 

 

 

 

(122

)

 

 

 

Interest (income) expense, net

 

 

(1

)

 

 

 

 

 

28

 

 

 

 

Amortization of debt issue costs in interest expense

 

 

 

 

 

59

 

 

 

 

 

 

178

 

Depreciation expense

 

 

274

 

 

 

 

 

 

196

 

 

 

 

Amortization of intangibles

 

 

134

 

 

 

134

 

 

 

136

 

 

 

136

 

Stock-based compensation

 

 

1,285

 

 

 

1,285

 

 

 

2,962

 

 

 

2,962

 

Non-routine legal fees (credits)(a)

 

 

33

 

 

 

33

 

 

 

(25

)

 

 

(25

)

Adjusted Non-GAAP amounts

 

$

(10,451

)

 

$

(10,730

)

 

$

(7,239

)

 

$

(7,163

)

 

 

 

 

 

 

 

 

 

 

 

 

 

U.S. GAAP net loss per share:

 

 

 

 

 

 

 

 

 

 

 

 

Diluted

 

N/A

 

 

$

(0.10

)

 

N/A

 

 

$

(0.09

)

 

 

 

 

 

 

 

 

 

 

 

 

 

Adjusted Non-GAAP net loss per share (Adjusted EPS):

 

 

 

 

 

 

 

 

 

 

 

 

Diluted

 

N/A

 

 

$

(0.09

)

 

N/A

 

 

$

(0.06

)

 

 

 

 

 

 

 

 

 

 

 

 

 

Weighted-average common shares outstanding:

 

 

 

 

 

 

 

 

 

 

 

 

Diluted

 

N/A

 

 

 

126,171,278

 

 

N/A

 

 

 

112,669,296

 

 

(a)

Non-routine legal fees (credits) represent legal fees and other costs (credits) incurred for specific matters that were not ordinary or routine to the operations of the business.

 

 

26


 

 

 

Six months ended June 30,

 

 

 

2024

 

 

2023

 

(in thousands, except shares and per share data)

 

Adjusted EBITDA

 

 

Adjusted Net Loss

 

 

Adjusted EBITDA

 

 

Adjusted Net Loss

 

Net loss per U.S. GAAP

 

$

(21,012

)

 

$

(21,012

)

 

$

(22,176

)

 

$

(22,176

)

Reconciling items -

 

 

 

 

 

 

 

 

 

 

 

 

Provision for (benefit from) income taxes

 

 

54

 

 

 

 

 

 

9

 

 

 

 

Interest expense, net

 

 

135

 

 

 

 

 

 

86

 

 

 

 

Amortization of debt issue costs in interest expense

 

 

 

 

 

236

 

 

 

 

 

 

355

 

Depreciation expense

 

 

544

 

 

 

 

 

 

390

 

 

 

 

Amortization of intangibles

 

 

268

 

 

 

268

 

 

 

276

 

 

 

276

 

Stock-based compensation

 

 

2,924

 

 

 

2,924

 

 

 

7,852

 

 

 

7,852

 

Gain from disposal of investment in unconsolidated subsidiary(a)

 

 

(4,085

)

 

 

(4,085

)

 

 

(898

)

 

 

(898

)

Non-routine legal fees(b)

 

 

66

 

 

 

66

 

 

 

83

 

 

 

83

 

Severance credit(c)

 

 

 

 

 

 

 

 

(13

)

 

 

(13

)

Adjusted Non-GAAP amounts

 

$

(21,106

)

 

$

(21,603

)

 

$

(14,391

)

 

$

(14,521

)

 

 

 

 

 

 

 

 

 

 

 

 

 

U.S. GAAP net loss per share:

 

 

 

 

 

 

 

 

 

 

 

 

Diluted

 

N/A

 

 

$

(0.17

)

 

N/A

 

 

$

(0.20

)

 

 

 

 

 

 

 

 

 

 

 

 

Adjusted Non-GAAP net loss per share (Adjusted EPS):

 

 

 

 

 

 

 

 

 

 

 

 

Diluted

 

N/A

 

 

$

(0.17

)

 

N/A

 

 

$

(0.13

)

 

 

 

 

 

 

 

 

 

 

 

 

 

Weighted-average common shares outstanding:

 

 

 

 

 

 

 

 

 

 

 

 

Diluted

 

N/A

 

 

 

125,816,080

 

 

N/A

 

 

 

109,632,336

 

 

(a)

We exclude the gain from collections of contingent contractual amounts arising from the sale in 2021 of our investment in an unconsolidated subsidiary.

(a)

Non-routine legal fees represent legal fees and other costs incurred for specific matters that were not ordinary or routine to the operations of the business.

(c)

Severance credit represents an adjustment to the restructuring accrual relating to a December 2022 reduction in force.

 

Key Components of Our Results of Operations

The following discussion describes certain line items in our condensed consolidated statements of comprehensive loss.

Revenue

Revenue from the sale of our solar tracker systems and customized components of those systems is recognized over time, as work progresses, utilizing an input measure of progress determined by cost incurred to date relative to total expected cost on these projects to correlate with our performance in transferring control over the tracker systems and their components. Revenue from the sale of individual parts is recognized at a point in time as and when control transfers based on the terms of the contract. Revenue from sale of term-based software licenses is recognized upon transfer of control to the customer. Revenue for shipping and handling services is recognized over time based on progress in meeting shipping terms of the arrangements. Revenue for stand-alone engineering consulting and pile testing services is recognized at a point in time upon completion of the services performed. Subscription revenue, which is derived from our subscription-based enterprise licensing model, and support revenue, which is derived from ongoing security updates and maintenance, are generally recognized on a straight-line basis over the term of the contract.

Our customers include project developers, solar asset owners and EPC contractors that design and build solar energy projects. For each individual solar project, we enter into a contract with our customers covering the price, specifications, delivery dates and warranty for the products being purchased, among other things. Our contractual delivery period for our solar tracker systems and related parts can vary

 

27


 

depending on size of the project and availability of vessels and other means of delivery. Contracts can range in value from tens of thousands to tens of millions of dollars.

Our revenue is affected by changes in the volume and ASP of our solar tracking systems purchased by our customers and volume of sales of software products and engineering services, among other things. The ASP of our solar tracker systems and quarterly volume of sales is driven by the supply of, and demand for, our products, changes in product mix, geographic mix of our customers, strength of competitors’ product offerings, tariff and import restrictions, supply chain issues and availability of government incentives to the end-users of our products. Additionally, our revenue may be impacted by seasonality due to cold weather, which can cause variability in site construction activity.

The vast majority of our revenue in the periods presented was attributable to sales by our locations in the United States and Australia. Our revenue growth is dependent on continued growth in the number of solar tracker projects and engineering services we win in competitive bidding processes and growth in our software sales each year, as well as our ability to increase our market share in each of the geographies in which we currently compete, expand our global footprint to new emerging markets, grow our sources of production to meet demand and continue to develop and introduce new and innovative products that address the changing technology and performance requirements of our customers, among other things.

Cost of revenue and gross profit (loss)

We subcontract with third-party companies to manufacture and deliver our products directly to our customers. Our product costs are affected by the underlying cost of raw materials procured by these contract manufacturers, including steel and aluminum; component costs, including electric motors and gearboxes; technological innovation in manufacturing processes; and our ability to achieve economies of scale resulting in lower component costs. We do not currently hedge against changes in the price of raw materials, but we continue to explore opportunities to mitigate the risks of foreign currency and commodity fluctuations through the use of hedges and foreign exchange lines of credit. Some of these costs, primarily personnel, are not directly affected by sales volume.

We have made changes to our headcount in recent years as we initially scaled up our business and, more recently, made adjustments at the end of 2022 and in August 2023 in response to current project activity levels. Our gross profit may vary period-to-period due to changes in our headcount, ASP, product costs, product mix, customer mix, geographical mix, shipping methods, warranty costs and seasonality.

Operating expenses

Operating expenses consist of research and development expenses, selling and marketing expenses and general and administrative expenses. Personnel-related costs are the most significant component of our operating expenses and include salaries, benefits, bonuses, commissions and stock-based compensation expenses.

We implemented reductions in our workforce at the end of 2022 and in August 2023, in response to regulatory and other issues that were negatively impacting our solar project activity levels. We also had certain executive departures near the end of 2023. In addition, our operating costs have been impacted by (i) our level of research activities to originate, develop and enhance our products, (ii) our sales and marketing efforts as we expand our development activities in other parts of the world, and (iii) variations in legal and professional fees, compliance costs, insurance, facility costs and other costs associated with strategic changes in response to changing market conditions and other matters.

 

28


 

Results of Operations - Three Months Ended June 30, 2024 Compared to Three Months Ended June 30, 2023

 

 

Three months ended June 30,

 

 

 

2024

 

 

2023

 

(in thousands, except percentages)

 

Amounts

 

 

Percentage of revenue

 

 

Amounts

 

 

Percentage of revenue

 

Revenue:

 

 

 

 

 

 

 

 

 

 

 

 

Product

 

$

8,776

 

 

 

76.8

%

 

$

21,074

 

 

 

65.1

%

Service

 

 

2,654

 

 

 

23.2

%

 

 

11,285

 

 

 

34.9

%

Total revenue

 

 

11,430

 

 

 

100.0

%

 

 

32,359

 

 

 

100.0

%

Cost of revenue:

 

 

 

 

 

 

 

 

 

 

 

 

Product

 

 

10,467

 

 

 

91.6

%

 

 

19,152

 

 

 

59.2

%

Service

 

 

3,306

 

 

 

28.9

%

 

 

11,006

 

 

 

34.0

%

Total cost of revenue

 

 

13,773

 

 

 

120.5

%

 

 

30,158

 

 

 

93.2

%

Gross profit (loss)

 

 

(2,343

)

 

 

(20.5

%)

 

 

2,201

 

 

 

6.8

%

Operating expenses

 

 

 

 

 

 

 

 

 

 

 

 

Research and development

 

 

1,535

 

 

 

13.4

%

 

 

1,873

 

 

 

5.8

%

Selling and marketing

 

 

2,036

 

 

 

17.8

%

 

 

1,852

 

 

 

5.7

%

General and administrative

 

 

6,010

 

 

 

52.6

%

 

 

8,843

 

 

 

27.3

%

Total operating expenses

 

 

9,581

 

 

 

83.8

%

 

 

12,568

 

 

 

38.8

%

Loss from operations

 

 

(11,924

)

 

 

(104.3

%)

 

 

(10,367

)

 

 

(32.0

%)

Interest income (expense), net

 

 

1

 

 

 

0.0

%

 

 

(28

)

 

 

(0.1

%)

Other expense, net

 

 

(7

)

 

 

(0.1

%)

 

 

(141

)

 

 

(0.4

%)

Loss from unconsolidated subsidiary

 

 

(246

)

 

 

(2.2

%)

 

 

 

 

 

0.0

%

Loss before income taxes

 

 

(12,176

)

 

 

(106.5

%)

 

 

(10,536

)

 

 

(32.6

%)

(Provision for) benefit from income taxes

 

 

(65

)

 

 

(0.6

%)

 

 

122

 

 

 

0.4

%

Net loss

 

$

(12,241

)

 

 

(107.1

%)

 

$

(10,414

)

 

 

(32.2

%)

Revenue

We generate our revenue in two streams – Product revenue and Service revenue. Product revenue is derived from the sale of solar tracker systems and customized components for those systems, individual part sales for certain specific transactions and the sale of term-based software licenses. Service revenue includes revenue from shipping and handling services, engineering consulting and pile testing services, our subscription-based enterprise licensing model and maintenance and support services in connection with the term-based software licenses.

 

 

Three months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

 

Product

 

$

8,776

 

 

$

21,074

 

 

$

(12,298

)

 

 

(58.4

)%

Service

 

 

2,654

 

 

 

11,285

 

 

 

(8,631

)

 

 

(76.5

)%

Total revenue

 

$

11,430

 

 

$

32,359

 

 

$

(20,929

)

 

 

(64.7

)%

Product revenue

The decrease in product revenue for the three months ended June 30, 2024, as compared to the three months ended June 30, 2023, was primarily due to a decrease of 62% in the amount of MW produced as activity was adversely impacted by customer project delays during the latter part of 2023, and continuing into 2024, as compared to the same periods in 2022 and 2023. However, we also had an increase of 10% in ASP for the three months ended June 30, 2024, as a result of better pricing as compared to the three months ended June 30, 2023, which partially offset some of the impact of the decline in activity.

Service revenue

The decrease in service revenue for the three months ended June 30, 2024, as compared to the three months ended June 30, 2023, primarily resulted from (i) a decrease of 77% in the amount of MW delivered as a result of timing of project deliveries, as well as lower production levels, and (ii) lower engineering consulting and software revenues. This has been partially offset by an increase of 4% in ASP as compared to the three months ended June 30, 2023.

 

29


 

Cost of revenue and gross profit (loss)

Cost of revenue consists primarily of costs related to raw materials, equipment manufacturing activities, freight and delivery, product warranty, remediation and personnel costs (salaries, bonuses, benefits, and stock-based compensation). Personnel costs in cost of revenue include both direct labor costs, as well as costs attributable to any individuals whose activities relate to the procurement, installment and delivery of the finished product and services.

Gross profit may vary from period-to-period and is primarily affected by our ASP, product costs, timing of tracker production and delivery, customer mix, geographical mix, shipping method, logistics costs, warranty costs, indirect cost control efforts and seasonality.

 

 

Three months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

 

Product

 

$

10,467

 

 

$

19,152

 

 

$

(8,685

)

 

 

(45.3

)%

Service

 

 

3,306

 

 

 

11,006

 

 

 

(7,700

)

 

 

(70.0

)%

Total cost of revenue

 

$

13,773

 

 

$

30,158

 

 

$

(16,385

)

 

 

(54.3

)%

Gross profit (loss)

 

$

(2,343

)

 

$

2,201

 

 

$

(4,544

)

 

 

(206.5

)%

Gross profit (loss) percentage of revenue

 

 

(20.5

%)

 

 

6.8

%

 

 

 

 

 

 

The decrease in cost of revenue for the three months ended June 30, 2024, as compared to the three months ended June 30, 2023, was primarily driven by (i) a decrease of 62% in MW produced, (ii) a decrease of 77% in shipping and logistics activity, and (iii) lower remediation costs.

Our gross margin percentage of revenue for the three months ended June 30, 2024 was a negative 20.5%, as compared to a positive 6.8% for the three months ended June 30, 2023.

We had negative gross margin for the three months ended June 30, 2024 due to (i) the impact of lower revenue levels on our ability to cover certain relatively fixed overhead costs, and (ii) insufficient service revenue to fully cover our warehousing costs.

We had positive gross margin for the three months ended June 30, 2023 largely due to (i) improvements in our direct costs due to our design-to-value efforts and the impact of our cost control initiatives on indirect costs, as well as (ii) higher production activity.

Research and development

Research and development expenses consist primarily of salaries, employee benefits, stock-based compensation expense and travel expense related to our engineers performing research and development activities to originate, develop and enhance our products. Additional expenses include consulting charges, component purchases and other costs for performing research and development on our software products.

 

 

Three months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

 

Research and development

 

$

1,535

 

 

$

1,873

 

 

$

(338

)

 

 

(18.0

%)

The decrease in research and development expenses for the three months ended June 30, 2024, as compared to the three months ended June 30, 2023, was primarily attributable to (i) lower spending on lab and other research activities of $0.1 million, (ii) lower payroll costs of $0.1 million due to lower average headcount, and (iii) lower professional service costs of $0.1 million resulting from cost reduction initiatives. Research and development expenses as a percentage of revenue were 13.4% for the three months ended June 30, 2024, as compared to 5.8% for the three months ended June 30, 2023. The increase in the percentage research and development costs to revenue for the three months ended June 30, 2024, is largely a function of the lower level of revenue.

 

30


 

Selling and marketing

Selling and marketing expenses consist primarily of salaries, employee benefits, stock-based compensation expense and travel expense related to our sales and marketing and business development personnel. Additionally, selling and marketing expenses include costs associated with professional fees and support charges for software subscriptions and licenses, trade shows and conventions.

 

 

Three months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

 

Selling and marketing

 

$

2,036

 

 

$

1,852

 

 

$

184

 

 

 

9.9

%

The increase in selling and marketing expenses for the three months ended June 30, 2024, as compared to the three months ended June 30, 2023, was primarily attributable to (i) higher payroll costs of $0.3 million due to higher average headcount, and (ii) higher marketing costs of $0.2 million associated with increased trade show attendance and advertising. This was partially offset by lower provisions for credit losses of $0.3 million. Selling and marketing costs as a percentage of revenue were 17.8% for the three months ended June 30, 2024, compared to 5.7% for the three months ended June 30, 2023.

General and administrative

General and administrative expenses consist primarily of salaries, employee benefits, stock-based compensation expense and travel expense related to our executives, finance team, and administrative employees. It also consists of legal, consulting, and professional fees, rent and lease expense pertaining to our headquarters and international offices, business insurance costs and certain other costs.

 

 

Three months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

 

General and administrative

 

$

6,010

 

 

$

8,843

 

 

$

(2,833

)

 

 

(32.0

%)

The decrease in general and administrative expenses for the three months ended June 30, 2024, as compared to the three months ended June 30, 2023, was primarily attributable to (i) $1.4 million of lower stock-based compensation expense related primarily to (a) forfeiture of awards in connection with our reduction in force in August 2023 and executive terminations during the fourth quarter of 2023, and (b) forfeiture of awards in connection with the September 2023 termination of the Service Agreement with a related party as described further in Note 16, "Related party transactions" in Part I, Item 1 above, (ii) lower professional service fees of $0.5 million, (iii) lower insurance costs of $0.5 million, and (iv) lower payroll costs of $0.4 million as a result of lower average headcount. General and administrative expenses as a percentage of revenue were 52.6% for the three months ended June 30, 2024, compared to 27.3% for the three months ended June 30, 2023, largely due to the lower level of revenue.

Interest expense, net

 

 

Three months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

 

Interest (income) expense, net

 

$

(1

)

 

$

28

 

 

$

(29

)

 

 

(103.6

)%

Interest expense totaled approximately $0.1 million and $0.3 million during the three months ended June 30, 2024 and 2023, respectively, and primarily consisted of letter of credit and commitment fees on the Credit Facility, along with associated debt issue cost amortization. Interest income earned on our cash equivalents was approximately $0.1 million and $0.3 million during the three months ended June 30, 2024 and 2023, respectively.

Loss from unconsolidated subsidiary

 

 

Three months ended June 30,

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

Loss from unconsolidated subsidiary

 

$

246

 

 

$

 

 

$

246

 

 

N/A

The loss from unconsolidated subsidiary for the three months ended June 30, 2024, represents our share of the net operating losses incurred by Alpha Steel during the period.

 

31


 

Results of Operations - Six Months Ended June 30, 2024 Compared to Six Months Ended June 30, 2023

 

 

Six months ended June 30,

 

 

 

2024

 

 

2023

 

(in thousands, except percentages)

 

Amounts

 

 

Percentage of revenue

 

 

Amounts

 

 

Percentage of revenue

 

Revenue:

 

 

 

 

 

 

 

 

 

 

 

 

Product

 

$

19,681

 

 

 

81.9

%

 

$

53,653

 

 

 

73.2

%

Service

 

 

4,336

 

 

 

18.1

%

 

 

19,600

 

 

 

26.8

%

Total revenue

 

 

24,017

 

 

 

100.0

%

 

 

73,253

 

 

 

100.0

%

Cost of revenue:

 

 

 

 

 

 

 

 

 

 

 

 

Product

 

 

22,834

 

 

 

95.1

%

 

 

50,919

 

 

 

69.5

%

Service

 

 

5,634

 

 

 

23.5

%

 

 

18,098

 

 

 

24.7

%

Total cost of revenue

 

 

28,468

 

 

 

118.5

%

 

 

69,017

 

 

 

94.2

%

Gross profit (loss)

 

 

(4,451

)

 

 

(18.5

%)

 

 

4,236

 

 

 

5.8

%

Operating expenses

 

 

 

 

 

 

 

 

 

 

 

 

Research and development

 

 

2,974

 

 

 

12.4

%

 

 

3,795

 

 

 

5.2

%

Selling and marketing

 

 

4,424

 

 

 

18.4

%

 

 

3,563

 

 

 

4.9

%

General and administrative

 

 

12,577

 

 

 

52.4

%

 

 

19,642

 

 

 

26.8

%

Total operating expenses

 

 

19,975

 

 

 

83.2

%

 

 

27,000

 

 

 

36.9

%

Loss from operations

 

 

(24,426

)

 

 

(101.7

%)

 

 

(22,764

)

 

 

(31.1

%)

Interest expense, net

 

 

(135

)

 

 

(0.6

%)

 

 

(86

)

 

 

(0.1

%)

Gain from disposal of investment in unconsolidated subsidiary

 

 

4,085

 

 

 

17.0

%

 

 

898

 

 

 

1.2

%

Other income (expense), net

 

 

29

 

 

 

0.1

%

 

 

(215

)

 

 

(0.3

%)

Loss from unconsolidated subsidiary

 

 

(511

)

 

 

(2.1

%)

 

 

 

 

 

0.0

%

Loss before income taxes

 

 

(20,958

)

 

 

(87.3

%)

 

 

(22,167

)

 

 

(30.3

%)

Provision for income taxes

 

 

(54

)

 

 

(0.2

%)

 

 

(9

)

 

 

0.0

%

Net loss

 

$

(21,012

)

 

 

(87.5

%)

 

$

(22,176

)

 

 

(30.3

%)

Revenue

 

 

Six months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

 

Product

 

$

19,681

 

 

$

53,653

 

 

$

(33,972

)

 

 

(63.3

)%

Service

 

 

4,336

 

 

 

19,600

 

 

 

(15,264

)

 

 

(77.9

)%

Total revenue

 

$

24,017

 

 

$

73,253

 

 

$

(49,236

)

 

 

(67.2

)%

Product revenue

The decrease in product revenue for the six months ended June 30, 2024, as compared to the six months ended June 30, 2023, was primarily due to a decrease of 68% in the amount of MW produced as activity was adversely impacted by customer project delays during the latter part of 2023, and continuing into 2024, as compared to the same periods in 2022 and 2023. However, we also had an increase of 16% in ASP for the six months ended June 30, 2024, as a result of better pricing as compared to the six months ended June 30, 2023, which partially offset some of the impact of the decline in activity.

Service revenue

The decrease in service revenue for the six months ended June 30, 2024, as compared to the six months ended June 30, 2023, primarily resulted from (i) a decrease of 76% in the amount of MW delivered as a result of timing of project deliveries, as well as lower production levels, (ii) lower engineering consulting and software revenues, and (iii) a decrease of 6% in ASP as compared to the six months ended June 30, 2023.

 

32


 

Cost of revenue and gross profit (loss)

Gross profit may vary from period-to-period and is primarily affected by our ASP, product costs, timing of tracker production and delivery, customer mix, geographical mix, shipping method, logistics costs, warranty costs, indirect cost control efforts and seasonality.

 

 

Six months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

 

Product

 

$

22,834

 

 

$

50,919

 

 

$

(28,085

)

 

 

(55.2

)%

Service

 

 

5,634

 

 

 

18,098

 

 

 

(12,464

)

 

 

(68.9

)%

Total cost of revenue

 

$

28,468

 

 

$

69,017

 

 

$

(40,549

)

 

 

(58.8

)%

Gross profit (loss)

 

$

(4,451

)

 

$

4,236

 

 

$

(8,687

)

 

 

(205.1

)%

Gross profit (loss) percentage of revenue

 

 

(18.5

%)

 

 

5.8

%

 

 

 

 

 

 

The decrease in cost of revenue for the six months ended June 30, 2024, as compared to the six months ended June 30, 2023, was primarily driven by (i) a decrease of 68% in MW produced, (ii) a decrease of 76% in shipping and logistics activity, and (iii) by lower (a) remediation costs, (b) obsolete and slow-moving inventory provisions, and (c) stock-based compensation expense during the current period.

Our gross margin percentage of revenue for the six months ended June 30, 2024 was a negative 18.5%, as compared to a positive 5.8% for the six months ended June 30, 2023.

We had negative gross margin for the six months ended June 30, 2024 as (i) production volumes were not sufficient to cover certain relatively fixed overhead costs, and (ii) our service revenue was not sufficient to fully cover our warehousing and certain other costs.

We had positive gross margin for the six months ended June 30, 2023 due to (i) better product ASP, (ii) improvements in our direct costs due to our design-to-value efforts and the impact of our cost control initiatives on indirect costs, (iii) higher production activity and (iv) positive margins on our shipping and logistics services.

Research and development

 

 

Six months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

 

Research and development

 

$

2,974

 

 

$

3,795

 

 

$

(821

)

 

 

(21.6

%)

The decrease in research and development expenses for the six months ended June 30, 2024, as compared to the six months ended June 30, 2023, was primarily attributable to (i) lower stock-based compensation costs of $0.2 million, largely due to (a) award forfeitures resulting from a reduction in force in August 2023, as well as (b) the absence of stock award grants during the six months ended June 30, 2024 for incentive compensation, as compared to the issuance of such awards for incentive compensation earned during the six months ended June 30, 2023, (ii) lower spending on lab and other research activities of $0.2 million, (iii) lower payroll costs of $0.2 million due to lower average headcount, and (iv) lower software licensing and subscription costs of approximately $0.2 million. Research and development expenses as a percentage of revenue were 12.4% for six months ended June 30, 2024, as compared to 5.2% for the six months ended June 30, 2023. The increase in the percentage research and development costs to revenue for the six months ended June 30, 2024, is largely a function of the lower level of revenue.

Selling and marketing

 

 

Six months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

 

Selling and marketing

 

$

4,424

 

 

$

3,563

 

 

$

861

 

 

 

24.2

%

The increase in selling and marketing expenses for the six months ended June 30, 2024, as compared to the six months ended June 30, 2023, was primarily attributable to (i) higher payroll expense of $0.7 million due to higher average headcount, (ii) higher provisions for credit losses of $0.4 million related mainly to a charge associated with a specific customer account during the six months ended June 30, 2024, and (iii) higher marketing, travel and professional service costs. These increased costs were partially offset by lower stock-based compensation costs of $0.5 million. Selling and marketing costs as a percentage of revenue were 18.4% for the six months ended June 30, 2024, compared to 4.9% for the six months ended June 30, 2023.

 

33


 

General and administrative

 

 

Six months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

 

General and administrative

 

$

12,577

 

 

$

19,642

 

 

$

(7,065

)

 

 

(36.0

%)

The decrease in general and administrative expenses for the six months ended June 30, 2024, as compared to the six months ended June 30, 2023, was primarily attributable to $3.6 million of lower stock-based compensation expense related primarily to (i) forfeiture of awards in connection with the September 2023 termination of the Service Agreement with a related party as described further in Note 16, "Related party transactions" in Part I, Item 1 above, (ii) forfeiture of awards in connection with our reduction in force in August 2023 and executive terminations during the fourth quarter of 2023, and (iii) the absence of stock-based incentive compensation awards during the six months ended June 30, 2024, as compared to the six months ended June 30, 2023. In addition, the terminations described above contributed to lower payroll expense of $1.3 million during the six months ended June 30, 2024 and we were able to lower our insurance costs by $1.3 million and our legal costs by $0.6 million as compared to the six months ended June 30, 2023. General and administrative expenses as a percentage of revenue were 52.4% for the six months ended June 30, 2024, compared to 26.8% for the six months ended June 30, 2023, largely due to the lower level of revenue.

Interest expense, net

 

 

Six months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

 

Interest expense, net

 

$

135

 

 

$

86

 

 

$

49

 

 

 

57.0

%

Interest expense totaled approximately $0.4 million and $0.6 million during the six months ended June 30, 2024 and 2023, respectively, and primarily consisted of letter of credit and commitment fees on the Credit Facility, along with associated debt issue cost amortization. Interest income earned on our cash equivalents was approximately $0.3 million and $0.5 million during the six months ended June 30, 2024 and 2023, respectively.

Gain from disposal of investment in unconsolidated subsidiary

 

 

Six months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

 

Gain from disposal of investment in unconsolidated subsidiary

 

$

4,085

 

 

$

898

 

 

$

3,187

 

 

 

354.9

%

We sold our interest in our unconsolidated subsidiary, Dimension Energy LLC ("Dimension"), on June 24, 2021. Dimension is a community solar developer based in Atlanta, Georgia that provides renewable energy solutions for local communities in the United States. The sales agreement with Dimension included an earnout provision which provides the potential to receive additional contingent consideration of up to approximately $14.0 million through December 2024, based on Dimension achieving certain performance milestones. The sales agreement also includes a projects escrow release which is an additional contingent consideration to receive $7 million based on Dimension’s completion of certain construction projects in progress at the time of the sale. We made an accounting policy election to account for the contingent gains arising from earnout payments and project escrow releases only when those amounts become realizable in the periods subsequent to the disposal date. During the six months ended June 30, 2024 and 2023, we received earnout and escrow release payments of $4.1 million and $0.9 million, respectively, that were recognized in accordance with our policy election. Since the sale of our interest in Dimension, we have received a total of $7.4 million in contingent earnout and escrow release payments through June 30, 2024.

Loss from unconsolidated subsidiary

 

 

Six months ended June 30,

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

Loss from unconsolidated subsidiary

 

$

511

 

 

$

 

 

$

511

 

 

N/A

The loss from unconsolidated subsidiary for the six months ended June 30, 2024, represents our share of the net operating losses incurred by Alpha Steel during the period.

 

34


 

Liquidity and Capital Resources

Liquidity

Since our inception, we have financed our operations primarily through sales of shares of common stock, including our IPO in April 2021, issuance of debt and payments from our customers. Our ability to generate positive cash flow from operations is dependent on our level of production, contract payment terms, timely collections from our customers and the strength of our gross margins.

We have incurred cumulative losses since inception and have a history of cash outflows from operations. As of June 30, 2024, we had $10.8 million of cash on hand, $33.0 million of working capital and approximately $64.9 million of remaining capacity available for future sales of our common stock under our ATM program as defined and described further in Note 4, "ATM program" in the notes to condensed consolidated financial statements in Part I, Item 1 of this Quarterly Report. There can be no assurance that we will be able to sell any additional shares of our common stock under the ATM program and no assurance regarding the price at which we will be able to sell such shares, and any sales of our common stock under the ATM program may be at prices that result in additional dilution to our existing stockholders.

On December 22, 2023, we received notification from The Nasdaq Stock Market LLC (“Nasdaq”) that we were not in compliance with the requirement to maintain a minimum closing bid price of $1.00 per share, as set forth in Nasdaq Listing Rule 5450(a)(1), because the closing bid price of the Company’s common stock was below $1.00 per share for 30 consecutive business days. In accordance with Nasdaq Listing Rule 5810(c)(3)(A), we were initially given a period of 180 calendar days from the date of notification, or until June 19, 2024, to regain compliance with the minimum bid price requirement, which was not achieved. Effective May 31, 2024, trading in our common stock transferred from the Nasdaq Global Market to the Nasdaq Capital Market. On June 21, 2024, we received notification from Nasdaq that we were approved for an additional 180-day period, or until December 17, 2024, to cure the bid price deficiency in accordance with Nasdaq Listing Rule 5810(c)(3)(A). We are currently evaluating all of our options to achieve compliance with Nasdaq requirements for continued listing, which may include effecting a reverse stock split, if necessary, at least 10 days prior to December 17, 2024. At this time, our common stock continues to trade on the Nasdaq Capital Market under the symbol "FTCI". If at any time before December 17, 2024 the bid price of our common stock closes at or above $1.00 per share for a minimum of ten consecutive business days, Nasdaq will provide written notification that we have achieved compliance with this minimum bid price requirement. If we fail to regain compliance with the minimum bid price requirement during this second 180-day period, then Nasdaq will notify us that our common stock is subject to delisting.

Effective April 30, 2024, our Senior Secured Revolving Credit Facility ("Credit Facility) expired unused and has not been replaced as of June 30, 2024. We continue to evaluate additional opportunities to obtain financing.

At June 30, 2024, we had a contractual obligation that could require us to make additional capital contributions of up to $0.8 million to Alpha Steel, as well as make a minimum level of purchases from Alpha Steel, as described further in Note 3, "Equity method investment" in the notes to condensed consolidated financial statements in Part I, Item 1 of this Quarterly Report. In the event we were to fail to meet our minimum required purchase commitments during a specified period, including the current period from January 1, 2024 to June 30, 2025, we may be required to make a cash payment for the net profit attributable to any unfilled requirements, calculated as specified in the agreement, in an amount not to exceed $4.0 million in the aggregate.

The most notable incentive program impacting our U.S. business has historically been the ITC for solar energy projects, which allows taxpayers to offset their U.S. federal income tax liability by a certain percentage of their cost basis in solar energy systems placed in service for commercial use. The Inflation Reduction Act of 2022, passed by the U.S. Congress and signed into law by President Biden on August 16, 2022, expanded and extended the tax credits and other tax benefits available to solar energy projects and the solar energy supply chain. ITCs have been extended for such projects through at least 2032 and, depending on the location of a particular project and its ability to satisfy certain labor and domestic content requirements, the ITC percentage can range between 30% and 50%. U.S. manufacturers of specific solar components are now eligible to claim production tax credits as an alternative to the ITC. Implementing regulations for this law are, in certain cases, still being finalized and the impact of these regulations continue to be evaluated by developers of new solar projects and manufacturers of solar components. Our investment in and commitments made to Alpha Steel will allow us to obtain certain benefits as a result of this new production tax credit program.

We have taken steps to expand and diversify our manufacturing partnerships and have adjusted our modes of transportation to mitigate the impact of headwinds that might arise in the global supply chain and logistics markets. As an example, we modified our ocean freight from previously using charter shipments to now using containerized shipments as costs in the container market began to decrease starting in 2022, but more recently have begun to increase. However, we have been able to mitigate some of this increase as a result of increasing

 

35


 

our domestic production capabilities. We continue to monitor the logistics markets and will continue to evaluate our use of various modes of transportation when warranted to optimize our transportation costs. Additionally, from February 2022 to September 2023, we utilized a related-party consulting firm to support us in making improvements to our processes and performance in various areas, including design, sourcing, logistics, pricing, software and our distributed generation business. For further information regarding this consulting firm, see Note 16, "Related party transactions" in the notes to condensed consolidated financial statements in Part I, Item 1 of this Quarterly Report. These steps, and others, have allowed us to improve our business processes and lower our product cost structure, thus improving our direct product margins in recent periods. As an example, we generated positive gross profit during each quarter in 2023. Additionally, we have made substantial progress in lowering our operating costs, showing significant improvement since becoming a public company, as well as in comparison to the prior year periods included in this Quarterly Report. These combined factors have allowed us to significantly lower the estimated quarterly revenue level that we believe is required to break even. However, our low revenue levels for the three and six months ended June 30, 2024, have prevented us from continuing to show positive quarterly gross profit in 2024, similar to 2023, as revenues have not been sufficient to fully cover our indirect costs.

Similar to previous periods, we continue to evaluate additional opportunities in 2024 to address existing market challenges, our cost structure and our historical use of cash. In 2023, (i) we introduced a new mounting solution to support the installation and use of U.S.-manufactured thin-film modules, (ii) Pioneer, our 1P solar tracker solution, became certified, and (iii) we introduced SUNOPS, a cloud-based, tracker agnostic solar asset monitoring solution allowing asset owners and managers to evaluate the operation and performance of their solar deployments. We have continued to enhance our customer offerings in 2024, including the launch of our Automated Hail Stow Solution which is aimed at minimizing solar panel damage caused by hail storms. As described elsewhere in this Quarterly Report, we also have recently added experienced and accomplished leadership talent to head our North America and International sales organizations and have named a new President and Chief Executive Officer with significant experience in the solar industry who will join us on August 19, 2024.

In accordance with Accounting Standards Codification ("ASC") 205-40, Going Concern, we have evaluated whether there are conditions and events, considered in the aggregate, which raise substantial doubt about our ability to continue as a going concern within one year after the date our condensed consolidated financial statements are issued.

Management believes that our existing cash on hand, as well as the continuing impact of certain of the actions described within this memo and our expectations of (i) the expected timing of future customer project activity, including activity related to certain large project awards previously received, and (ii) the positive results in recent periods from our efforts to increase our direct product margins and lower our cost structure, will allow us to grow profitably and generate positive cash flow from operations during the next twelve months in amounts that will be sufficient, along with our other available resources such as our existing working capital and, the remaining capacity available for future sales of our common stock under our ATM program, to fund our operations for at least one year from the date of issuance of our condensed consolidated financial statements.

While there are already many underlying drivers of growth in the solar industry, the expected positive impact on demand for our products from these drivers of growth could take longer than expected to occur because the timing of construction activity by existing customers and solar project developers can be uncertain. As an example, we have experienced in recent periods customer delays caused by interconnection issues, equipment shortages and the timing and ability of obtaining financing at acceptable levels. In addition, domestic and international market conditions, including differences between margins on international and U.S. projects, could deteriorate significantly from what we currently expect, and regulatory and international trade policies could become more stringent as a result of (i) findings from an ongoing Solar Circumvention Investigation in response to a petition by Auxin Solar, Inc. of claims related to alleged circumvention of AD/CVD by solar manufacturers in certain Southeast Asian countries, (ii) enforcement of the UFLPA passed by the U.S. Congress and signed into law by President Biden on December 23, 2021, by CBP, and (iii) other factors, which may result in a need for us to issue additional debt or obtain new equity financing to adequately fund our existing operations beyond the next twelve months. We continue to actively explore options to obtain additional sources of capital through the issuance of new debt, asset financing or other potential measures for our longer-term needs. However, we may be unable to obtain any desired additional financing on terms favorable to us, or at all, depending on market and other conditions, which could result in curtailment of our current operations and our ability to further invest in our products and new technology. The ability to raise additional financing depends on numerous factors, some of which are outside of our control, including macroeconomic factors such as the impact of inflation, the level of interest rates, supply chain or other effects from the ongoing conflicts in the Ukraine and the Middle East, general market conditions, the health of financial institutions (including recent bankruptcies and financial difficulties involving certain regional banks and related impacts that have occurred and continue to occur in the banking industry), investors' and lenders' assessments of our prospects and the prospects of the solar industry in general and the ability of our common stock to continue to trade in active markets.

 

36


 

Statements of cash flows

The following table shows our cash flows from operating activities, investing activities and financing activities for the stated periods:

 

 

Six months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

Net cash used in operations

 

$

(15,635

)

 

$

(30,809

)

Net cash provided by (used in) investing activities

 

 

1,154

 

 

 

(197

)

Net cash provided by financing activities

 

 

3

 

 

 

20,577

 

Effect of exchange rate changes on cash and cash equivalents

 

 

22

 

 

 

(139

)

Decrease in cash and cash equivalents

 

$

(14,456

)

 

$

(10,568

)

Operating activities

During the six months ended June 30, 2024, we used approximately $17.1 million of cash to fund a portion of our current period expenditures for personnel and facilities, legal and professional fees, insurance, research and development and various other operating activities. This compares to approximately $9.2 million of cash used during the six months ended June 30, 2023, also to fund a portion of our prior period expenditures for various operating activities as described above.

Approximately $1.5 million of cash was generated from working capital and other decreases during the six months ended June 30, 2024, primarily as a result of production activity and the timing of customer receipts, including the settlement reached with a major customer as described further in Note 5, "Accounts receivable, net" in the notes to condensed consolidated financial statements in Part I, Item 1 of this Quarterly Report, and payments to our vendors. During the six months ended June 30, 2023, we used approximately $21.6 million of cash for working capital and other increases as a result of production activity and the timing of customer receipts, net of vendor payments.

Our working capital decreased by $20.8 million from $53.8 million at December 31, 2023 to $33.0 million at June 30, 2024. The decrease was largely attributable to (i) the use of cash to fund current period expenditures as described above and (ii) the impact of lower activity levels on the amount of billed and unbilled accounts receivables during the six months ended June 30, 2024.

Investing activities

During the six months ended June 30, 2024, we made additional equity investments of $1.8 million in Alpha Steel, a manufacturing partnership with Taihua, in which we hold a 45% interest. Pursuant to our agreement with Alpha Steel, we could be required to make up to $0.8 million in future additional capital contributions as Alpha Steel continues to expand production. We also spent nearly $1.1 million, mainly for tooling and new computer and IT equipment, as well as leasehold improvements, during the six months ended June 30, 2024. In addition, we received $4.1 million of contingent earnout payments in connection with the June 2021 sale of our equity interest in Dimension.

During the six months ended June 30, 2023, we made an initial equity investment of $0.9 million in Alpha Steel and received $0.9 million in contingent payments from escrow in connection with the sale of our equity interest in Dimension as described above.

Financing activities

During the six months ended June 30, 2023, we began selling newly issued shares of our common stock in various daily transactions under our ATM program, receiving cash proceeds of $20.6 million. We also received $0.1 million of proceeds from employee exercises of stock options.

Revolving line of credit

Our Credit Facility, entered into in 2021 with various lenders, including Barclays Bank PLC, as issuing lender, the swingline lender and as administrative agent, expired unused on April 30, 2024. The Credit Facility has not currently been replaced.

Critical Accounting Policies and Significant Management Estimates

Preparation of condensed consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements, and the reported revenue and expenses during the period. Estimates are used for calculating the measure of progress

 

37


 

of our solar tracker projects and deriving the standalone selling prices of the individual performance obligations when determining amounts to recognize for revenue, estimating allowances for credit losses and slow-moving and obsolete inventory, determining useful lives of long-lived assets and the estimated fair value of those assets for impairment assessments, and estimating the fair value of investments, stock compensation awards, warranty liabilities and federal and state taxes, including tax valuation allowances, as well as other contingencies. We base our estimates on historical experience and anticipated results, trends, and various other assumptions that we believe are reasonable under the circumstances, including assumptions as to future events. Actual results could differ from those estimates due to risks and uncertainties.

To the extent that there are differences between our estimates and actual results, our future financial statement presentation, financial condition, results of operations and cash flows will be affected. We believe that the accounting policies discussed below are critical to understanding our historical and future performance, as these policies relate to the more significant areas involving management’s judgments and estimates. Critical accounting policies and estimates are those that we consider the most important to the portrayal of our financial condition and results of operations because they require our most difficult, subjective or complex judgments, often as a result of the need to make estimates about the effects of matters that are inherently uncertain.

We believe that the accounting policies described below involve a significant degree of judgment and complexity. Accordingly, we believe these are the most critical to aid in fully understanding and evaluating our condensed consolidated financial condition and results of operations.

Revenue recognition

Our accounting policy on revenue recognition may be found in Note 2, "Summary of significant accounting policies" in our condensed consolidated financial statements in Part I, Item 1 of this Quarterly Report.

Judgments and assumptions

The timing and amounts of revenue and cost of revenue recognition, as well as recording of related receivables and deferred revenue, is highly dependent on our identification of performance obligations in each contract and our estimates by contract of total project cost and our progress toward project completion as of each period end. Certain estimates are subject to factors outside of our control that may impact our suppliers and the global supply chain. As an example, we began to experience increases in steel prices and shipping and logistics costs, as well as delays in delivery of our products to customers during 2021, which negatively impacted our results of operations as we were not able to recover all of the additional costs under certain of our fixed fee contracts. In addition, regulatory, tariff and import concerns such as those caused by the UFLPA and the Solar Circumvention Investigation have in the past, and may continue to, affect our ability to obtain project materials and may delay the timing of customer project activity which has had in the past, and may continue to have, an adverse impact on our results of operations, including the expected timing of the recognition of revenue needed to cover our relatively fixed overhead costs. We base our estimates on the best information available at each period end, but future events and their effects cannot be determined with certainty, and actual results could differ materially from our assumptions and estimates.

Accounts receivable, net

Our accounting policy relating to our accounts receivable and allowance for credit losses may be found in Note 2, "Summary of significant accounting policies" in our condensed consolidated financial statements in Part I, Item 1 of this Quarterly Report.

Judgments and assumptions

The allowance for credit losses is based on the lifetime expected credit loss of our customer accounts. To assess the lifetime expected credit loss, we utilize a loss rate method that takes into consideration historical experience and certain other factors, as appropriate, such as credit quality and current economic or other conditions that may affect a customer's ability to pay. This method accelerates the recognition of expected credit losses as compared to the incurred loss model used prior to 2023 and may result in material differences between our estimates and actual collection results. We may also have greater fluctuations in our credit loss expense over time based on changes in our historical experience or changes in estimates of future economic conditions which may not adequately reflect future actual customer payment activity.

Adjustments to the allowance are largely dependent on historical experience involving amounts previously collected from our customers in recent years or based on specific changes in a customer's ability to pay. As an example, we recognized a $0.6 million credit

 

38


 

loss provision in our selling and marketing expenses during the six months ended June 30, 2024, primarily related to a specific customer's inability to fully pay amounts owed. Historical experience, when used in making such adjustments, may not reflect current actual experience.

Warranty

Our accounting policy relating to our warranty obligations may be found in Note 2, "Summary of significant accounting policies" in our condensed consolidated financial statements in Part I, Item 1 of this Quarterly Report.

Judgments and assumptions

We base our estimated warranty obligations on available industry data relating to the nature and frequency of product failure rates and, where possible, on our historical experience, to make estimates of costs to address future claims. These estimates are inherently uncertain given our relatively short history of sales, and changes to our historical or projected warranty experience or fluctuations in available industry data may result in material changes to our warranty reserves in the future. Additionally, we make estimates of what costs we believe will be recoverable from the manufacturers of our products that we use to offset our obligations to our customers.

While we periodically monitor our warranty activities and claims, if actual costs incurred were to be different from our estimates, we would recognize adjustments to our warranty reserves in the period in which those differences arise or are identified. Such adjustments could be material to cost of revenue in our results of operations in the period the adjustments are made.

Stock-based compensation

Our accounting policy relating to our stock-based compensation may be found in Note 2, "Summary of significant accounting policies" in our condensed consolidated financial statements in Part I, Item 1 of this Quarterly Report.

Judgments and assumptions

The Black-Scholes model relies on various assumptions, in addition to the exercise price of the option and the value of our common stock on the date of grant. These assumptions include:

Expected Term: The expected term represents the period that the Company’s stock-based awards are expected to be outstanding and is calculated as the average of the option vesting and contractual terms, based on the simplified method, as we do not have sufficient historical exercise data to provide a reasonable basis upon which to estimate the expected term for options granted. The simplified method deems the term to be the average of the time-to-vesting and the contractual life of the options. The contractual life of an option may be up to 10 years.

Expected Volatility: Since the Company did not have a trading history of its common stock prior to our IPO and since such trading history subsequent to our IPO is limited and may be less than the expected term of an award, the expected volatility is derived from the average historical stock volatilities of several public companies within the Company’s industry that it considers to be comparable to its business over a period equivalent to the expected term of the stock option grants.

Risk-Free-Interest-Rate: The Company bases the risk-free interest rate on the implied yield available on U.S. Treasury zero-coupon issues with a remaining term equivalent to the expected term.

Expected Dividend: The Company has not issued any dividends in its history and does not expect to issue dividends over the life of the options and, therefore, has estimated the dividend yield to be zero.

We used Monte Carlo simulations for certain awards granted with market conditions which provided an estimated average present value for each award based on a simulation assuming Geometric Brownian Motion in a risk-neutral framework using 100,000 simulation paths to determine the derived service and vesting periods.

Our use of the simplified method for estimating the expected outstanding term our options may differ significantly from future actual exercise patterns of our option holders. Estimates of the outstanding term our options that are less than the actual exercise patterns of our option holders, may result in lower recognized expense. Alternatively, our recognized expense may be higher if our option holders exercise their options sooner than our estimates project.

 

39


 

Similarly, our use of a volatility estimate based on historical stock volatilities of a peer group of other public companies may differ significantly from the actual future volatility of our stock over the term options are held. Higher estimated volatility compared to future actual results may result in higher recognized expense and alternatively, lower expected volatility compared to future actual results may result in lower recognized expense.

Changes to any of our assumptions, but particularly our estimates of expected term and volatility, could change the fair value of our options and impact the amount of stock-based compensation expense we report each period.

Impairment

Our accounting policies relating to impairment of our long-lived assets held for use, including intangible assets, and of goodwill may be found in Note 2, "Summary of significant accounting policies" in our condensed consolidated financial statements in Part I, Item 1 of this Quarterly Report.

Judgments and assumptions

Key judgments and assumptions involving our assessment of impairment of our long-lived and intangible assets, as well as goodwill, may include:

Determination of whether events or changes in circumstances indicate that the carrying value of our long-lived assets or goodwill might be impaired. Such factors to consider may include an evaluation of changes in the business or regulatory climate, market conditions or other events impacting our operations;
Estimating future cash flows of our long-lived assets or asset groups and intangible assets, which may involve assumptions as to the lowest level of our assets at which cash flows are generated, including future growth and risk-adjusted discount rates, as well as a terminal growth rate or value and future market conditions;
Estimates of assumptions a market participant would use in determining the fair value of the affected long-lived assets or asset groups; and
Estimating the fair value of the consolidated company.

In estimating the fair value of the consolidated company, we used our market capitalization based on our closing stock price on the Nasdaq Capital Market at June 30, 2024. Our daily closing stock price is affected by numerous factors, some of which may not directly involve the operations of the company and, historically, has demonstrated high volatility.

We did not identify any impairments of our long-lived assets, intangible assets or goodwill during the six months ended June 30, 2024 and 2023.

JOBS Act accounting election

We are an emerging growth company, as defined in the JOBS Act. Under the JOBS Act, emerging growth companies can delay adopting new or revised accounting standards until such time as those standards apply to private companies. We elected to use the allowed extended transition period for adopting new or revised accounting standards.

 

ITEM 3. QUANTITATIVE AND QUALITATIVE DISCLOSURES ABOUT MARKET RISK

We are exposed to market risk in the ordinary course of our business. Market risk represents the risk of loss that may impact our financial position due to adverse changes in financial market prices and rates. Our market risk exposure is primarily a result of customer concentrations and fluctuations in steel, aluminum and logistics/transportation prices. We do not hold or issue financial instruments for trading purposes.

 

40


 

Fair value of financial instruments

Our financial instruments consist of cash, cash equivalents, accounts receivable, short-term loans and accounts payable. Cash, cash equivalents, accounts receivable, short-term loans and accounts payable are stated at their carrying value, which approximates fair value due to the short time to the expected receipt or payment date.

We had $10.8 million of cash and cash equivalents on hand, the vast majority of which was located in the United States, and no debt outstanding as of June 30, 2024. We regularly maintain cash balances with various financial institutions that exceed federally insured amounts, but we have experienced no losses associated with these amounts to date. We also took action in early 2023 to reallocate cash balances between different financial institutions based on our assessment as to the financial health of certain institutions.

Certain of our cash equivalents include deposits in money market funds that invest primarily in short-term securities issued or guaranteed by the U.S. government or its agencies or instrumentalities and contain no restrictions on immediate redemption. The carrying value for these money market fund deposits approximates fair value based on quoted prices in active markets for units held (Level 1 classification) and totaled $5.9 million at June 30, 2024 and $13.9 million at December 31, 2023.

We have no other financial instruments as of June 30, 2024 or December 31, 2023, other than cash equivalents, short-term loans and certain non-functional currency intercompany and third-party receivables and payables, which are subject to foreign exchange, interest rate or market risks.

Concentrations of major customers

Our customers include project developers, solar asset owners and EPC contractors that design and build solar energy projects. We extend credit to customers in the normal course of business, often without requiring collateral. We also perform credit analyses and monitor the financial health of our customers to reduce credit risk.

We typically rely on a small number of customers that account for a large portion of our revenue each period and our outstanding receivables at each period end.

Further, our accounts receivables are from companies within or serving the solar industry and, as such, we are exposed to normal industry credit risks. We continually evaluate our reserves for potential credit losses and establish initial reserves based on our expectation of lifetime expected credit losses.

Commodity Price Risk

We subcontract to various contract manufacturers, who manufacture and deliver products directly to our customers. We, therefore, do not procure raw materials and commodities directly, except for items added to our inventory. We are subject to indirect risk from fluctuating market prices of certain commodity raw materials, including steel and aluminum, which are used in our products, through our contract manufacturers, as increases in these commodity prices would increase our cost of procuring subcontracting services. Prices of these raw materials may be affected by supply restrictions or other market factors from time to time. Significant price increases for these raw materials could reduce our operating margins if we are unable to recover such increases in costs from our customers, and could harm our business, financial condition and results of operations.

 

 

41


 

ITEM 4. CONTROLS AND PROCEDURES

Evaluation of Disclosure Controls and Procedures

Our management, with the participation of our Chairman of the Board of Directors (functioning as our principal executive officer) and our Chief Financial Officer, evaluated the effectiveness of our disclosure controls and procedures (as defined in Rules 13a-15(e) and 15d-15(e) under the Securities Exchange Act of 1934 (the "Exchange Act") as of the end of the period covered by this Quarterly Report. Based on that evaluation, our Chairman of the Board of Directors and Chief Financial Officer concluded that our disclosure controls and procedures were effective as of June 30, 2024 in providing reasonable assurance that information required to be disclosed by us in reports that we file or submit under the Exchange Act is recorded, processed, summarized and reported within the time periods specified in the Securities and Exchange Commission's rules and forms, and that such information is accumulated and communicated to our management, including our Chief Executive Officer and Chief Financial Officer, as appropriate, to allow timely decisions regarding required disclosures.

Because of its inherent limitations, internal control over financial reporting may not prevent or detect misstatements. Also, projections of any evaluation of effectiveness to future periods are subject to the risk that controls may become inadequate because of changes in conditions, or that the degree of compliance with the policies or procedures may deteriorate.

Changes in Internal Control Over Financial Reporting

There were no changes in our internal control over financial reporting that occurred during the three months ended June 30, 2024, that have materially affected, or are reasonably likely to materially affect, our internal control over financial reporting.

 

 

42


 

PART II - OTHER INFORMATION

From time to time, we may become involved in various claims, lawsuits, investigations, and other proceedings, arising in the normal course of business.

In March of 2023, CBP issued notices of tariff assessment that indicated an action taken at the Import Specialist (i.e., the port) level with respect to merchandise imported from Thailand under entry number 004-1058562-5 (the “625 Assessment”) and entry number 004-1063793-9 (the “Original 939 Assessment”, and collectively with the 625 Assessment, the “Original CBP Assessments”). The Original CBP Assessments related to certain torque beams that are used in our Voyager+ product that were imported in 2022. In the Original CBP Assessments, CBP asserted that Section 301 China tariffs, Section 232 steel and aluminum tariffs, and antidumping and countervailing duties applied to the merchandise. Based on correspondence received to date from CBP and our calculations based on applicable duty and tariff rates, the 625 Assessment is currently for approximately $2.84 million. In September of 2023, CBP informed us (the "Revised 939 Assessment", and together with the 625 Assessment, the "Revised CBP Assessments") that the amount owed under the Original 939 Assessment was being revised downward to approximately $2.01 million. In particular, CBP accepted our position that the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, previously assessed under the Original 939 Assessment are not applicable as they are only applicable to articles that originate in China and that, in this case, the finished goods are products of Thailand.

Upon review of the facts involved, and in consultation with outside legal counsel, we believe that the remaining amounts claimed in the Revised CBP Assessments are incorrect. In particular, the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, are not applicable under the 625 Assessment for the same reason stated above with respect to the Revised 939 Assessment, which has been accepted by CBP. Moreover, with respect to both Revised CBP Assessments, we believe that the goods in question were properly classified as parts of structures at the time of importation and that when properly classified, the beams and other materials are not subject to Section 232 duties applicable to more basic steel products.

CBP has legally finalized both Revised CBP Assessments. We filed a formal protest for the 625 Assessment in September of 2023 and for the Revised 939 Assessment in March of 2024. Based on the above, and under the relevant accounting guidance related to loss contingencies, we have made no accrual for the amounts claimed by CBP as of June 30, 2024, as we do not consider these amounts to be a probable obligation, as such term is defined and interpreted under the relevant accounting guidance, for us at this time. However, because matters of this nature are subject to inherent uncertainties, and unfavorable rulings or developments, including future assessments of additional duties or tariffs owed in respect of other shipments or other materials beyond what is presently included in the Revised CBP Assessments, could occur despite our belief that the tariffs and duties asserted are incorrect, there can be no certainty that the Company may not ultimately incur charges that are not currently recorded as liabilities. Since the outcome of these matters cannot be predicted with certainty, the costs associated with them could have a material adverse effect on our consolidated results of operations, financial position, or liquidity.

 

ITEM 1A. RISK FACTORS

We are subject to a number of risks that if realized could adversely affect our business, strategies, prospects, financial condition, results of operations and cash flows. Some of the more significant risks and uncertainties we face include those summarized below. The summary below is not exhaustive and is qualified by reference to the full set of risk factors set forth in Item 1A. "Risk Factors" in our 2023 Annual Report. Please carefully consider all of the information in this Quarterly Report and our 2023 Annual Report, including the full set of risks set forth in Item 1A. "Risk Factors" of our 2023 Annual Report, and in our other filings with the SEC before making an investment decision regarding us.

Risks related to our business and our industry – We are a relatively new public company with a history of losses that provides products and services to the solar industry, which is rapidly changing and dependent on being competitive with the price of electricity generated from other sources. We face competition from other companies that may be larger than us and have more financial resources than we have which could impact our ability to compete for new business. We also currently rely on a limited number of customers which may have material adverse effects on our revenue, operating results and cash flows.
Risks related to government regulations and legal compliance – We face risks to the demand for our products from our customers due to changes in, or expiration of, governmental incentives and existing tax credits and other benefits. Additionally,

 

43


 

changes in the trade environment and tax treaties between the United States and other countries, such as China, as well as import tariffs and other laws and regulations that impact the ability to import our products or other products necessary for the construction of solar energy projects, have adversely and could continue to adversely affect our business.
Risks related to manufacturing and supply chain – We face risks in meeting the needs of our customers due to our reliance on a limited number of contract manufacturers, including on their ability to obtain raw materials in a cost effective and timely manner and to provide timely deliveries of finished products to us and our customers.
Risks related to intellectual property – We face the risk of not being able to adequately protect or defend our intellectual property and property rights in the various countries in which we do business.
Risks related to information technology and data privacy – We face reputational and monetary risks from cybersecurity incidents and the unauthorized disclosure of personal or sensitive data relating to our employees, customers, vendors and others.
Risks related to ownership of our common stock – The holders of our common stock face a risk of loss in their investment in us due to fluctuations in our stock price as a result of changing market conditions, any future issuances of stock, our future financial performance, our corporate legal structure, the substantial ownership in our stock by our directors, executive officers and principal stockholders and the potential for our common stock to not be able to trade in active, liquid markets.
Risks related to health epidemics – We face risks of our business being adversely impacted by the effects of future widespread outbreaks of contagious disease. For example, the COVID-19 pandemic caused significant supply chain disruptions beginning in 2020 that resulted in delays in product delivery and completion and caused increased transportation costs, as well as labor shortages.

Additionally, as described further in Note 2 in Part I, Item 1 under the section "Liquidity" and in Part I, Item 2 of this Quarterly Report under the section "Liquidity and Capital Resources", we have a history of cash outflows to fund operations.

 

ITEM 2. UNREGISTERED SALES OF EQUITY SECURITIES AND USE OF PROCEEDS

Unregistered Sales of Equity Securities

None.

Use of Proceeds

None.

Issuer Purchases of Equity Securities

None.

 

44


 

 

ITEM 3. DEFAULTS UPON SENIOR SECURITIES

Not applicable.

 

ITEM 4. MINE SAFETY DISCLOSURES

Not applicable.

 

ITEM 5. OTHER INFORMATION

(a)
Information required to be disclosed in a report on Form 8-K during the period covered by this Form 10-Q, but not reported.

None

(b)
Furnish the information required by Item 407(c)(3) of Regulation S-K (§229.407 of this chapter)

None

(c)
Furnish the information required by Item 408(a) of Regulation S-K (17 CFR 229.408(a)).

Effective June 10, 2024, Tamara Mullings, a former member of our Board of Directors and our current Senior Vice President, North American Sales, terminated her stock trading plan adopted on December 11, 2023, relating to the sale of up to 73,655 shares of common stock over the period March 5, 2024 to December 31, 2024. This stock trading plan was intended to satisfy the affirmative defense conditions of Rule 10b5-1(c) of the Securities Exchange Act of 1934.

None of our other directors or officers adopted, amended or terminated a "Rule 10b5-1 trading arrangement" or a "non-Rule 10b5-1 trading arrangement," as each term is defined in Item 408 of Regulation S-K during the three months ended June 30, 2024.

 

45


 

ITEM 6. EXHIBITS

The following exhibits are filed as part of this report:

 

 

Exhibit

Number

 

Description

3.1

**

Amended and Restated Certificate of Incorporation of FTC Solar, Inc.(filed as Exhibit 3.1 to the Registrant's Current Report on Form 8-K filed with the Securities and Exchange Commission on May 3, 2021 and incorporated herein by reference).

3.2

**

Amended and Restated Bylaws of FTC Solar, Inc.(filed as Exhibit 3.2 to the Registrant's Current Report on Form 8-K filed with the Securities and Exchange Commission on May 3, 2021 and incorporated herein by reference).

3.3

**

Certificate of Correction of Amended and Restated Certificate of Incorporation (Filed as Exhibit 3.3 to the Registrant's Quarterly Report on Form 10-Q filed with the Securities and Exchange Commission on June 8, 2021 and incorporated herein by reference)

4.1

**

Specimen Common Stock Certificate (filed as Exhibit 4.1 to the Registrant's Registration Statement on Form S-1 filed with the Securities and Exchange Commission on April 29, 2021 and incorporated herein by reference)

10.1

**

Employment Agreement, dated July 17, 2024, between FTC Solar, Inc. and Yann Brandt (filed as Exhibit 10.1 to the Registrant's Current Report on Form 8-K filed with the Securities and Exchange Commission on July 23, 2024 and incorporated herein by reference)

31.1

*

Certification of Principal Executive Officer Pursuant to SEC Rule 13a−14(a)/15d−14(a), as adopted pursuant to Section 302 of the Sarbanes-Oxley Act of 2002

31.2

*

Certification of Principal Financial Officer Pursuant to SEC Rule 13a−14(a)/15d−14(a), as adopted pursuant to Section 302 of the Sarbanes-Oxley Act of 2002

32.1

*

Certification of Principal Executive Officer Pursuant to 18 U.S.C. Section 1350, as Adopted Pursuant to Section 906 of the Sarbanes-Oxley Act of 2002.

32.2

*

Certification of Principal Financial Officer Pursuant to 18 U.S.C. Section 1350, as Adopted Pursuant to Section 906 of the Sarbanes-Oxley Act of 2002.

101.INS

*

Inline XBRL Instance Document – the instance document does not appear in the Interactive Data File because XBRL tags are embedded within the Inline XBRL document.

101.SCH

*

Inline XBRL Taxonomy Extension Schema With Embedded Linkbase Documents

104

*

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

 

*

Filed herewith

**

Incorporated herein by reference

 

46


 

SIGNATURE

 

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

 

 

 

 

FTC SOLAR, INC.

 

 

 

 

Date: August 8, 2024

/s/ Cathy Behnen

 

Cathy Behnen, Chief Financial Officer

 

 

 

 

47


EX-31.1 2 ftci-ex31_1.htm EX-31.1 EX-31.1

Exhibit 31.1

CERTIFICATION PURSUANT TO

RULES 13a-14(a) AND 15d-14(a) UNDER THE SECURITIES EXCHANGE ACT OF 1934,

AS ADOPTED PURSUANT TO SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002

I, Shaker Sadasivam, certify that:

1.
I have reviewed this quarterly report on Form 10-Q of FTC Solar 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: August 8, 2024

By:

/s/ Shaker Sadasivam

Shaker Sadasivam

Chairman of the Board of Directors of FTC Solar, Inc.

 

 


EX-31.2 3 ftci-ex31_2.htm EX-31.2 EX-31.2

Exhibit 31.2

CERTIFICATION PURSUANT TO

RULES 13a-14(a) AND 15d-14(a) UNDER THE SECURITIES EXCHANGE ACT OF 1934,

AS ADOPTED PURSUANT TO SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002

I, Cathy Behnen, certify that:

1.
I have reviewed this quarterly report on Form 10-Q of FTC Solar 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: August 8, 2024

By:

/s/ Cathy Behnen

Cathy Behnen

Chief Financial Officer

 

 


EX-32.1 4 ftci-ex32_1.htm EX-32.1 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 FTC Solar, Inc. (the "Company") on Form 10-Q for the quarterly period ended June 30, 2024, as filed with the Securities and Exchange Commission on the date hereof (the "Report"), I certify, pursuant to 18 U.S.C. § 1350, as adopted pursuant to § 906 of the Sarbanes-Oxley Act of 2002, that:

(1)
The Report fully complies with the requirements of section 13(a) or 15(d) of the Securities Exchange Act of 1934; and
(2)
The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.

 

Date: August 8, 2024

By:

/s/ Shaker Sadasivam

Shaker Sadasivam

Chairman of the Board of Directors of FTC Solar, Inc.

 

 


EX-32.2 5 ftci-ex32_2.htm EX-32.2 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 FTC Solar, Inc. (the "Company") on Form 10-Q for the quarterly period ended June 30, 2024, as filed with the Securities and Exchange Commission on the date hereof (the "Report"), I certify, pursuant to 18 U.S.C. § 1350, as adopted pursuant to § 906 of the Sarbanes-Oxley Act of 2002, that:

(1)
The Report fully complies with the requirements of section 13(a) or 15(d) of the Securities Exchange Act of 1934; and
(2)
The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.

 

Date: August 8, 2024

By:

/s/ Cathy Behnen

Cathy Behnen

Chief Financial Officer

 

 


GRAPHIC 6 img146221020_0.jpg GRAPHIC begin 644 img146221020_0.jpg M_]C_X 02D9)1@ ! 0$ P # #_VP!# ," @," @,# P,$ P,$!0@%!00$ M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_ MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04 M%!04%!04%!04%!04%!04%!04%!04%!3_P 1" "I A,# 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#]4Z*** "B MBB@ HJ&ZNX;&!YIY%BB499F. *\9\??'(J\ECX?P2IVM=L,C\!_6O.QF/H8& M'/5?R._"8&OC9\E&/SZ'JNO>*M+\-6[2ZA=I ,[F6# M2,/NS2'Y3^%>,:AJ-UJMP9[RXDN)2?O2-G'TJ;2M!U'7)"EA9376#@F-20/K M7P>(XAQ6)ER86-E^)]UA^'L+AH\^+E=_(M M4U,@W=]+.1R"QKT#0?@#JU^N_4;N.Q4C($?SG\:ZW3OV>](MU/VRZFNR>A'R MUSK+F.U?1 M"? ;PLJ_-#.Q]?.(J.7X!^&FSY:SIZ?O"<4_]6\9'5-7#_67"2T<78\2LO'G MB#3_ /4:K/&O=0>#77:)\>M;L&1+V&*\@'5APY_&NAOOV=8F,CVFJO'_ '8V M0'\,UP^M_"#Q+HRL_P!E%Y'V^SG&5Q@ MBO_E.=5\556'K0U[_P"9X.;9+0PM M+ZQ1GIV_R/8Z***^W/C HHHH **** "BBB@ HHHH **** "BBB@ HHHH *** M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH M **** "BBB@ HHHH **** "BBB@ HHHH **** "L?Q-XJT_PGILEY?3*BK]V M//S.>P H\5>)K/PGH\U_>2;54?*O=F[ 5\L^*O%%YXMU62]O'8@G]W%GA%]* M^!_ >H>-M06*!6AM%YEN6'R@>@]37TMX7\)Z?X3T M]+6QA5 !\SD?,Q]2:^/P668G.*GM\2[1_K8^OQF98;)X?5\-&\OR]3S;P9\! M;>W6.YUY_M$F,_9D^X/K[UZQIVE6FDPK%:6\<$:C&$4"K=%?H>%P&'P<>6E' MY]3\^Q6-KXR7-6E?\@HHHKT#A"BBB@ HHHH P?$'@?1?$T>R_L8Y3V8#!_,5 MI:3I-MHFGPV=I&(X(EVJHJY16,:-.,N>,4F:NK4E%06&=.7Q_B M?3$,R7$:R1L&1AD$5)7BW@+Q_+HLT5A>,9+1VPLA/W/_ *U>S1R+-&KH=RL, M@U^P<-<287B/"*M1=I+XEV9\WCL%4P-3DGMT8^BBBOL#S@HHHH **** "BBB M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "HYYDMH7ED8) M&@RS'L*DKR;X[^,&TS3(M(M92L]US(5/1.X/UKAQN*C@Z$JTNAV83#2Q=:-& M'4\U^*/CA_&.O.L3'^S[<[85S]X_WJH>!?!=UXVUI+:)2MK&09YL<*OI]:Y^ MWMY+J:."%2TDC!54>IKZI^'/A&/P?X;@M=O^DL-\S=]Q[5^;9;A9YSBW6K?" MM_\ (_1LRQ,,FPD:%#XGM_F;6B:+:>'].BL[.(10QC' Z^YJ_117ZI&,8148 MJR1^7RDY-RD[MA1115DA39)%AC:1V"HH+,QZ #J:=7SK^W-\=!\%/@GJ#60S#YF(]-N:N$'4DHKJ9U*BI0!_B=X5^)5O=3^%].J8J MHX\MDCZ U?6++0=-N-0U&ZCL[*W0R2SS-M5%'4DUYJO[57PC9@:7 M T^H:C<+;PQ*>6)//Z9JL/@E5I^TF[$XK,71J^RIJY^^G@SQ]X>^(FEOJ7AO M5K?6+%9#$;BV)*[AU&<4OC+QWX?^'FC_ -J^)-6MM&T[>L7VBZ?:NX]!]:PO M@A\+['X._"_0/"M@ORV-LJRR$?-)(>69O4Y/Z5^C[22U/T#;]JKX1JI)\?Z-@ M+S;6\A^[(IZ'Z&OQ=_9O^#]S\T\/Z3::;80+;65K$L,,,8PJ*!@ 5Y M^>9/A,90>$Q"YE)=>A>68^O-^V2Y;'S?GG6"_O+\&?3M%9'A?7(_$&C07:')888> MC=ZUZ_KW"XFGC*$,12=XR5T?F\X2IR<);H****ZB HHHH **** "BBB@ HHH MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ M HHHH **** "BBB@ HHHH **** "BBB@ HHHH BN;A+6WDFD.$C4LQ]A7R3X MRUZ7Q)XFOKZ1MRLY2/TV#I7T9\5=:;0_!-_,G^L=?+ ^O!KY853\JCJ3C\Z_ M/.*,0Y2AAH^I]_PQATE/$R]#U'X$^$UU;6I=5N$W06G$>>GF?_JKZ%KE_AOX M;3PSX4L[;"^!?"M]JMY)%9:;IML9&9CM1%4<#V["OF[_ ()Y_ I?A3\&X=;O MH%77O$6+J9\$$0XS$I!Z$ G->>_\%/OCJ?#GA&P^'6EW)2]UD>=?[""/LX.- MC>A)P:QKR>+Q"@MCHPT5@<*ZDMV?G]\;OBE??&7XHZ]XLO6<"\N&^SPNV[R8 M@<*@]N,_C7UE_P $PO@5_P )%XLU#XCZI;;K+2_]'T\2IP\QY,BG_9Y'XU\3 M^&?#=[XN\0:9H>FH7OM0N$MH0 3AF. 3CL*_=?X'?"VQ^#?POT+PK8Q+$MG MOG%>C3$9D;\6S7=CJBHTE2CU/-RZB\16=:?0R_VDOB_:?!'X0Z]XEN'_ -(B M@:.UC!PSRL-JX]<$Y_"OPTUC6+O7M6OM5U"4W%_>S-<3RGJSL_ M9>J6ZG+GZ]*>"IJA1=674G,*KQ-=48;+0_0C_@F=\"_^$'^&UQXYU*WV:MXA M'[@MPT=J#PI'^\,U]IU2T;2;?0=)L].M(UBMK6)88U4 *H '\JNUX%6HZLW M-GU-"DJ%-4UT(KFW6Z@>)QE6&"#7SMXHT=M!URYM-I$88M'GNOK7T=7F/QET MD&WM+Z./YD;;(_MV_6OQGQ+R6.892\7%>_2U]5V/JLCQ3H8E4WM(S/A#KC6N MI2Z;(W[J4;UR>A'85[#7S5HNH'2]8L[KM'("<=Z^D+:036\;CHR@UQ^%N;2Q MF62P=1WE2?X/8US_ ZI8A5(K21+1117[8?+A17E/B3]J;X5^$=:N=(U?QGI M]GJ-LVR:!V8LA]#@5SLW[='P-MY&C?X@Z<'7J-LG_P 36JI5'M%F#KTEO)?> M>\45X)_PW;\"O^BA:=_WS)_\34]G^V_\$+YF$/Q TUBHR>''\UH]E4_E8?6* M7\R^\]THKS/6?VD_AKX?\/Z1K>H>++*UTK5T,EC*PO^&R_@S_T M/FF_^/\ ^%)4YO:+&ZU-;R1[317BW_#9?P9_Z'S3?_'_ /"C_ALOX,_]#YIO M_C_^%/V53^5B]O2_F7WGM-%>+']LSX,@$GQ[IN/^!_X5ZEX4\6:3XXT"TUO0 M[V/4=+NUWP7,6=KKZC-3*$H_$K%QJ0F[1=S7HI"P4$DX ZFO,?'7[3/PQ^&M MR;?Q#XQTVPG'6/S/,(]OE!I1C*6D5<%?$-EK%NS%1Y,F&R/\ 9.#^E7*E M..LD1&M3F[1DF=E11161L%%%5WU"UC8J]S"K#J&< T 6**IIK%A(Q"WMN2/2 M5?\ &K2.LBAE8,IZ%3D4 .HHHH **BGNH+7!FFCBSTWL!_.J,?B32I9WA74+ M01L5>>-&'4,X!H FHIDF5.13Z "BBB@ HHJ*2ZAA;;)-&C>C, : ):*CCN(IL^7*DF/[K U)0 M 445%-=0V^/-FCCS_?8"@"6BJW]IV?\ S]P?]_%_QH_M.S_Y^X/^_B_XT 6: M*;'(DJ[D977U4Y%.H **** /'OVB;QH]+TRW#$"25MR^V*\B\'V*ZIXJTJU= M=TL3X*6J77CR$.N[RXF<>Q'>ORS'_P"T MYPH=FC].P'^RY,ZG=-GTO%&(8U1?NJ !3Z**_4DK*R/S$****8!39'6-&=F" MJHR6/ ]:=7C_P"U7XH\4^&_@WK2^#-%NM;\17T1M;>&U3<5###,?3"D_C51 MCS22(G+DBY=C\R?V\/CDWQE^-UY;6_$&MZ;X%\*WNJ7A6UTO3+9II-HX2-%S@#Z"OPL^.'Q1O/C+ M\4]?\67C[A>3D0!?NK"O"8';Y<5^FO\ P4.NO'^M_#JR\'>!?#>HZQ_:TFZ^ MNK ?ZF-.0A]FK\Y;']E'XNWUY;6O_"O]8A2:18S(8@ BD@%NO8<_A7/E\84T MZDWJ=.:2J5)*E!:(^DO^"8/P+_X23Q??_$?4K?=8:5NM=/+?=>8\.2/]D8Q7 MWC^T;\7K7X(_"/7/$\[H+F&(QV<3_P#+6=A\J_S_ "J_\"_A99?!KX7Z%X5L MU7-G HGE50#+*1\SGW)_E7Q;_P %&-*^*'Q8\8Z;X5\,^#M6U'PUI:">6XMX M\Q7,S<@CGJO2N1R^M8B\GH=\8/!X2T5[WZGYZ:QK%SKNJ7VJZA,\UW=RM/+) M(2X#W=Y>1@1K&IRRD^XR*_9C0]&M/#NCV6 MEV$0@LK.%8(8QT5%& /RKLQ^(CR*E \_+,-+G=:HMB]1117@GTX5SWCK2?[7 M\-WD6<%4W_ES70U5U*,2Z?9F=".)P5:E-73B_R-J,G"I&2Z,^9 MMWRYZ$V_"N1I/"L )R%.!]* M_FCPNJ2P^;U\+W3_ /NN((\^&A4['8TC?=-+2-]TU_51^?,_!W]HI0?C[\0 M>Y_M>;J?I7+^'? ?B/QC',^@>'=1UQ(3ME:PMFE$9/8XZ5U/[17_ "7SX@?] MAB;^E?;W_!))C_PC?C\<[?ML)]L[*^NJ570H_P#A7[Z45Y?]J3_E1[/]CT_Y MV?DC\?/AQXMNOV9_@=80^%]6EOK.QD6YM4M6,D)WGAQV-?.7_"H_'7_0E:[_ M . 3U^_3*&Z@'ZBF^4G]Q?RK.GF$J<;RV>H6DU MC>1'$EO<*4=/J#TJYH/A+6_%+3+HFC7VL-" 95LH6E,8/0MCI7KO[;P"_M4> M.\# \^/_ -!KZ+_X))J#XF^) (!_T>U_FU>S4K^SH*K8\"EAO:8CV%SXKE^$ M7CHQM_Q16N]#_P N3U^Q'['D,OA/]EOP<-:ADTE[.P+W"7B^6T0!))8'IQ7N M7E)_<7\J^,?^"FGQGNO GPOL/">DS>3=^()&CN6C;:\<"C/'L3Q7C3Q$L:XT MK6/H:>%AE\95N:^A\Y_M;?MZ>)/'GBF]T#P#J\VC>%[5C";RU;;+=D<,=W]T MU\?1PW>L:@(XTGU"]G8D(N9'=CUX]:GT#0KOQ)K6GZ-I<#7%_>S+;V\"=68G MH*_9/]F3]CWPA\!_#5M*]C%JWB6XB5[O4+R)696P"50'[N#QQZ5Z52=+ P2B MM3QZ5.MF-1RD]#\DK[X'_$#3]-&H7'@G6H[,KO\ --FV OJ?2N?\,^*=9\%Z MS'J>@ZI=Z-J=NV%GM9"C(1VQ7]!LD$M1H1%<+TVL?[X[^M?7S,%4D\ 'O#6G1:?IUJ@0+&HW.1_$Q[D^IK9UZ.6;1;U($?$KXQ:AJ6I2V6B7#V5E Q7SXCAY2.OX5P%GI>L>*+ MIGMX;J_E8X:5>*K>QMK^5K*,$S1S? M,BKZ>Q]*^C&5)HR&"NC=CR#56ST6QT^XEGM;6*WEE #M&@7./I2N!=KR[XD_ M&2'PU)-IFEJ)]44[9&8?)%_B:[/QQX@'ACPO?ZAP9(XSY:DXRQX%?),DD^H7 M;.Q::XG?//+,Q- %W6/$.J>([D27]Y-=2$_(I8X'L!35\.ZLT8E&FWIC/\81 ML?G7T+\-?A78>&]/AO+R!;G4I4!8R+D1YYP!ZUZ$(T5-@10G3;CB@#X^T;Q/ MJ_ANX5K"]FMBC9:/<=K8[,*^@OAG\5K?QHIL[I5M=4C7)7/RRCU7_"J'Q4^% M5GK.GW&IZ; MOJ42[V6,8$B@13W ^T* M^6OBY<3+\0]5"RR*,KPK$#I7TIX=U==>T.RU!!M%Q$'V^F>U?-'Q>_Y*)JOU M7^5) >L_L]R/)X+G+LSG[6_+'/I7I]>7?L\_\B3/_P!?6++L:WES&/]G.5_2OI MGX:>)U\5>$[2Y+;KB,>5-_O#_(I,#JJ^??VB99/^$HTZ,.PC^RD[02!G=7T% M7SU^T3_R-FF_]>A_]"H0'F5K8W=^Y2UAN+EQU6+U>U7=-IU]$OJZ, M*]'_ &>?^1COO^N5>_R1),NV1%=?1AD4P/D?0_'6O>'I(_L>HS+'&<^0[90_ M45]!_#+XD0^.;%HY@L.IPC][$.A'J/:N*^/7@NRL[&WUFRMTMY _ES>6 H8' MIQ7!?"?4I=-\?:4(GV+<2>3)[J>U 'U51114@?.W[0#%O&=LA/RBU! _&H?@ M+$6\<-(.BV[#%7OVA+5D\26=SCAH=F?QS67\#;H6_CI03A9(&7'O7Y;/W<\; ME_,?ID?>R*T?Y3Z5HHHK]2/S,**** "DKPS]L+]H)/V??A)>ZK:3(OB&\(MM M,C90^)3T=E[J,+;_X2Z#?>-[N.\\0WD(N9FCC\L*K@,J;?4 UX!^WY M^UIK/P)M]#T#P;=PP>)KTFXF::(2*EN./SS6$*4JD_9QW.BI6C2I^UEL?8E% M?CYH?[?7Q^\2:UI^D:=K-A/J%].EO!']B'S.QP!7ZS>!;;5[3PCI,>OW0O=9 M^SHUW,J; 9" 6 'L>/PK2OAY8>W,S'#8J&*OR+8WJ2OSU_;6_;K\4_#WXG#P MC\/+VUM_[,7&HW$L0DS,?^6>.V.*\Y^ O[8'Q_\ C-\6-!\+66M61CN9PUU* MNGJPAA'WG(]*UC@ZCI^T>B,I8^DJOLEJS]4*6F0JZQ()&WR!0&8#&3W.*?7 M>F%%%% !4')03D"4@5X]>2_:+NYE_OR,WYFO;/A9;^3X6@; 'F?-Q7\L M>'B]MQ/5K0^&TOQ/T#.O?P<\$^*-*\0:7IFI1ZE MILZW-N\E^S*''0D8YKRI8G#.+2@>U#!XR,DW4T/I8=!2T45XI]$?B7^V\?\ MC*CQW_UWC_\ 0:^B_P#@DC_R,_Q(_P"O>U_F:^=/VWO^3J/'?_7>/_T&OIS_ M ()+1J+CQZ^T;RL +=R,FOI<1_N:^1\AA?\ ?WZL_1BORR_X*J37C?&3P[$Z MM]@&EAD;MYF\Y_2OU-KX4_X*G_"^ZUSP#H?C*QBWIH\Y2^;N(F&%('^\:\C! M24:\6SW,[G&<*/>OV^K^?;P1XM MO/ /C+1?$NG@&]TJZ2ZA#="5/^%?N!\!?CIX>^/'@/3]>T:\B:Y>)?M=EN'F MV\G0JR]N:[=D]6/*Z;W/2J**\S^*G[1G@'X-7%E;>)]=AM+R[D6 M..UC(>09.-S+GA?>O&C%R=DCZ&4HP5Y.QZ92$!@0>0:KZ;J5KK%A!>V-Q'=6 MDZ"2*:)MRNIZ$&K-25Z'@WQ$^"=\FI3:AH2+<6\S%FMFZMU&%AG.5KUKP/\2$*L@.8W M8]AZ5!\2_A#HTNE76J6)73+B%3(W.(V'ICM7@,4SP2QRQ'$B,&4CU!I@?0W[ M0BLW@VW*M@"Z4GWB/@N.&3Q9I(G8+']H0Y/KGBOHGQGHLOBCX:M%Y>^\^ MRI*@_P!L*#_C7S!;7$EES T(#[5HKF/ 'C2V\::%!]=/4@-D4,C!AE2,'-?&6KA%U6_"?<\^3'_ 'T:^EOBIX\@\)Z# M/%%(K:E.NR.('YE!_B_"OF.*&6^NDB4%YIWV\#J2>M4@/ISX,-,? =EYR[?F M8)[KVKP_XN_\E$U7ZK_*OI/PII)T+P[I]@V-\,*JQ'+KJ97+6MMF&$'L!U_6O7O@- MX=.E^%6OI8BEQ>.3N/=!]T_SKYS))Y;+,>I]36G;^*M:M84A@U6^AA086.-R M%4>@%4!ZI^T)X7,OVB? M^1LTW_KT/_H5>V^$=?B\3>'[/4(V#^:@WX[./O#\Z\2_:)_Y&S3?^O0_^A4@ M,SX-^*M,\*ZW(O#>FR7UW;1FWCY&RA@P1:2N8)5$AE/+2$CJ: .@HHHJ0/&/VBK/\ T72K ME5_Y:,K-[8KS#P#??V;XRTF5FV)YP5V/0 U[[\9M+;4_ MYYL#7O">G7@ZO$ 1Z8X_I6_7Z91J*K3C4757/S:I!TYN#W04C,%4DG '))I:^ M=?VYOCM_PI/X*WS64ZQZ]K(:RL4[G(P[ ]BJG-=%.#J245U.>I45*#G+9'Y[ M_M[?'(_&/XV75G93^9H/A_=96V#PTG_+4GU^8<5@_L7?!T_&7X\:+9W$3R:1 MICB_O'0? M);^W5-:\1G[1O9<.EOGY$/XY-?2XB2PN'Y([GQ^%C+&8KGEMN?4GB+7K#P?X M=O\ 5]0E6TT[3X&FED/"HBC-?A7\=OBG>?&;XK:_XKNV^2ZG9;>,,2L<2G"[ M<] 0 :_0/_@IS\=V\*>";+X?Z5Z?UK[_ /VD_C':? WX1ZYXEF:,WD<)CLH) M#CSIFX51[]3^%3_L[?".U^"/PET/PM!&J3P1"2[9.CW# %V_.OSQ_P""EWQS M;QQ\3+;P+I\Y.DZ ]RJME);AN0P_P!T<5QZXS$^1Z&F7X3S?YGQ]K>M7GB+ M6+[5]1G:XO[V5IYYG/+,3GFOTQ_X)A_ H>&O!=[\1-3MPNI:P?)LMX(>*W'W MO^^C@U^?WP+^%=Y\:/BIH'A.SC+K=S!KGG&V!>9#GL<5^ZWAKP_9^%/#^G:/ M81^796,"6\2_[*@ 9]^*[,PK?E5!U)NM+H:=%%%?/'U84444 %8OC# M4(]/\.WTDAP#&5'U(Q6U7G'QDU0PZ;;62$'SG^<>PY%?+<3Y@LLRBOB7TBU] M^AW8&B\1B(4UW/(U'R =SQ7T+X(T]]-\,V,$GWUC&?YUX1HEC_:6L6=K@D2R M!3CM7TC;QB*"-!T50*_$_"7 N4\1C9+31+]3ZKB2JO^/I&7$!AL#4HXCVLMM3TFBBBO'/?"BBB@#\2OVWR/ M^&J/'?/_ "WC_P#0:^GO^"2Q_>>/._RP?S-?1OQ&_8/^&'Q2\;:GXIUNWU%M M4U!@\[0W6U20,<#'%=C\#?V9?!G[/;:F?"<5W&=1VB?[3-YF=O3''%>Q6Q=. MIAU26YX-# U:>*=9[:GK-8OC/PEI_COPMJ>@:I$LUC?P-!(K '&1C(SW'4?2 MMJBO(3L[H]UI-69^)'[2W[*?B?\ 9S\53PRVT^I^&)6+6.K0QEE*_P!U\=&' M?M7EO@[Q[K_@'4AJ/AK6;G2KH'.^VD(4GW&<'\:_?O6M#T_Q%IL^GZG9PW]E M.A26"= R.IZ@@U\T>-?^"<'P>\8:A->)87VBO(=PBTVX\N)?HN.E>Y2S"+CR MUD?-ULKFI.KIH",'9$J,1[DJ7_B+4C/?W M-SJNH2GAIF:61L]E!R?P%?I[I_\ P2I^'D=U<->ZWJT]NQ_ MIY=_P3?\#_$WPG\/[JX\77,D7AB] ETG3+O)GBSU?GHI&,"OKG7);N'1[Q[" M+S[Q8SY4><;F["KRJ%4 # ' I:\&I/VDG*Q]+1IJC!03O8^/+[^VO#^L327 M/VFQO?,+NV2/FSW/0UTFG_&SQ19JRR7J7>>AD4VD-RGI M(H-<]=?"GPO=8_XE<46/^>8Q47-CYXU_XD:_XDM7M;[4-]JYR85 K0^&?@& MZ\7:Y \D+QZ;"V^65A@-CHH^M>]6?PN\,6:@#28)2/XI!N-=-:VL-E"D,$2P MQ*,*B# %%P'1Q+#$L:C"*H4#V%>&_%SX3W"WTNLZ+;^;%)EY[>,[ 5[K1 M2 ^,M/U2^T&Z\ZUGELI_Q7\Q70-\6O%;P^6=98KT^Z,_G7TGJ'@W0]6E,EWI M=M/(>K,@S65-\)_"\TJO_9<:;?X4X!IW ^79)KO6+HR.TU[.QY;ES7MGP?\ MA3/IERNM:S JS;/X5ZAI?A72-#8M8:=;VK$8+1H :U:+@%?*WQ> M/_%Q-5^J_P J^J:R+WPGHVHW3W%UIMO/._WI'0$F@#Y5T3QCK/AN%XM-OWM8 MV.YE49&?6M9?BYXN1<#6&Q[QJ:^CO^$%\/\ _0(M/^_8H_X07P__ - BT_[] MB@#Y[TOXL^+;C5+*%]79DDG1&'EKR"P!%:'QT\4#6O%0L(I ]K8C'R_WS]X5 M[K'X)T&.1732;574[@PC&01WITW@O0KB9Y9=*M9))#N9FC!)/K0!Y-\ _!J7 M1NM;O(5DC_U4"2+D'U8?RKVC^R+'_GRM_P#OTO\ A4EC8V^FVJ6]K"D$"<+' M&, 5/0!4_LBQ_P"?*W_[]+_A7SK\;/"/_".^)C>P1[;*^^88&%5^ZBOI6J6I MZ-8ZS&D=]:Q72(_\ 7*O?[BWCNH9(94#QR*596&00:HZ;X=TS1Y&DL;&&U=A@ MM&N":TJ /EKXH^ 9/!>M$Q(3IEP2T+XX7_9-=M\"_B#M;_A'K^7CK:R,?_'* M]DU'2K/5X1#>VT=S%G.V1VB M7UI-;R#,O!PFM8]=MH_ MWL7R3[1U7L3]*^3XBP3Q.']K!:Q/J>'\:L+B?9RVEI\RC\ O%HAFGT.YDP'_ M 'D!8]3W45[E7QGI6I2Z1J-M>V[E987#@KUQW%?6/A#Q1:^+M%AOK9@=PPZ= MU;N#6'#F8*M1^KS?O1_(WXBP#H5OK$%[LOS-IF"J23@#DFOQP_;\^,K?%;X\ M:A8VLS-HWAXFQA3=E&E'WI%^O3\*_2C]KSXP)\%O@;K^LQS)%JD\1M;!7_CE M;C'Y9K\1)KAYY))I':661B[$G+,Q.?QZU^G9;1NW5?0_+,VKV2HQZGK'[+7P M9F^.GQHT3P^8V;3(I%N]1=>J0*>3^>*_;+4K_3O OA2XNYMMMIFEVK2,%PH5 M$7.!^ KYE_X)Z_LZO\(?AC_PD.L6X3Q%X@"W#!N6AAQ\B@^A&"17'?\ !3KX M[+X5\#6GP]TRY5=4UO\ >W@4D/';@\$'W88K+$2>+Q"A'9&V%@L#A75EN_Z1 M^?OQZ^*UY\:OBOKWBNZD9XKF8QV@88VVZG$:X]<5]*?\$S?@7_PFWQ$N_'NI M6^_2]!_=VA89#W)X((/4!3FOC?1](N_$&KV.DZ=";F^O9E@@A3J[,<8%?N;^ MSE\(K/X)_"/0/#-LBFXA@5[J;&&EE;EBWN,X_"N_&U%1I*E'J>;E]%XBNZL] MD6?C_P#%6U^"_P )]>\4W$BQR6L!6V#=&G8$1K^)K\*M.1PM-(D48W22-M4>I-?S1XG9^\35ADN%=]?>MW['W&08-1B\74^7^9W MWPAT?[5JD]^XRD(V $=SWKV*L#P7H"^']#@M\?O<;G/N:WZ_8.#LG_L7**5" M2M)ZOU9\WF6)^M8F51;;(****^W/+"BBB@ HHHH **** "BBB@ HHHH **** M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH M**** "BBB@ HHHH **** "BBB@ JO?V,.I6JYZ5:^&OCJ7P7K2ER6L)R%F3/3_:%?0?C MCP9:>--'>UG7;,HS#*!RC5\LZUH]SH6I3V%VFV:)BO3AAZCVK\LS+!U;K'4OW++CQ'XGL+Z M_P!4F 4O]K8*JC^%1C@5[C17K1E*#O%V/,E"-16DKH\#\"_L._"7X=^*K#Q% MH^AS)J=BXEMY)K@NJ,.C8(ZU[Y111*W6IZA,T\\GVQ@-Q]!C@>U=%\'_P!E'X=? W7[G6O">ES6NH7$/V=Y M9IS)\FE>P457M9M&^)/$UWXFO#-<-B-2?+B'117Y;QE MQEA\AP\J%"7-7DM%V\V>]EF63QDU*2M!%35=4GUF^EO+I]TCG..P'I7;_"_P M?)>W2:K=)B!/]4K#[Q]:PO!/@V?Q1?*[*4L8VR[G^+V%>[V=I'8V\<,2A(T& M !7YCP'PK7S7%?VUF:;5[J_5]_0]W.,PA0I_5,/\_(EZ4M%%?U ?"!1110 4 M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11 M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% M !7(>/OAU8^-K%@RK!?*/W=PHY'L?:NOHK"M0IXB#IU%=,VHUJE":J4W9H^5 ME^%^N+XEAT>>U=/,?!N%&4V^N:^F/#^B6_AW2;>PMEVQ0KCW)]:T-HSG'-1W M,PMK>25ONHI8UY.!RVAE:G4B_P#@(]/'9G6S%0C4Z?BR&ZU:SL9DBN+F.&1_ MNJ[ 9JRDBR#*G(KYW\6:_+XBUN:Y?*(AVQ*>P'>I-'\::OH;#R+II(^Z2?-7 MY*_%/"TD_9IV4EN_D>G_J_5G1C.$M7T/H:BO+M+^,L8XO[1D]XOFKH MK+XH:'> EI_L_P#UU&*_0L'QED>-2Y,3%-]'N>-5RW%T?BILZ^BL)?&NC,H( MOX2#T^:H6^(&A+G_ (F,/YU[4LZRZ*NZ\?O.3ZO6>T']QT=%<1?_ !:T:S8H MADN#V:-19?%MUU-KI'5GH4;>).8YLWA,HI./-I?=_\ /IL M/D5'#KVF*E>WW#-0U"YU2X:>\F::0_Q,>E=#X0\"WGB2XCDD1H;#.3(>"P]! M77>%OA*EO(EQJK"9QR(5^Z#7I$-O';QK'&BHBC 51@"N[AKP[Q.,K+,,\;[\ MKW?J8X[.H4X^QP:^?^1#INFP:39QVUM&L<:# "U:HHK^DJ5*%&"ITU:*V1\1 M*3D[L****U$%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 % M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44 M44 %%%% !1110 4444 %%%% !2,H8$$9%+10!S6O> =*U[UE<+.@^[&P^;\Z]CHKX;-N#,GSAN=:DE)]5HSU,-F>*PND):=CY MSO\ PKJVE\7%C(O^[\W\JS)+>1/OP.O^\I%?2-]7F7C#_72_[U?SKQ-PA@\D M;>'G)^I]?@=Z#\'X8]LNISF9P?]7'PN/0UW^FZ M/::3 L5K D2+T"BKM%?T;E/#F69+'EPE))]^K/C\1C*^*=ZLKA1117TQQ!11 M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 +%%%% !1110!__]D! end EX-101.SCH 7 ftci-20240630.xsd XBRL TAXONOMY EXTENSION SCHEMA WITH EMBEDDED LINKBASES DOCUMENT 100000 - Document - Document and Entity Information link:presentationLink link:calculationLink link:definitionLink 100010 - Statement - Condensed Consolidated Balance Sheets (Unaudited) link:presentationLink link:calculationLink link:definitionLink 100020 - Disclosure - Leases - Summary of Future Remaining Lease Payments Obligations (Details) 2 link:presentationLink link:calculationLink link:definitionLink 100030 - Statement - Condensed Consolidated Balance Sheets (Parenthetical) (Unaudited) link:presentationLink link:calculationLink link:definitionLink 100040 - Statement - Condensed Consolidated Statements of Comprehensive Loss (Unaudited) link:presentationLink link:calculationLink link:definitionLink 100050 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Deficit) (Unaudited) link:presentationLink link:calculationLink link:definitionLink 100060 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited) link:presentationLink link:calculationLink link:definitionLink 995420 - Disclosure - Description of business link:presentationLink link:calculationLink link:definitionLink 995430 - Disclosure - Summary of significant accounting policies link:presentationLink link:calculationLink link:definitionLink 995440 - Disclosure - Equity method investment link:presentationLink link:calculationLink link:definitionLink 995450 - Disclosure - ATM Program link:presentationLink link:calculationLink link:definitionLink 995460 - Disclosure - Accounts receivable, net link:presentationLink link:calculationLink link:definitionLink 995470 - Disclosure - Inventories, net link:presentationLink link:calculationLink link:definitionLink 995480 - Disclosure - Revenue link:presentationLink link:calculationLink link:definitionLink 995490 - Disclosure - Prepaid and other current assets link:presentationLink link:calculationLink link:definitionLink 995500 - Disclosure - Leases link:presentationLink link:calculationLink link:definitionLink 995510 - Disclosure - Property and equipment, net link:presentationLink link:calculationLink link:definitionLink 995520 - Disclosure - Intangible assets, net and goodwill link:presentationLink link:calculationLink link:definitionLink 995530 - Disclosure - Debt link:presentationLink link:calculationLink link:definitionLink 995540 - Disclosure - Accrued Expenses and Other Current Liabilities link:presentationLink link:calculationLink link:definitionLink 995550 - Disclosure - Stockholders' Equity link:presentationLink link:calculationLink link:definitionLink 995560 - Disclosure - Income Taxes link:presentationLink link:calculationLink link:definitionLink 995570 - Disclosure - Commitments and Contingencies link:presentationLink link:calculationLink link:definitionLink 995580 - Disclosure - Stock-Based Compensation link:presentationLink link:calculationLink link:definitionLink 995590 - Disclosure - Related Party Transactions link:presentationLink link:calculationLink link:definitionLink 995600 - Disclosure - Net Loss Per Share link:presentationLink link:calculationLink link:definitionLink 995610 - Disclosure - Subsequent Events link:presentationLink link:calculationLink link:definitionLink 995620 - Disclosure - Summary of significant accounting policies (Policies) link:presentationLink link:calculationLink link:definitionLink 995630 - Disclosure - Summary of significant accounting policies (Tables) link:presentationLink link:calculationLink link:definitionLink 995640 - Disclosure - Reduction in force (Tables) link:presentationLink link:calculationLink link:definitionLink 995650 - Disclosure - Acquisition (Tables) link:presentationLink link:calculationLink link:definitionLink 995660 - Disclosure - Accounts receivable, net (Tables) link:presentationLink link:calculationLink link:definitionLink 995670 - Disclosure - Inventories, net (Tables) link:presentationLink link:calculationLink link:definitionLink 995680 - Disclosure - Prepaid and other current assets (Tables) link:presentationLink link:calculationLink link:definitionLink 995690 - Disclosure - Leases (Tables) link:presentationLink link:calculationLink link:definitionLink 995700 - Disclosure - Property and equipment, net (Tables) link:presentationLink link:calculationLink link:definitionLink 995710 - Disclosure - Intangible assets, net and goodwill (Tables) link:presentationLink link:calculationLink link:definitionLink 995720 - Disclosure - Accrued Expenses and Other Current Liabilities (Tables) link:presentationLink link:calculationLink link:definitionLink 995730 - Disclosure - Sales of Equity Method Investments (Tables) link:presentationLink link:calculationLink link:definitionLink 995740 - Disclosure - Stock-based Compensation (Tables) link:presentationLink link:calculationLink link:definitionLink 995750 - Disclosure - Net Loss Per Share (Tables) link:presentationLink link:calculationLink link:definitionLink 995760 - Disclosure - Description of Business - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 995770 - Disclosure - Summary of Significant Accounting Policies - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 995780 - Disclosure - Equity method investment - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 995790 - Disclosure - ATM Program - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 995800 - Disclosure - Accounts receivable, net - Schedule of Accounts Receivable, Net (Details) link:presentationLink link:calculationLink link:definitionLink 995810 - Disclosure - Accounts Receivable Allowance For Credit Loss - Details (Details) link:presentationLink link:calculationLink link:definitionLink 995820 - Disclosure - Accounts receivable, net - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 995830 - Disclosure - Accounts receivable, net - Schedule of Accounts Receivable Allowance for Credit Loss (Details) link:presentationLink link:calculationLink link:definitionLink 995840 - Disclosure - Inventories, net - Schedule of inventories (Details) link:presentationLink link:calculationLink link:definitionLink 995850 - Disclosure - Prepaid and other current assets - Schedule of Prepaid and other current assets (Details) link:presentationLink link:calculationLink link:definitionLink 995860 - Disclosure - Prepaid and other current assets (Additional Information) (Details) link:presentationLink link:calculationLink link:definitionLink 995870 - Disclosure - Leases - Summary of Lease Expense (Details) link:presentationLink link:calculationLink link:definitionLink 995880 - Disclosure - Leases - Summary of Future Remaining Lease Payments Obligations (Details) link:presentationLink link:calculationLink link:definitionLink 995890 - Disclosure - Property and equipment, net - Schedule of property and equipment (Details) link:presentationLink link:calculationLink link:definitionLink 995900 - Disclosure - Property and equipment, net - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 995910 - Disclosure - Intangible assets, net and goodwill - Summary of intangible assets (Details) link:presentationLink link:calculationLink link:definitionLink 995920 - Disclosure - Intangible assets, net and goodwill - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 995930 - Disclosure - Intangible assets, net and goodwill - Summary of goodwill activity (Details) link:presentationLink link:calculationLink link:definitionLink 995940 - Disclosure - Debt - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 995950 - Disclosure - Accrued expenses and other current liabilities - Schedule of Accrued Expenses and Other Current Liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 995960 - Disclosure - Accrued expenses and other current liabilities (Additional Information) (Details) link:presentationLink link:calculationLink link:definitionLink 995970 - Disclosure - Accrued expenses and other current liabilities - Schedule of warranty accruals (Details) link:presentationLink link:calculationLink link:definitionLink 995980 - Disclosure - Income Taxes - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 995990 - Disclosure - Commitments and Contingencies - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 996000 - Disclosure - Commitments and Contingencies - Summary of Changes in Product Warranty Reserves (Details) link:presentationLink link:calculationLink link:definitionLink 996010 - Disclosure - Stock-Based Compensation - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 996020 - Disclosure - Stock-Based Compensation - Stock compensation expense (Details) link:presentationLink link:calculationLink link:definitionLink 996030 - Disclosure - Related party transactions - Additional Information (Detail) link:presentationLink link:calculationLink link:definitionLink 996040 - Disclosure - Net Loss Per Share (Additional Information) (Details) link:presentationLink link:calculationLink link:definitionLink 996050 - Disclosure - Net Loss Per Share - Schedule of Computation of Basic and Diluted Loss Per Share (Details) link:presentationLink link:calculationLink link:definitionLink 996060 - Disclosure - Net Loss Per Share - Schedule of Antidilutive Securities Excluded from Computation of Diluted Net Income Per Share (Details) link:presentationLink link:calculationLink link:definitionLink 996070 - Disclosure - Subsequent Events (Additional Information) (Details) link:presentationLink link:calculationLink link:definitionLink Statement [Line Items] Statement [Line Items] Increase (Decrease) in Accounts Receivable Accounts receivable Purchase of property and equipment included in account payable. Purchase Of Property And Equipment Included In Account Payable Purchases of property and equipment included in ending accounts payable and accruals Increase (Decrease) in Other Operating Assets and Liabilities, Net Increase (Decrease) in Other Operating Assets and Liabilities, Net, Total Lease payments and other, net Entity Address, Postal Zip Code Entity Address, Postal Zip Code Net profit attributable Net profit attributable Net Profit Attributable Off-Balance-Sheet, Credit Loss, Liability, Credit Loss Expense (Reversal) Credit loss provisions Credit loss provision Unaudited interim financial information. Unaudited Interim Financial Information Policy [Text Block] Unaudited Interim Financial Information Entity Incorporation, State or Country Code Entity Incorporation, State or Country Code Shares issued for legal settlement Shares issued for legal settlement Shares issued for legal settlement, shares Revenues [Abstract] Revenue: Subsidiary or Equity Method Investee, Sale of Stock by Subsidiary or Equity Investee [Table] Loss Contingency, Damages Sought, Value Damages sought value Impact of adoption of ASU 2016-13, effective January 1, 2023 Impact Of Adoption Impact of adoption. Description of business. Description Of Business [Table] Description Of Business [Table] Stockholders' Equity, Reverse Stock Split Stock split Stock Issued During Period, Value, Restricted Stock Award, Gross Shares issued during the period for vested restricted stock awards Shares, Outstanding Ending balance (in shares) Beginning balance (in shares) Other Noncash Income (Expense) Other Noncash Income (Expense), Total Lease expense and other Reclassifications [Text Block] Reclassifications Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items] Vendor deposits Vendor Deposits Vendor deposits Lessee, Operating Leases [Text Block] Leases Commitments and Contingencies Disclosure [Text Block] Commitments and Contingencies Schedule of Restructuring and Related Costs [Table] Stock issued for accrued legal settlement Stock issued for accrued legal settlement Product and Service [Axis] Product and Service Finite-Lived Intangible Assets by Major Class [Axis] Investment, Name [Domain] Investment, Name Collaborative Arrangement and Arrangement Other than Collaborative [Domain] Collaborative Arrangement and Arrangement Other than Collaborative Stock Repurchased During Period, Shares Repurchase of treasury stock Repurchase of treasury stock Related Party Transaction [Line Items] South Lake One LLC [Member] South Lake One LLC [Member] South Lake One LLC [Member] Prepaid Taxes Prepaid taxes Product Warranty Expense Warranty and remediation provisions Equity [Text Block] Common Stock Retire Aggregate Shares of Common Stock. Retire Aggregate Shares of Common Stock Retire aggregate shares of common stock Title of Individual [Axis] Tools, Dies and Molds [Member] Tooling [Member] Accounts Receivable, Allowance for Credit Loss, Recovery Additions charged to earnings during the period Revenue from Contract with Customer [Text Block] Revenue Sale of Stock [Domain] Sale of Stock Taihua New Energy [Member] Taihua New Energy [Member] Finite-Lived Intangible Asset, Useful Life Intangible assets, estimated useful life Reduction in workforce Reduction in workforce Reduction in workforce Inventory, Policy [Policy Text Block] Inventories, net Entity Central Index Key Entity Central Index Key Increase (Decrease) in Operating Capital [Abstract] Impact on cash from changes in operating assets and liabilities: Accrued Bonuses Common Stock, Shares, Issued Common stock, shares issued Common Stock, Shares, Issued, Total Common stock issued for notes purchased Retainage provisions included in receivables. Retainage Provisions Included in Receivables Retainage provisions included in receivables Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table] Increase (Decrease) in Prepaid Expense and Other Assets Increase (Decrease) in Prepaid Expense and Other Assets, Total Prepaid and other current assets Business Description and Basis of Presentation [Text Block] Description of business Preferred Stock [Member] Preferred Stock Major Customers [Member] Major Customers [Member] Income Statement [Abstract] Statement of operations Entity Address, State or Province Entity Address, State or Province Additional Interest Rate Above Prime Additional Interest Rate Above Prime Additional Interest Rate Above Prime Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest Pre-tax income (loss) from company's operations Loss before income taxes Loss before income taxes Revision of Prior Period [Axis] Workforce Activity [Abstract] Workforce Activity [Abstract] Common Stock, Capital Shares Reserved for Future Issuance Value Common Stock, Capital Shares Reserved for Future Issuance Value Common stock, reserved for future issuance, value Customer [Axis] HX Tracker [Member] HX Tracker [Member] HX Tracker Available for customer pursuant Available For Customer Pursuant Available For Customer Pursuant Equity Method Investments and Joint Ventures Disclosure [Text Block] Equity method investment Proceeds from Sale of Equity Method Investments Proceeds from disposal of investment in unconsolidated subsidiary Amortization of Debt Issuance Costs Amortization of debt issue cost Amortization of debt issue costs Treasury Stock, Common, Shares Treasury Stock, Shares Cover [Abstract] Earnings Per Share, Basic Basic Earnings Per Share, Basic, Total Basic loss per share Income Tax Contingency [Line Items] Income Tax Contingency [Table] Standard Product Warranty Accrual, Decrease for Payments Settlements made during the period Settlements made during the period Operating Expenses [Abstract] Operating expenses Requirement to maintain minimum liquidity limit each quarter Requirement to maintain minimum liquidity limit each quarter Stock Issued During Period, Shares, Acquisitions Shares issued for HX Tracker acquisition, Shares Warrants recoverable from manufacturer. Warrants Recoverable From Manufacturer Warranty recoverable from manufacturer Warranty recoverable from manufacturer Write-offs of accounts Write-offs of accounts Accounts Receivable, Allowance for Credit Loss, Writeoff Contract with Customer, Liability, Current Deferred revenue Selling and Marketing Expense [Member] Selling and marketing [Member] Debt Instrument, Unused Borrowing Capacity, Amount Unused borrowing capacity Share-Based Payment Arrangement, Expense Stock based compensation expense Total stock compensation expense Short term non-interest-bearing customer advance Short Term Non-Interest-Bearing Customer Advance Short term non-Interest-Bearing customer advance. Receivables, Net, Current Total Surety collateral. Surety Collateral Surety collateral Retained Earnings (Accumulated Deficit) Retained Earnings (Accumulated Deficit), Ending Balance Retained Earnings (Accumulated Deficit), Beginning Balance Accumulated deficit Retained Earnings (Accumulated Deficit), Total Standard Product Warranty, Policy [Policy Text Block] Warranty Assets, Current [Abstract] Current assets Inventory Impairment, Policy [Policy Text Block] Impairment Outstanding surety and performance bonds Malpractice Loss Contingency, Letters of Credit and Surety Bonds Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Table Text Block] Schedule of prepaid and other current assets Net Cash Provided by (Used in) Operating Activities Net cash used in operating activities Net cash used in operating activities Net cash used in operating activities Product and Service [Domain] Product and Service Accumulated Other Comprehensive Income (Loss), Net of Tax Accumulated other comprehensive loss Accumulated Other Comprehensive Income (Loss), Net of Tax, Total Debt Instrument [Line Items] Debt Instrument [Line Items] Property, Plant and Equipment, Net Property, Plant and Equipment, Net, Ending Balance Property, Plant and Equipment, Net, Beginning Balance Property and equipment, net Property and equipment, net Lessee, Operating Lease, Liability, to be Paid, Year Four 2027 Net Cash Provided by (Used in) Operating Activities [Abstract] Cash flows from operating activities Common Stock, Par or Stated Value Per Share Common stock, par value Stock Options [Member] Short-term Interest Bearing Loan & Customer dvance Short-term Interest Bearing Loan & Customer dvance Taxes Payable, Current Income taxes payable Taxes Payable, Current, Total Accounts Receivable [Policy Text Block] Accounts receivable, net Statement of Cash Flows [Abstract] Counterparty Name [Axis] Counterparty Name Related party accruals Related party accruals Related party accrued cost of revenue Antidilutive Securities, Name [Domain] Equity Method Investments Equity method investment Vendor Deposits With Related Party Vendor Deposits With Related Party Vendor deposits with related party Increase (Decrease) in Other Noncurrent Liabilities Other non-current liabilities Translation and other Translation and other Translation and other Restricted Stock [Member] RSUs Restricted Stock Awards [Member] Equity Components [Axis] Equity Components Entity Address, Address Line One Entity Address, Address Line One Schedule of Earnings Per Share, Basic and Diluted [Table Text Block] Schedule of Computation of Basic and Diluted Income (Loss) Per Share Settlement [Member] Settlement [Member] Settlement [Member] Property, Plant and Equipment [Line Items] Subsequent Event Type [Axis] Product Warranties Disclosures [Abstract] Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table Text Block] Schedule of Antidilutive Securities Excluded from Computation of Diluted Net Income Per Share Assessment Type [Axis] Assessment Type [Axis] Standard Product Warranty Accrual Balance at end 's period Balance at beginning of period Balance at end of period Balance at end of period ATM Program [Member] ATM Program [Member] Amendment Flag Amendment Flag Operating Lease, Liability, Noncurrent Operating lease liability, net of current portion Other Current Liabilities [Member] Accrued Expenses and Other Current Liabilities [Member] SunEdison Utility Holdings Inc. member. Sun Edison Utility Holdings Inc [Member] SunEdison Utility Holdings, Inc. [Member] CBP Assessments [Member] CBP Assessments [Member] CBP Assessments [Member] Operating Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration] Operating Lease, Liability, Current, Statement of Financial Position [Extensible List] Net loss Net loss Ayna Ayna [Member] Ayna [Member] Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period Issuance of common stock upon exercise of stock options, shares Share-Based Compensation Arrangement by Share-Based Payment Award, Shares Issued in Period Shares of Common stock purchased Variable Rate [Domain] Research and Development Expense [Member] Research and development [Member] Customer [Domain] Asset purchase agreement. Asset Purchase Agreement [Member] Asset Purchase Agreement [Member] Equity Component [Domain] Equity Component Statistical Measurement [Domain] Statistical Measurement Expense charge to establish an inventory obsolesce reserve. Provision For Inventory Obsolescence Provision (credit) for obsolete and slow-moving inventory PLC Barclays Bank [Member] PLC Barclays Bank [Member] Barclays Bank PLC [Member] General and Administrative Expense General and administrative General and Administrative Expense, Total General and administrative expense Capital contributions Capital contributions Capital Contribution Other Nonoperating Income (Expense) Other income (expense), net Other Nonoperating Income (Expense), Total Other income (expense), net Liability for Unpaid Claims and Claims Adjustment Expense, Net Liability for Unpaid Claims and Claims Adjustment Expense, Net, Ending Balance Liability for Unpaid Claims and Claims Adjustment Expense, Net, Beginning Balance Liability For Unpaid Claims And Claims Adjustment Expense Description of Tariffs classification Description of Tariffs Classification Description of tariffs classification Increase (Decrease) in Other Accounts Payable and Accrued Liabilities Accruals and other current liabilities Potential Future Capital Contributions Potential Future Capital Contributions Potential Future Capital Contributions Standard Product Warranty Accrual, Increase (Decrease) for Preexisting Warranties Changes in liability for pre-existing warranties Preferred Stock, Shares Issued Preferred stock, shares issued Preferred Stock, Shares Issued, Total Proceeds from Stock Options Exercised Proceeds from stock option exercises Proceeds from stock option exercises Assessment Type [Domain] Assessment Type [Domain] Payables and Accruals [Abstract] Accrued warranty balance reported in: Restricted Cash, Current Restricted cash Prepaid Expense and Other Assets, Current Prepaid and other current assets Total Prepaid Expenses and Other Current Assets Product warranty life. Product Warranty Life Product warranty life Collaborative Arrangement and Arrangement Other than Collaborative [Axis] Collaborative Arrangement and Arrangement Other than Collaborative Accrued cost of revenues Accrued cost of revenues Accrued cost of revenue Other Comprehensive Income (Loss), Net of Tax Other comprehensive gain (loss) Other Comprehensive Income (Loss), Net of Tax, Total Schedule of Finite-Lived Intangible Assets [Table Text Block] Summary of intangible assets Accrued compensation Other Accrued Compensation Other Accrued Compensation Comprehensive Income (Loss), Net of Tax, Attributable to Parent Comprehensive loss Comprehensive loss Common Stock, Shares, Outstanding Common Stock, Shares, Outstanding, Ending Balance Common Stock, Shares, Outstanding, Beginning Balance Common stock, shares outstanding Finite-Lived Intangible Assets, Major Class Name [Domain] Fair Value Measurement, Policy [Policy Text Block] Fair Value of Financial Instruments Interest income (expense), net Interest Income (Expense), Net Interest Income (Expense), Net, Total Interest expense Preferred Stock, Par or Stated Value Per Share Preferred stock, par value Cash Payments Cash Payments Cash payments Cash payment Antidilutive Securities [Axis] Accounts Payable Total received Invoices from Alpha Steel Accounts Payable, Total Proceeds from Issuance or Sale of Equity Sale of common stock Proceeds from Issuance or Sale of Equity, Total Covid-19 Pandemic Policy [Text Block] Covid-19 Pandemic Policy [Text Block] Covid-19 Pandemic Cash Cash, Ending Balance Cash, Beginning Balance Finite-Lived Intangible Assets [Line Items] Entity Interactive Data Current Entity Interactive Data Current Equity Method Investments [Policy Text Block] Equity method investments Finite-Lived Intangible Assets, Remaining Amortization Period Amortized period Product [Member] Product Revisions Of Previously Issued Financial Statements. Revisions Of Previously Issued Financial Statements [Policy Text Block] Revisions of previously issued financial statements Tamara Mullings [Member] Tamara Mullings [Member] Tamara Mullings [Member] Cost of Sales [Member] Cost of revenue [Member] Document Quarterly Report Document Quarterly Report Related Party Transaction [Domain] Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents Cash and cash equivalents at end of period Cash and cash equivalents at beginning of period Total cash and restricted cash Total cash and restricted cash Related Party Transactions Disclosure [Text Block] Related party transactions Balance Sheet Location [Axis] Balance Sheet Location Available liquidity after considering financial condition Available liquidity after considering financial condition Statistical Measurement [Axis] Statistical Measurement Income (Loss) from Equity Method Investments, Net of Dividends or Distributions Loss from unconsolidated subsidiary Income (Loss) from Equity Method Investments, Net of Dividends or Distributions, Total Loss from unconsolidated subsidiary Cost of Goods and Services Sold Total cost of revenue Cost of Goods and Services Sold, Total Cost of Revenue Operating Lease, Cost Operating lease cost Operating lease cost Related Party, Type [Domain] Related Party Closing bid price Closing bid price Closing bid price Lease, Cost Total lease cost Total lease cost Total lease cost Selling and Marketing Expense Selling and marketing Selling and Marketing Expense, Total Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block] Summary of Future Remaining Lease Payments Obligations Additional capital contributions Additional Capital Contributions Additional capital contributions Director [Member] Board of Directors Finite-Lived Intangible Assets, Gross Intangible assets, gross Finite-Lived Intangible Assets, Gross, Total Outstanding capital stock held Outstanding capital stock held Outstanding capital stock held Liquidity Policy [Text Block] Liquidity Policy [Text Block] Liquidity Effect of exchange rate changes on cash and cash equivalents Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Continuing Operations Fair Value Of Retained Equipment Fair Value Of Retained Equipment Fair value of retained equipment Income Statement Location [Axis] Indefinite-Lived Intangible Assets [Line Items] Purchase Obligation Percentage Purchase Obligation Percentage Purchase Obligation Percentage Assets Total assets Schedule of Long-Term Debt Instruments [Table] Debt Instrument [Table] Recent accounting and regulatory pronouncements not yet adopted New Accounting Pronouncements, Policy [Policy Text Block] Entity Address, City or Town Entity Address, City or Town Revision of Prior Period, Adjustment [Member] Adjustments AOCI Attributable to Parent [Member] Accumulated Other Comprehensive Loss Equity [Abstract] Payments of Stock Issuance Costs Stock issuance costs Stock offering costs paid Additional capital contribution Additional capital contribution Additional capital contributions Depreciation Depreciation expense Depreciation, Total Trade Accounts Receivable Balance From Major Customer Trade Accounts Receivable Balance From Major Customer Trade Accounts Receivable Balance From Major Customer Trade Accounts Receivable Trade Accounts Receivable Trade receivables Revision of Prior Period [Domain] Share-Based Payment Arrangement [Text Block] Stock-Based Compensation Prepaid Expense and Other Assets, Current [Abstract] Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued Income tax interest and penalties accrued Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued, Total Stock Issued During Period, Value, New Issues Sale of shares Issuance of common stock, value Vendor Deposits 1 Vendor Deposits 1 Vendor Deposits Stock Issued During Period, Value, Stock Options Exercised Issuance of common stock upon exercise of stock options Lessee, Lease, Description [Line Items] Liabilities, Current [Abstract] Current liabilities Intangible Assets, Finite-Lived, Policy [Policy Text Block] Intangible assets, net Working Capital Working Capital Working capital Right-Of-Use Asset And Lease Liability Recognition For New Leases Right-Of-Use Asset And Lease Liability Recognition For New Leases Right-of-use asset and lease liability recognition for new leases Document Type Document Type Provision for Other Credit Losses Provision For Credit Losses Stock Repurchased and Retired During Period, Shares Share repurchase and retirement (shares) Share repurchased and retired (Shares) Repurchase and retirement of common stock (shares) Schedule of Product Warranty Liability [Table Text Block] Summary of Changes in Product Warranty Reserves Schedule of warranty accruals Title of 12(b) Security Title of 12(b) Security Fcx Solar Llc [Member] Fcx Solar Llc [Member] Fcx Solar Llc [Member] Cash and Cash Equivalents, at Carrying Value Cash and Cash Equivalents, at Carrying Value, Ending Balance Cash and Cash Equivalents, at Carrying Value, Beginning Balance Cash and cash equivalents Cash and Cash Equivalents, at Carrying Value, Total Balance Sheet Location [Domain] Balance Sheet Location Other Noncurrent Liabilities [Member] Other Noncurrent Liabilities [Member] Cash receved for acquire foundation Cash Receved for Acquire Foundation Cash Receved for Acquire Foundation Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block] Goodwill Lessee, Operating Lease, Liability, to be Paid, Year Five 2028 Lease, Cost [Table Text Block] Summary of Lease Expense Statement of Stockholders' Equity [Abstract] Condensed Consolidated Statement of Stockholders' Equity Inventory Valuation Reserves Inventory Valuation Reserves, Ending Balance Inventory Valuation Reserves, Beginning Balance Allowance for slow-moving and obsolete inventory Allowance for slow-moving and obsolete inventory Document Fiscal Period Focus Document Fiscal Period Focus Research and Development Expense Research and development Research and Development Expense, Total Schedule of Goodwill [Table Text Block] Schedule of goodwill activity Accounts Receivable, Allowance for Credit Loss [Table Text Block] Schedule of Accounts Receivable Allowance for Credit Loss Property, Plant and Equipment, Gross Property, Plant and Equipment, Gross, Ending Balance Property, Plant and Equipment, Gross, Beginning Balance Property and equipment, gross Property, Plant and Equipment, Gross, Total Subsequent Event Type [Domain] Sale of Stock [Axis] Sale of Stock Net Cash Provided by (Used in) Investing Activities [Abstract] Cash flows from investing activities: Schedule of Severance and Termination Related Costs [Table Text Block] Schedule of Severance and Termination Related Costs [Table Text Block] Schedule Of severance and termination-related costs Money Market Funds, at Carrying Value Carrying value of money market fund Revenue from Contract with Customer, Excluding Assessed Tax Total revenue Revenue from Contract with Customer, Excluding Assessed Tax, Total Revenues Income Tax Disclosure [Text Block] Income Taxes Other Long-Term Debt Long-term borrowings or other material obligations Other Long-term Debt, Total Description of Revised Tariffs classification Description of Revised Tariffs Classification Description of revised tariffs classification Selling, General and Administrative Expense General and administrative expense Selling, General and Administrative Expense, Total Business Combination and Asset Acquisition [Abstract] Short-Term Debt, Type [Axis] Cost of Assessment Cost of Assessment Cost of assessment Credit Facility [Domain] Credit Facility Condensed Financial Statements [Table Text Block] Revision of previously issued financial statements Deferred Revenue, Revenue Recognized Revenue recognized included in deferred revenue Finite-Lived Intangible Assets, Net Finite-Lived Intangible Assets, Net, Ending Balance Finite-Lived Intangible Assets, Net, Beginning Balance Intangible assets, net Intangible assets, net Depreciation, Depletion and Amortization, Nonproduction Depreciation and amortization Depreciation, Depletion and Amortization, Nonproduction, Total Short-Term Debt, Type [Domain] Other Accrued Liabilities, Current Other accrued expenses Equity method investments financial information. Equity Method Investments Financial Information [Table Text Block] Summary of Equity Method Investments Financial Information Increase (Decrease) in Accounts Payable Accounts payable Increase (Decrease) in Accounts Payable, Total Entity Address, Address Line Two Entity Address, Address Line Two Liabilities and Equity [Abstract] LIABILITIES AND STOCKHOLDERS' EQUITY Stock Repurchased and Retired During Period, Value Share repurchase and retirement Repurchase and retirement of common stock Document Period End Date Document Period End Date Net Cash Provided by (Used in) Financing Activities Net cash provided by financing activities Deferred Credits and Other Liabilities, Current Non-federal tax obligations Stockholders' Equity Note [Abstract] Stock Issued During Period, Shares, Restricted Stock Award, Gross Shares issued during the period for vested restricted stock awards, shares Shares of common stock issuable upon vesting of restricted stock awards Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount Potential common shares excluded from diluted net loss per share Investment to acquire ownership interest Investment to acquire ownership interest Investment to acquire ownership interest APIC, Share-Based Payment Arrangement, Increase for Cost Recognition Stock-based compensation APIC, Share-based Payment Arrangement, Increase for Cost Recognition, Total Equity Method Investment, Ownership Percentage Ownership percentage Sale of Stock, Consideration Received on Transaction Purchase cost of shares Placing purchase orders Placing purchase orders Placing Purchase Orders Accrued Liabilities, Current Accrued expenses Total accrued expenses Lessee, Operating Lease, Liability, to be Paid, after Year Five Thereafter Income Tax Expense (Benefit) (Benefit from) income taxes Income Tax Expense (Benefit), Total Income tax expense (benefit) (Provision for) benefit from income taxes Income tax expense (benefit) Revolving Credit Facility, Available Remaining Borrowing Capacity Revolving Credit Facility, Available Remaining Borrowing Capacity Available borrowing capacity under the Revolving Credit Facility Trading Symbol Trading Symbol Product Warranty Accrual, Noncurrent Warranty reserves Other non-current liabilities Accrued Expenses and Other Current Liabilities [Table Text Block] Accrued Expenses and Other Current Liabilities [Table Text Block] Schedule of Accrued Expenses and Other Current Liabilities Variable Rate [Axis] Equity, Attributable to Parent Ending balance Beginning balance Stockholders equity Total stockholders' equity Long-Lived Tangible Asset [Axis] Fernweh Engaged Operator Company LLC [Member] Fernweh Engaged Operator Company LLC [Member] Fernweh Engaged Operator Company LLC [Member] Other Liabilities, Noncurrent Other non-current liabilities Other Liabilities, Noncurrent, Total Share-Based Payment Arrangement [Policy Text Block] Stock-based compensation DAYV LLC DAYV LLC [Member] DAYV LLC [Member] Common stock value authorized. Common Stock Value Authorized Common stock, value authorized Prepaid Expenses and Other Current Assets. Prepaid Expenses and Other Current Assets [Text Block] Prepaid and other current assets Restricted Stock Units (RSUs) [Member] Restricted Stock Units (RSU) Related Party Transactions [Abstract] Increase (Decrease) in Deferred Revenue Deferred revenue Property, Plant and Equipment [Table] Goodwill Balance at end of period Balance at beginning of period Goodwill Goodwill, Total Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block] Schedule of Stock compensation expense Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block] Schedule of accounts receivable, net Deferred Income Tax Expense (Benefit) Deferred income taxes Deferred Income Tax Expense (Benefit), Total Leases [Abstract] Equipment [Member] Field Equipment [Member] Use of Estimates, Policy [Policy Text Block] Use of estimates Cash and Cash Equivalents, Policy [Policy Text Block] Cash and cash equivalents Related Party [Member] Increase in common stock issued and outstanding. Increase in Common stock Issued and Outstanding Increase in common stock issued and outstanding Security Exchange Name Security Exchange Name Accounts Receivable, after Allowance for Credit Loss [Abstract] Counterparty Name [Domain] Counterparty Name Operating Expenses Total operating expenses Total operating expenses Alpha Steel Alpha Steel [Member] Alpha Steel Long-Lived Tangible Asset [Domain] Consecutive business days Consecutive business days Consecutive business days Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment, Ending Balance Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment, Beginning Balance Accumulated depreciation Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment, Total Accumulated depreciation Lessee, Operating Lease, Liability, to be Paid, Year Three 2026 Equipment estimated fair value Property Plant and Equipment Estimated Fair Value Property Plant and Equipment Estimated Fair Value Subsequent Event [Member] Subsequent Event Maximum [Member] Maximum [Member] Maximum [Member] Liabilities and Equity Total liabilities and stockholders' equity Operating Lease, Right-of-Use Asset Operating lease right-of-use assets Prepaid Expense, Current Prepaid expense Prepaid Expense, Current, Total Supplemental Cash Flow Information [Abstract] Supplemental disclosures of cash flow information: Prime Rate [Member] Standard Product Warranty Description Warranty description Earnings Per Share, Diluted Diluted Earnings Per Share, Diluted, Total Diluted loss per share Leasehold Improvements [Member] Entity Ex Transition Period Entity Ex Transition Period Liabilities Total liabilities Assets, Current Current assets Total current assets Net Cash Provided by (Used in) Investing Activities Net cash provided by (used in) investing activities Stock Issued During Period, Shares, New Issues Sale of shares, shares Issuance of common stock (in shares) Entity Filer Category Entity Filer Category Goodwill and Intangible Assets Disclosure [Text Block] Intangible assets, net and goodwill Property, Plant and Equipment [Abstract] Accrued Expenses and Other Current Liabilities Disclosure [Text Block] Accrued Expenses and Other Current Liabilities Disclosure [Text Block] Accrued Expenses and Other Current Liabilities Impact of stock split. Impact of Stock Split Product Warranty Liability [Line Items] Product Warranty Liability [Line Items] Percantage of Concentrations of credit risk Percantage of Concentrations of credit risk Concentrations of credit risk, percentage Current Fiscal Year End Date Current Fiscal Year End Date Lessee, Operating Lease, Liability, Undiscounted Excess Amount Less imputed interest Less imputed interest Equity Method Investment, Realized Gain (Loss) on Disposal Gain from disposal of investment in unconsolidated subsidiary Equity Method Investment, Realized Gain (Loss) on Disposal, Total Gain from disposal of investment in unconsolidated subsidiary Share-Based Payment Arrangement, Noncash Expense Stock-based compensation Share-based Payment Arrangement, Noncash Expense, Total Stock-based compensation expense Related Party Transaction [Axis] Related Party, Type [Axis] Related Party Goodwill, Foreign Currency Translation Gain (Loss) Translation Technology Equipment [Member] Information Technology Equipment [Member] Product Warranty Accrual, Current Warranty reserves Other current liabilities Entity Registrant Name Entity Registrant Name Gross Profit Gross loss Gross profit (loss) Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table] Earnings Per Share [Text Block] Net Loss Per Share Entity Emerging Growth Company Entity Emerging Growth Company Equity Method Investments and Joint Ventures [Abstract] Other Liabilities, Current Other current liabilities Total other current liabilities Weighted Average Number of Shares Outstanding, Basic Basic Weighted Average Number of Shares Outstanding, Basic, Total Basic weighted-average number of common shares outstanding Lessee, Operating Lease, Liability, to be Paid, Fiscal Year Maturity [Abstract] Schedule of Equity Method Investments [Line Items] Schedule Of Equity Method Investments [Line Items] Common Stock, Shares Authorized Common stock, shares authorized Proceeds from Issuance of Common Stock Sale of common stock Proceeds from common stock Debt Disclosure [Abstract] Amortization of Intangible Assets Amortization expense Schedule of Deferred Compensation Arrangement with Individual, Excluding Share-Based Payments and Postretirement Benefits, by Title of Individual and by Type of Deferred Compensation [Table] Material change in unrecognized tax benefits Unrecognized Tax Benefits, Period Increase (Decrease) Unrecognized Tax Benefits, Period Increase (Decrease), Total Accounts and Nontrade Receivable [Text Block] Accounts receivable, net General and Administrative Expense [Member] General and administrative [Member] Revenue [Policy Text Block] Revenue recognition Share-Based Payment Arrangement [Abstract] Impairment or Disposal of Long-Lived Assets, Policy [Policy Text Block] Impairment Collaborative Arrangement and Arrangement Other than Collaborative [Table] Accrued Expenses and Other Current Liabilities Abstract. Accrued Expenses and Other Current Liabilities [Abstract] Program Rights Obligations [Abstract] Proceeds from deferred offering costs. Proceeds From Deferred Offering Costs Deferred offering costs Goodwill, Impairment Loss Impairment of goodwill Stock Issued During Period, Value, Acquisitions Shares issued for HX Tracker acquisition, Amount Schedule of operating lease assets and liabilities. Schedule Of Operating Lease Assets And Liabilities Table [Text Block] Schedule of Supplemental Balance Sheet Information of Leases Accounting Policies [Abstract] Schedule of Operating Leased Assets [Table] Income Tax Disclosure [Abstract] Equity, Attributable to Parent [Abstract] Stockholders' equity Deferred cost of revenue Deferred Cost of Revenue Deferred cost of revenue ATM Program ATM Program Cash and Cash Equivalents, Restricted Cash and Cash Equivalents, Policy [Policy Text Block] Restricted Cash Statement [Table] Statement [Table] Property, Plant and Equipment [Table Text Block] Schedule of property and equipment Description of closing bid pric of our common stock Description of closing bid pric of our common stock Description of closing bid pric of our common stock Description of business. Description Of Business [Line Items] Description Of Business [Line Items] Preferred Stock, Shares Authorized Preferred stock, shares authorized Line of Credit Facility, Fair Value of Amount Outstanding Credit Facility amount Securities Act File Number Entity File Number Cash paid during the period for third party interest Cash paid during the period for third party interest Cash paid during the period for interest Decrease in cash and cash equivalents Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect Revenue from Contract with Customer [Abstract] Tariffs on Merchandise, Percent Tariffs on Merchandise, Percent Tariffs on merchandise, percent Earnings Per Share [Abstract] Net loss per share: Note 11. Net loss per share Inventory Disclosure [Abstract] Statement of Financial Position [Abstract] Balance sheet Equity Method Investments [Table Text Block] Summary of Equity Method Investments IPO [Member] Operating Income (Loss) Loss from operations Loss from operations Accrued Income Taxes, Current Non-federal tax obligations Letter of Credit [Member] Letter of Credit Entity Shell Company Entity Shell Company Entity Tax Identification Number Entity Tax Identification Number Assets [Abstract] ASSETS Entity Current Reporting Status Entity Current Reporting Status Forward stock split Forward stock split Forward stock split Software Development [Member] Capitalized Software [Member] Property, Plant and Equipment Disclosure [Text Block] Property and equipment, net Subsequent Events [Abstract] Inventories Inventory Disclosure [Text Block] Document Fiscal Year Focus Document Fiscal Year Focus Preferred stock par value of $0.0001 per share, 10,000,000 shares authorized; none issued as of June 30, 2024 and December 31, 2023 Preferred Stock, Value, Issued Preferred Stock, Value, Issued, Ending Balance Preferred Stock, Value, Issued, Beginning Balance Preferred Stock, Value, Issued, Total Finite-Lived Intangible Assets, Accumulated Amortization Accumulated amortization Accumulated amortization Financing Interest Expense Interest expense Proceeds from Issuance Initial Public Offering Proceeds from IPO Proceeds of IPO City Area Code City Area Code Liabilities, Current Current liabilities Total current liabilities Amounts charged (credited) to earnings during the period Accounts Receivable, Allowance for Credit Loss Expense (Reversal) Accounts Receivable, Allowance for Credit Loss Expense (Reversal) Cost of Revenue [Abstract] Cost of revenue: Inventory, Net Inventories Total Product Warranty Liability [Table] Product Warranty Liability [Table] Inventory, Finished Goods, Gross Finished goods Inventory, Finished Goods, Gross, Total Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent Statutory rate Recievables from Related Parties Recievables from Related Parties Related party receivables Organization, Consolidation and Presentation of Financial Statements [Abstract] Local Phone Number Local Phone Number Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items] Additional Paid in Capital Additional Paid in Capital, Ending Balance Additional Paid in Capital, Beginning Balance Additional paid-in capital Additional Paid in Capital, Total Subsidiary, Sale of Stock [Line Items] Commitments and Contingencies Disclosure [Abstract] Treasury stock, at cost; 10,762,566 shares as of June 30, 2024 and December 31, 2023 Treasury Stock, Value Treasury Stock, Value, Ending Balance Treasury Stock, Value, Beginning Balance Treasury Stock, Value, Total Treasury stock, value Asset Acquisition [Table Text Block] Schedule of allocation of the purchase price Operating Lease, Liability, Current Operating lease liabilities, current portion (included in Accrued expenses and other current liabilities) Current portion of operating lease liability Developed Technology Rights [Member] Developed Technology [Member] Liquidity Ratio Amount, Minimum Limit Liquidity Ratio Amount, Minimum Limit Liquidity ratio amount, minimum limit Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax Foreign currency translation adjustments Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Total Master project supply agreements [Member] Master Project Supply Agreements [Member] Master Project Supply Agreements [Member] Retained Earnings [Member] Accumulated Deficit Payments to Acquire Property, Plant, and Equipment Payments to Acquire Property, Plant, and Equipment, Total Purchases of property and equipment Board of Directors Chairman [Member] Board of Directors and Chairman Document Transition Report Document Transition Report Increase (Decrease) in Other Operating Assets Increase (Decrease) in Other Operating Assets, Total Other assets Lessee, Operating Lease, Liability, to be Paid, Year Two 2025 Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table] Concentration Risk, Credit Risk, Policy [Policy Text Block] Concentration of credit risk Minimum [Member] Minimum [Member] Common Stock [Member] Common Stock Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Line Items] Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items] Jobs act accounting election policy text block. Jobs Act Accounting Election Policy [Text Block] JOBS Act Accounting Election Standard and Extended Product Warranty Accrual, Increase (Decrease) for Preexisting Warranties Changes in liability for pre-existing warranties Standard and Extended Product Warranty Accrual, Increase (Decrease) for Preexisting Warranties, Total Investment, Name [Axis] Investment, Name Additional Paid-in Capital [Member] Additional Paid-in Capital Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract] Adjustments to reconcile net loss to cash used in operating activities: Other comprehensive income (loss): Other Comprehensive Income (Loss), Net of Tax [Abstract] Standard Product Warranty Accrual, Increase for Warranties Issued Warranties issued and remediation added during the period Warranties issued during the period Income Statement Location [Domain] Lessee, Operating Lease, Liability, to be Paid, Year One Remainder of 2024 Other Assets, Noncurrent Other assets Other Assets, Noncurrent, Total Standard and Extended Product Warranty Accrual, Decrease for Payments Standard and Extended Product Warranty Accrual, Decrease for Payments, Total Settlements made during the period Standard and Extended Product Warranty Accrual Balance at end of period Balance at beginning of period Standard and Extended Product Warranty Accrual, Total 939 Assessment [Member] 939 Assessment [Member] 939 Assessment [Member] Schedule of Inventory, Current [Table Text Block] Schedule of Inventories Ability to continue as a going concern Ability to continue as a going concern Liquidity Other Assets, Current Other current assets Goodwill and Intangible Assets Disclosure [Abstract] Entity Common Stock, Shares Outstanding Entity Common Stock, Shares Outstanding Revolving Credit Facility, Gross Maximum Borrowing Capacity Revolving Credit Facility, Gross Maximum Borrowing Capacity Aggregate commitments Basis of Accounting, Policy [Policy Text Block] Basis of presentation and principles of consolidation Title of Individual [Domain] Adjustments to Additional Paid in Capital, Stock Issued, Issuance Costs Stock issuance costs Stock offering costs Common stock par value of $0.0001 per share, 850,000,000 shares authorized; 127,002,580 and 125,445,325 shares issued and outstanding as of June 30, 2024 and December 31, 2023 Common Stock, Value, Issued Common Stock, Value, Issued, Ending Balance Common Stock, Value, Issued, Beginning Balance Common Stock, Value, Issued, Total Common stock, value, issued Collaborative Arrangement and Arrangement Other than Collaborative [Line Items] Lessee, Operating Lease, Disclosure [Table Text Block] Summary of Supplemental Information, Operating Lease Accounts and Financing Receivable, Allowance for Credit Loss Balance at end of period Balance at beginning of period Allowance for credit losses Allowance for credit losses Share-Based Payment Arrangement, Accelerated Cost Increased stock-based compensation expenses Operating Lease, Liability Total lease liability Present value of operating lease liabilities Present value of operating lease liabilities Commitments and Contingencies Commitments and contingencies (Note 14) Income Taxes Paid Cash paid during the period for taxes, net of refunds Deferred Income Taxes Deferred income taxes Weighted Average Number of Shares Outstanding, Diluted Diluted Potential common shares excluded from diluted net loss per share Diluted weighted-average number of common shares outstanding Revenue recognized in excess of billings Revenue recognized in excess of billings Revenue recognized in excess of billings Payments to Acquire Other Investments Investment in Alpha Steel Equity method investment in Alpha Steel Significant Accounting Policies [Text Block] Summary of significant accounting policies Accounts Receivable, after Allowance for Credit Loss, Current Accounts receivable, net Accounts receivable, net Lessee, Operating Lease, Liability, to be Paid Total lease payments Increase (Decrease) in Inventories Increase (Decrease) in Inventories, Total Inventories Unpaid receivable balance totaling Impaired Financing Receivable, Unpaid Principal Balance Weighted Average Number of Shares Outstanding, Diluted [Abstract] Weighted-average common shares outstanding: Entity Small Business Entity Small Business Schedule of Indefinite-Lived Intangible Assets [Table] Debt Debt Disclosure [Text Block] Credit Facility [Axis] Credit Facility Revolving Credit Facility [Member] Credit Facility Agreement [Member] Accounts and Other Receivables, Net, Current Other receivables Receivables Collected Service [Member] Service Subscription revenue contract terms. Subscription Revenue Contract Terms Subscription revenue contract terms Effective Income Tax Rate Reconciliation, Tax Credit, Investment, Percent Investment tax credit, percentage Net Cash Provided by (Used in) Financing Activities [Abstract] Cash flows from financing activities: Treasury Stock -1 [Member] Treasury Stock -1 [Member] Treasury Stock Intangible Assets, Net (Excluding Goodwill) Intangible assets, net Intangible Assets, Net (Excluding Goodwill), Total Shares issued for legal settlement amt Shares issued for legal settlement amt Shares issued for legal settlement Line of Credit Facility, Commitment Fee Percentage Commitment fees rate Forward stock split. Corporate Conversion And Stock Split Policy [Text Block] Forward Stock Split Subsequent Events [Text Block] Subsequent events Accounts Payable, Current Accounts payable Accounts Payable, Current, Total Outstanding surety and performance bonds Special Assessment Bond Special Assessment Bond, Total Short-Term Lease, Cost Short-term lease cost Accounts Receivable, Allowance for Credit Loss Accounts Receivable, Allowance for Credit Loss, Ending Balance Accounts Receivable, Allowance for Credit Loss, Beginning Balance XML 9 R1.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Document and Entity Information - shares
6 Months Ended
Jun. 30, 2024
Jul. 31, 2024
Cover [Abstract]    
Entity Registrant Name FTC SOLAR, INC.  
Entity Central Index Key 0001828161  
Current Fiscal Year End Date --12-31  
Entity Filer Category Accelerated Filer  
Entity Current Reporting Status Yes  
Entity Interactive Data Current Yes  
Entity Small Business false  
Entity Emerging Growth Company true  
Entity Ex Transition Period false  
Entity Shell Company false  
Document Type 10-Q  
Document Period End Date Jun. 30, 2024  
Document Fiscal Year Focus 2024  
Document Fiscal Period Focus Q2  
Trading Symbol FTCI  
Amendment Flag false  
Title of 12(b) Security Common Stock, $0.0001 par value  
Security Exchange Name NASDAQ  
Entity File Number 001-40350  
Entity Incorporation, State or Country Code DE  
Entity Tax Identification Number 81-4816270  
Entity Address, Address Line One 9020 N Capital of Texas Hwy  
Entity Address, Address Line Two Suite I-260  
Entity Address, City or Town Austin  
Entity Address, State or Province TX  
Entity Address, Postal Zip Code 78759  
City Area Code 737  
Local Phone Number 787-7906  
Entity Common Stock, Shares Outstanding   127,366,590
Document Quarterly Report true  
Document Transition Report false  
XML 10 R2.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Condensed Consolidated Balance Sheets (Unaudited) - USD ($)
$ in Thousands
Jun. 30, 2024
Dec. 31, 2023
Current assets    
Cash and cash equivalents $ 10,779 $ 25,235
Accounts receivable, net 41,511 65,279
Inventories 17,061 3,905
Prepaid and other current assets 14,969 14,089
Total current assets 84,320 108,508
Operating lease right-of-use assets 1,926 1,819
Property and equipment, net 2,446 1,823
Intangible assets, net 264 542
Goodwill 7,169 7,353
Equity method investment 1,529 240
Other assets 2,696 2,785
Total assets 100,350 123,070
Current liabilities    
Accounts payable 17,580 7,979
Accrued expenses 22,835 34,848
Income taxes payable 106 88
Deferred revenue 2,595 3,612
Other current liabilities 8,202 8,138
Total current liabilities 51,318 54,665
Operating lease liability, net of current portion 1,107 1,124
Other non-current liabilities 3,684 4,810
Total liabilities 56,109 60,599
Commitments and contingencies (Note 14)
Stockholders' equity    
Preferred stock par value of $0.0001 per share, 10,000,000 shares authorized; none issued as of June 30, 2024 and December 31, 2023 0 0
Common stock par value of $0.0001 per share, 850,000,000 shares authorized; 127,002,580 and 125,445,325 shares issued and outstanding as of June 30, 2024 and December 31, 2023 13 13
Treasury stock, at cost; 10,762,566 shares as of June 30, 2024 and December 31, 2023 0 0
Additional paid-in capital 364,813 361,886
Accumulated other comprehensive loss (438) (293)
Accumulated deficit (320,147) (299,135)
Total stockholders' equity 44,241 62,471
Total liabilities and stockholders' equity $ 100,350 $ 123,070
XML 11 R3.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Condensed Consolidated Balance Sheets (Parenthetical) (Unaudited) - $ / shares
Jun. 30, 2024
Dec. 31, 2023
Statement of Financial Position [Abstract]    
Preferred stock, par value $ 0.0001 $ 0.0001
Preferred stock, shares authorized 10,000,000 10,000,000
Preferred stock, shares issued 0 0
Common stock, par value $ 0.0001 $ 0.0001
Common stock, shares authorized 850,000,000 850,000,000
Common stock, shares issued 127,002,580 125,445,325
Common stock, shares outstanding 127,002,580 125,445,325
XML 12 R4.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Condensed Consolidated Statements of Comprehensive Loss (Unaudited) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
Revenue:        
Total revenue $ 11,430 $ 32,359 $ 24,017 $ 73,253
Cost of revenue:        
Total cost of revenue 13,773 30,158 28,468 69,017
Gross profit (loss) (2,343) 2,201 (4,451) 4,236
Operating expenses        
Research and development 1,535 1,873 2,974 3,795
Selling and marketing 2,036 1,852 4,424 3,563
General and administrative 6,010 8,843 12,577 19,642
Total operating expenses 9,581 12,568 19,975 27,000
Loss from operations (11,924) (10,367) (24,426) (22,764)
Interest income (expense), net 1 (28) (135) (86)
Gain from disposal of investment in unconsolidated subsidiary 4,085 898
Other income (expense), net (7) (141) 29 (215)
Loss from unconsolidated subsidiary (246) 0 (511) 0
Loss before income taxes (12,176) (10,536) (20,958) (22,167)
(Provision for) benefit from income taxes (65) 122 (54) (9)
Net loss (12,241) (10,414) (21,012) (22,176)
Other comprehensive income (loss):        
Foreign currency translation adjustments 36 (408) (145) (413)
Comprehensive loss $ (12,205) $ (10,822) $ (21,157) $ (22,589)
Net loss per share:        
Basic $ (0.1) $ (0.09) $ (0.17) $ (0.2)
Diluted $ (0.1) $ (0.09) $ (0.17) $ (0.2)
Weighted-average common shares outstanding:        
Basic 126,171,278 112,669,296 125,816,080 109,632,336
Diluted 126,171,278 112,669,296 125,816,080 109,632,336
Product        
Revenue:        
Total revenue $ 8,776 $ 21,074 $ 19,681 $ 53,653
Cost of revenue:        
Total cost of revenue 10,467 19,152 22,834 50,919
Service        
Revenue:        
Total revenue 2,654 11,285 4,336 19,600
Cost of revenue:        
Total cost of revenue $ 3,306 $ 11,006 $ 5,634 $ 18,098
XML 13 R5.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Condensed Consolidated Statements of Stockholders' Equity (Deficit) (Unaudited) - USD ($)
$ in Thousands
Total
Preferred Stock
Common Stock
Treasury Stock
Additional Paid-in Capital
Accumulated Other Comprehensive Loss
Accumulated Deficit
Beginning balance at Dec. 31, 2022 $ 66,450 $ 0 $ 11 $ 0 $ 315,345 $ (61) $ (248,845)
Beginning balance (in shares) at Dec. 31, 2022   0 105,032,588 10,762,566      
Shares issued during the period for vested restricted stock awards 2,775       2,775    
Shares issued during the period for vested restricted stock awards, shares     1,498,987        
Issuance of common stock upon exercise of stock options 51       51    
Issuance of common stock upon exercise of stock options, shares     265,125        
Shares issued for legal settlement 2,000       2,000    
Shares issued for legal settlement, shares     797,396        
Sale of shares 6,292       6,292    
Sale of shares, shares     2,683,000        
Stock offering costs (32)       (32)    
Stock-based compensation 2,472       2,472    
Net loss (11,762)           (11,762)
Other comprehensive gain (loss) (5)         (5)  
Ending balance at Mar. 31, 2023 68,241 $ 0 $ 11 $ 0 328,903 (66) (260,607)
Ending balance (in shares) at Mar. 31, 2023   0 110,277,096 10,762,566      
Beginning balance at Dec. 31, 2022 66,450 $ 0 $ 11 $ 0 315,345 (61) (248,845)
Beginning balance (in shares) at Dec. 31, 2022   0 105,032,588 10,762,566      
Net loss (22,176)            
Ending balance at Jun. 30, 2023 79,394 $ 0 $ 12 $ 0 350,877 (474) (271,021)
Ending balance (in shares) at Jun. 30, 2023   0 118,118,220 10,762,566      
Beginning balance at Mar. 31, 2023 68,241 $ 0 $ 11 $ 0 328,903 (66) (260,607)
Beginning balance (in shares) at Mar. 31, 2023   0 110,277,096 10,762,566      
Shares issued during the period for vested restricted stock awards 2,085       2,085    
Shares issued during the period for vested restricted stock awards, shares     1,213,037        
Issuance of common stock upon exercise of stock options, shares     39,087        
Sale of shares 17,348   $ 1   17,347    
Sale of shares, shares     6,589,000        
Stock offering costs (127)       (127)    
Stock-based compensation 2,669       2,669    
Net loss (10,414)           (10,414)
Other comprehensive gain (loss) (408)         (408)  
Ending balance at Jun. 30, 2023 79,394 $ 0 $ 12 $ 0 350,877 (474) (271,021)
Ending balance (in shares) at Jun. 30, 2023   0 118,118,220 10,762,566      
Beginning balance at Dec. 31, 2023 62,471 $ 0 $ 13 $ 0 361,886 (293) (299,135)
Beginning balance (in shares) at Dec. 31, 2023   0 125,445,325 10,762,566      
Shares issued during the period for vested restricted stock awards, shares     506,928        
Stock-based compensation 1,639       1,639    
Net loss (8,771)           (8,771)
Other comprehensive gain (loss) (181)         (181)  
Ending balance at Mar. 31, 2024 55,158 $ 0 $ 13 $ 0 363,525 (474) (307,906)
Ending balance (in shares) at Mar. 31, 2024   0 125,952,253 10,762,566      
Beginning balance at Dec. 31, 2023 62,471 $ 0 $ 13 $ 0 361,886 (293) (299,135)
Beginning balance (in shares) at Dec. 31, 2023   0 125,445,325 10,762,566      
Net loss (21,012)            
Ending balance at Jun. 30, 2024 44,241 $ 0 $ 13 $ 0 364,813 (438) (320,147)
Ending balance (in shares) at Jun. 30, 2024   0 127,002,580 10,762,566      
Beginning balance at Mar. 31, 2024 55,158 $ 0 $ 13 $ 0 363,525 (474) (307,906)
Beginning balance (in shares) at Mar. 31, 2024   0 125,952,253 10,762,566      
Shares issued during the period for vested restricted stock awards, shares     1,009,094        
Issuance of common stock upon exercise of stock options 3       3    
Issuance of common stock upon exercise of stock options, shares     41,233        
Stock-based compensation 1,285       1,285    
Net loss (12,241)           (12,241)
Other comprehensive gain (loss) 36         36  
Ending balance at Jun. 30, 2024 $ 44,241 $ 0 $ 13 $ 0 $ 364,813 $ (438) $ (320,147)
Ending balance (in shares) at Jun. 30, 2024   0 127,002,580 10,762,566      
XML 14 R6.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Condensed Consolidated Statements of Cash Flows (Unaudited) - USD ($)
$ in Thousands
6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Cash flows from operating activities    
Net loss $ (21,012) $ (22,176)
Adjustments to reconcile net loss to cash used in operating activities:    
Stock-based compensation 2,924 7,852
Depreciation and amortization 812 666
Amortization of debt issue cost 236 355
Provision (credit) for obsolete and slow-moving inventory 177 1,261
Loss from unconsolidated subsidiary 511 0
Gain from disposal of investment in unconsolidated subsidiary (4,085) (898)
Warranty and remediation provisions 1,639 2,852
Warranty recoverable from manufacturer 238 30
Credit loss provisions 587 203
Deferred income taxes 223 184
Lease expense and other 609 497
Impact on cash from changes in operating assets and liabilities:    
Accounts receivable 23,181 (17,879)
Inventories (13,333) 7,643
Prepaid and other current assets (864) 70
Other assets (562) (1,422)
Accounts payable 9,483 11,247
Accruals and other current liabilities (13,463) (7,895)
Deferred revenue (1,017) (8,804)
Other non-current liabilities (1,331) (4,264)
Lease payments and other, net (588) (331)
Net cash used in operating activities (15,635) (30,809)
Cash flows from investing activities:    
Purchases of property and equipment (1,131) (195)
Equity method investment in Alpha Steel (1,800) (900)
Proceeds from disposal of investment in unconsolidated subsidiary 4,085 898
Net cash provided by (used in) investing activities 1,154 (197)
Cash flows from financing activities:    
Sale of common stock 0 20,640
Stock offering costs paid 0 (114)
Proceeds from stock option exercises 3 51
Net cash provided by financing activities 3 20,577
Effect of exchange rate changes on cash and cash equivalents 22 (139)
Decrease in cash and cash equivalents (14,456) (10,568)
Cash and cash equivalents at beginning of period 25,235 44,385
Cash and cash equivalents at end of period 10,779 33,817
Supplemental disclosures of cash flow information:    
Purchases of property and equipment included in ending accounts payable and accruals 202 12
Stock issued for accrued legal settlement 0 2,000
Right-of-use asset and lease liability recognition for new leases 500 1,417
Cash paid during the period for interest 189 255
Cash paid during the period for taxes, net of refunds $ 78 $ 126
XML 15 R7.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Pay vs Performance Disclosure - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2024
Mar. 31, 2024
Jun. 30, 2023
Mar. 31, 2023
Jun. 30, 2024
Jun. 30, 2023
Pay vs Performance Disclosure            
Net Income (Loss) $ (12,241) $ (8,771) $ (10,414) $ (11,762) $ (21,012) $ (22,176)
XML 16 R8.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Description of business
6 Months Ended
Jun. 30, 2024
Organization, Consolidation and Presentation of Financial Statements [Abstract]  
Description of business

1. Description of business

FTC Solar, Inc. (the “Company”, “we”, “our”, or “us”) was founded in 2017 and is incorporated in the state of Delaware. In April 2021, we completed an initial public offering ("IPO"), and our common stock currently trades on the Nasdaq Capital Market under the symbol “FTCI”.

We are a global provider of solar tracker systems, supported by proprietary software and value-added engineering services. Solar tracker systems move solar panels throughout the day to maintain an optimal orientation relative to the sun, thereby increasing the amount of solar energy produced at a solar installation. Our original two-panel in-portrait solar tracker system is currently marketed under the Voyager brand name (“Voyager”) and our one module-in-portrait ("1P") solar tracker system, which became certified in 2023, is marketed under the Pioneer brand name ("Pioneer"). We also have a mounting solution to support the installation and use of U.S.-manufactured thin-film modules by project owners. Our primary software offerings include SUNPATH which is intended to help customers optimize solar tracking for increased energy production, our SUNOPS real-time operations management platform and our web-based ATLAS portfolio management software. In addition, we have a team of renewable energy professionals available to assist our U.S. and worldwide clients in site layout, structural design, pile testing and other needs across the solar project development and construction cycle. The Company is headquartered in Austin, Texas, and has international subsidiaries in Australia, China, India, South Africa and Spain.

We are an emerging growth company, as defined in the Jumpstart Our Business Startups (JOBS) Act. Under the JOBS Act, we elected to use the allowed extended transition period to delay adopting new or revised accounting standards until such time as those standards apply to private companies.

XML 17 R9.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Summary of significant accounting policies
6 Months Ended
Jun. 30, 2024
Accounting Policies [Abstract]  
Summary of significant accounting policies

2. Summary of significant accounting policies

Basis of presentation and principles of consolidation

The accompanying unaudited condensed consolidated financial statements include the results of the Company and its wholly owned subsidiaries and have been prepared in accordance with accounting principles generally accepted in the United States of America (“U.S. GAAP”) for interim financial statements and pursuant to Form 10-Q and Article 10 of Regulation S-X. In the opinion of management, all adjustments of a normal recurring nature have been made that are considered necessary for a fair statement of our financial position as of June 30, 2024, and December 31, 2023, our results of operations for the three and six months ended June 30, 2024 and 2023, and our cash flows for the six months ended June 30, 2024 and 2023. The condensed consolidated balance sheet as of December 31, 2023 has been derived from the Company’s audited consolidated financial statements but does not include all disclosures required by accounting principles generally accepted in the United States of America. Operating results for the three and six months ended June 30, 2024 are not necessarily indicative of the results that may be expected for the year ending December 31, 2024. Intercompany balances and transactions have been eliminated in consolidation.

Certain information and disclosures normally included in the notes to annual financial statements prepared in accordance with U.S. GAAP have been omitted from these interim financial statements pursuant to the rules and regulations of the Securities and Exchange Commission (the “SEC”). Therefore, these unaudited condensed consolidated financial statements should be read in conjunction with the consolidated financial statements and related notes included in the Company’s Annual Report on Form 10-K for the year ended December 31, 2023 (our "2023 Annual Report").

We currently operate in one business segment, the manufacturing and servicing of solar tracker systems.

Liquidity

We have incurred cumulative losses since inception and have a history of cash outflows from operations. As of June 30, 2024, we had $10.8 million of cash on hand, $33.0 million of working capital and approximately $64.9 million of remaining capacity available for future sales of our common stock under our ATM program as defined and described further in Note 4, "ATM program" below. There can be no assurance that we will be able to sell any additional shares of our common stock under the ATM program and no assurance regarding

the price at which we will be able to sell such shares, and any sales of our common stock under the ATM program may be at prices that result in additional dilution to our existing stockholders.

On December 22, 2023, we received notification from The Nasdaq Stock Market LLC (“Nasdaq”) that we were not in compliance with the requirement to maintain a minimum closing bid price of $1.00 per share, as set forth in Nasdaq Listing Rule 5450(a)(1), because the closing bid price of the Company’s common stock was below $1.00 per share for 30 consecutive business days. In accordance with Nasdaq Listing Rule 5810(c)(3)(A), we were initially given a period of 180 calendar days from the date of notification, or until June 19, 2024, to regain compliance with the minimum bid price requirement, which was not achieved. Effective May 31, 2024, trading in our common stock transferred from the Nasdaq Global Market to the Nasdaq Capital Market. On June 21, 2024, we received notification from Nasdaq that we were approved for an additional 180-day period, or until December 17, 2024, to cure the bid price deficiency in accordance with Nasdaq Listing Rule 5810(c)(3)(A). We are currently evaluating all of our options to achieve compliance with Nasdaq requirements for continued listing, which may include effecting a reverse stock split, if necessary, at least 10 days prior to December 17, 2024. At this time, our common stock continues to trade on the Nasdaq Capital Market under the symbol "FTCI". If at any time before December 17, 2024 the bid price of our common stock closes at or above $1.00 per share for a minimum of ten consecutive business days, Nasdaq will provide written notification that we have achieved compliance with this minimum bid price requirement. If we fail to regain compliance with the minimum bid price requirement during this second 180-day period, then Nasdaq will notify us that our common stock is subject to delisting.

Effective April 30, 2024, our Senior Secured Revolving Credit Facility ("Credit Facility) expired unused and has not been replaced as of June 30, 2024. We continue to evaluate additional opportunities to obtain financing.

At June 30, 2024, we had a contractual obligation that could require us to make additional capital contributions of up to $0.8 million to Alpha Steel, as well as make a minimum level of purchases from Alpha Steel, as described further in Note 3, "Equity method investment" below. In the event we were to fail to meet our minimum required purchase commitments during a specified period, including the current period from January 1, 2024 to June 30, 2025, we may be required to make a cash payment for the net profit attributable to any unfilled requirements, calculated as specified in the agreement, in an amount not to exceed $4.0 million in the aggregate.

The most notable incentive program impacting our U.S. business has historically been the investment tax credit ("ITC") for solar energy projects, which allows taxpayers to offset their U.S. federal income tax liability by a certain percentage of their cost basis in solar energy systems placed in service for commercial use. The Inflation Reduction Act of 2022, passed by the U.S. Congress and signed into law by President Biden on August 16, 2022, expanded and extended the tax credits and other tax benefits available to solar energy projects and the solar energy supply chain. ITCs have been extended for such projects through at least 2032 and, depending on the location of a particular project and its ability to satisfy certain labor and domestic content requirements, the ITC percentage can range between 30% and 50%. U.S. manufacturers of specific solar components are now eligible to claim production tax credits as an alternative to the ITC. Implementing regulations for this law are, in certain cases, still being finalized and the impact of these regulations continue to be evaluated by developers of new solar projects and manufacturers of solar components. Our investment in and commitments made to Alpha Steel will allow us to obtain certain benefits as a result of this new production tax credit program.

We have taken steps to expand and diversify our manufacturing partnerships and have adjusted our modes of transportation to mitigate the impact of headwinds that might arise in the global supply chain and logistics markets. As an example, we modified our ocean freight from previously using charter shipments to now using containerized shipments as costs in the container market began to decrease starting in 2022, but more recently have begun to increase. However, we have been able to mitigate some of this increase as a result of increasing our domestic production capabilities. We continue to monitor the logistics markets and will continue to evaluate our use of various modes of transportation when warranted to optimize our transportation costs. Additionally, from February 2022 to September 2023, we utilized a related-party consulting firm to support us in making improvements to our processes and performance in various areas, including design, sourcing, logistics, pricing, software and our distributed generation business. For further information regarding this consulting firm, see Note 16, "Related party transactions" below. These steps, and others, have allowed us to improve our business processes and lower our product cost structure, thus improving our direct product margins in recent periods. As an example, we generated positive gross profit during each quarter in 2023. Additionally, we have made substantial progress in lowering our operating costs, showing significant improvement since becoming a public company, as well as in comparison to the prior year periods included in this Quarterly Report. These combined factors have allowed us to significantly lower the estimated quarterly revenue level that we believe is required to break even. However, our low revenue levels for the three and six months ended June 30, 2024, have prevented us from continuing to show positive quarterly gross profit in 2024, similar to 2023, as revenues have not been sufficient to fully cover our indirect costs.

Similar to previous periods, we continue to evaluate additional opportunities in 2024 to address existing market challenges, our cost structure and our historical use of cash. In 2023, (i) we introduced a new mounting solution to support the installation and use of

U.S.-manufactured thin-film modules, (ii) Pioneer, our 1P solar tracker solution, became certified, and (iii) we introduced SUNOPS, a cloud-based, tracker agnostic solar asset monitoring solution allowing asset owners and managers to evaluate the operation and performance of their solar deployments. We have continued to enhance our customer offerings in 2024, including the launch of our Automated Hail Stow Solution which is aimed at minimizing solar panel damage caused by hail storms. As described elsewhere in this Quarterly Report, we also have recently added experienced and accomplished leadership talent to head our North America and International sales organizations and have named a new President and Chief Executive Officer with significant experience in the solar industry who will join us on August 19, 2024.

In accordance with Accounting Standards Codification ("ASC") 205-40, Going Concern, we have evaluated whether there are conditions and events, considered in the aggregate, which raise substantial doubt about our ability to continue as a going concern within one year after the date our condensed consolidated financial statements are issued.

Management believes that our existing cash on hand, as well as the continuing impact of certain of the actions described within this memo and our expectations of (i) the expected timing of future customer project activity, including activity related to certain large project awards previously received, and (ii) the positive results in recent periods from our efforts to increase our direct product margins and lower our cost structure, will allow us to grow profitably and generate positive cash flow from operations during the next twelve months in amounts that will be sufficient, along with our other available resources such as our existing working capital and, the remaining capacity available for future sales of our common stock under our ATM program, to fund our operations for at least one year from the date of issuance of our condensed consolidated financial statements.

While there are already many underlying drivers of growth in the solar industry, the expected positive impact on demand for our products from these drivers of growth could take longer than expected to occur because the timing of construction activity by existing customers and solar project developers can be uncertain. As an example, we have experienced in recent periods customer delays caused by interconnection issues, equipment shortages and the timing and ability of obtaining financing at acceptable levels. In addition, domestic and international market conditions, including differences between margins on international and U.S. projects, could deteriorate significantly from what we currently expect, and regulatory and international trade policies could become more stringent as a result of (i) findings from an ongoing investigation by the U.S. Department of Commerce (the Solar Circumvention Investigation") in response to a petition by Auxin Solar, Inc. of claims related to alleged circumvention of U.S. antidumping and countervailing duties ("AD/CVD") by solar manufacturers in certain Southeast Asian countries, (ii) enforcement of the Uyghur Forced Labor Prevention Act ("UFLPA") passed by the U.S. Congress and signed into law by President Biden on December 23, 2021, by U.S. Customs and Border Protection ("CBP"), and (iii) other factors, which may result in a need for us to issue additional debt or obtain new equity financing to adequately fund our existing operations beyond the next twelve months. We continue to actively explore options to obtain additional sources of capital through the issuance of new debt, asset financing or other potential measures for our longer-term needs. However, we may be unable to obtain any desired additional financing on terms favorable to us, or at all, depending on market and other conditions, which could result in curtailment of our current operations and our ability to further invest in our products and new technology. The ability to raise additional financing depends on numerous factors, some of which are outside of our control, including macroeconomic factors such as the impact of inflation, the level of interest rates, supply chain or other effects from the ongoing conflicts in the Ukraine and the Middle East, general market conditions, the health of financial institutions (including recent bankruptcies and financial difficulties involving certain regional banks and related impacts that have occurred and continue to occur in the banking industry), investors' and lenders' assessments of our prospects and the prospects of the solar industry in general and the ability of our common stock to continue to trade in active markets.

Use of estimates

Preparation of condensed consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements, and the reported revenue and expenses during the period. Estimates are used for calculating the measure of progress of our solar tracker projects and deriving the standalone selling prices of the individual performance obligations when determining amounts to recognize for revenue, estimating allowances for credit losses and slow-moving and obsolete inventory, determining useful lives of long-lived assets and the estimated fair value of those assets for impairment assessments, and estimating the fair value of investments, stock compensation awards, warranty liabilities and federal and state taxes, including tax valuation allowances, as well as other contingencies. We base our estimates on historical experience and anticipated results, trends, and various other assumptions that we believe are reasonable under the circumstances, including assumptions as to future events. Actual results could differ from those estimates due to risks and uncertainties.

Concentration of credit risk

Financial instruments that potentially subject the Company to concentrations of credit risk are primarily cash and accounts receivable.

We regularly maintain cash balances with various financial institutions that exceed federally insured amounts, but we have experienced no losses associated with these amounts to date. We also took action in early 2023 to reallocate cash balances between different financial institutions based on our assessment as to the financial health of certain institutions.

We extend credit to customers in the normal course of business, often without requiring collateral. We also perform credit analyses and monitor the financial health of our customers to reduce credit risk.

The Company’s accounts receivables are derived from revenue earned from customers primarily located in the U.S. and Australia. No countries other than the U.S. and Australia accounted for 10% or more of our revenue. Most of our customers are project developers, solar asset owners and engineering, procurement and construction (“EPC”) contractors that design and build solar energy projects. We typically rely on a small number of customers that account for a large portion of our revenue each period and our outstanding receivables at each period end.

Cash and cash equivalents

We consider all highly liquid investments purchased with an original maturity of three months or less to be cash equivalents. Certain of our cash equivalents include deposits in money market funds that invest primarily in short-term securities issued or guaranteed by the U.S. government or its agencies or instrumentalities and contain no restrictions on immediate redemption. These deposits totaled $5.9 million at June 30, 2024 and $13.9 million at December 31, 2023. Interest earned on cash equivalents is included in interest income, which is reported net of interest expense in our condensed consolidated statements of comprehensive loss.

Accounts receivable, net

Trade receivables are recorded at invoiced amounts, net of allowances for credit losses, and do not bear interest. We generally do not require collateral from our customers; however, in certain circumstances, we may require letters of credit, other collateral, additional guarantees or advance payments.

The allowance for credit losses is based on the lifetime expected credit loss of our customer accounts. To assess the lifetime expected credit loss, we utilize a loss rate method that takes into consideration historical experience and certain other factors, as appropriate, such as credit quality and current economic or other conditions that may affect a customer's ability to pay. Provisions for credit losses are included as a component of our selling and marketing expenses.

Receivables arising from revenue recognized in excess of billings represents our unconditional right to consideration before customers are invoiced due to the level of progress obtained as of period end on our contracts to procure and deliver tracker systems and related equipment. Further information may be found below in our revenue recognition policy.

Inventories

Inventories are stated at the lower of cost or net realizable value, with costs computed on a first-in, first-out basis. The Company periodically reviews its inventories for excess and obsolete items and adjusts carrying costs to estimated net realizable values when they are determined to be less than cost.

Impairment

We review our long-lived assets that are held for use for impairment whenever events or changes in circumstances indicate that the carrying amount of the asset may not be recoverable or that its useful life may be shorter than previously expected. If such impairment indicators are present or other factors exist that indicate the carrying amount of the asset may not be recoverable, we determine whether an impairment has occurred through the use of an undiscounted cash flow analysis of the asset at the lowest level for which identifiable cash flows exist. If an impairment has occurred, we recognize a loss for the difference between the carrying amount and the fair value of the asset, which in most cases is estimated based upon Level 3 unobservable inputs. If the asset is determined to have a remaining useful life shorter than previously expected, an adjustment for the shorter remaining life will be made for purposes of recognizing future depreciation

expense. Assets are classified as held for sale when we have a plan, approved by the appropriate levels of management, for disposal of such assets, as well as other considerations, and those assets are stated at the lower of carrying value or estimated fair value less estimated costs to sell.

Intangible assets, net

Intangible assets are recorded at fair value when acquired in connection with a business combination and consist of developed technology in the form of software tools, licenses, and intellectual property, which are amortized over the period of their estimated useful lives, generally 2.5 - 3.0 years, using the straight-line method. Costs incurred to renew or extend the term of a recognized intangible asset, if any, are expensed as incurred. We evaluate intangible assets for impairment using the method described above under "Impairment".

Goodwill

We recognize goodwill as the excess of the purchase price over the estimated fair value of the identified assets and liabilities acquired in a business combination accounted for using the acquisition method. Goodwill is not amortized but is subject to a periodic assessment for impairment at least annually, or whenever events and circumstances indicate an impairment may exist. Our assessments may include qualitative factors such as current or expected industry and market conditions, our overall financial performance, share price trends, market capitalization and other company-specific events.

We operate in one segment, being the consolidated entity, which we have also determined is the reporting unit for goodwill impairment.

No impairment of goodwill was recognized as of June 30, 2024 or 2023.

Equity method investment

We use the equity method of accounting for investments in which we have the ability to exercise significant influence, but not control, over operating and financial policies of the investee. Our proportionate share of the net income or loss of these investees is included in our condensed consolidated statements of comprehensive loss. Judgment regarding the level of influence over each equity method investment includes considering key factors such as our ownership interest, legal form of the investee, representation on the board of directors or managers, participation in policy-making decisions and material intra-entity transactions.

We account for distributions received from equity method investees under the “nature of the distribution” approach based on the nature of the activity or activities of the investee that generated the distribution as either a return on investment (classified as cash inflows from operating activities) or a return of investment (classified as cash inflows from investing activities).

We evaluate equity method investments for impairment whenever events or changes in circumstances indicate that the carrying amount of the investment might not be recoverable. Factors considered by the Company when reviewing an equity method investment for impairment include the length of time and the extent to which the fair value of the equity method investment has been less than its cost, the investee’s financial condition and near-term prospects and the intent and ability to hold the investment for a period of time sufficient to allow for anticipated recovery. An impairment that is other-than temporary is recognized in the period identified.

We made an accounting policy election that, upon the sale of our equity method investments, we will recognize contractual contingent gains arising from earnout provisions and project escrow releases when such amounts are realizable in periods subsequent to the disposal date.

Warranty

Typically, the sale of solar tracker projects includes parts warranties to customers as part of the overall price of the product. We provide standard assurance type warranties for our products for periods generally ranging from five to ten years. We also accrue for costs relating to remediation efforts involving product issues we believe require correction. We record a provision for estimated warranty and remediation expenses in cost of sales, net of amounts recoverable from manufacturers under their warranty obligations to us. When historical claims information relating to our equipment is not sufficient, we will base our estimates on industry studies involving the nature and frequency of product failure rates for similar parts used by our competitors, as well as other related businesses. We do not maintain general

or unspecified reserves; all warranty reserves are related to specific projects. All actual or estimated material costs incurred for warranty or remediation services in subsequent periods are charged to those established reserves.

While we periodically monitor our warranty activities and claims, if actual costs incurred were to be different from our estimates, we would recognize adjustments to our warranty reserves in the period in which those differences arise or are identified.

Stock-based compensation

We recognize compensation expense for all share-based payment awards made, including stock options and restricted stock units ("RSUs"), based on the estimated fair value of the award on the grant date. We calculate the fair value of stock options using the Black-Scholes option pricing model for awards with service-based vesting or through use of a lattice model or a Monte Carlo simulation for stock option and RSU awards with market conditions. The fair value of RSUs with service or performance-based vesting is based on the estimated fair value of the Company's common stock on the date of grant. We consider the closing price of our stock, as reported on the Nasdaq Capital Market, to be the fair value of our stock on the grant date.

Forfeitures are accounted for as they occur. For service-based awards, stock-based compensation is recognized using the straight-line attribution approach over the requisite service period. For performance-based awards, stock-based compensation is recognized based on graded vesting over the requisite service period when the performance condition is probable of being achieved. Stock compensation expense for market-based awards is recognized over the derived service period determined in the valuation model, inclusive of any vesting conditions.

Revenue recognition

Product revenue is derived from the sale of solar tracker systems and customized components for those systems, individual part sales for certain specific transactions and the sale of term-based software licenses. Term-based licensed software is deployed on the customers’ own servers and has significant standalone functionality.

Service revenue includes revenue from shipping and handling services, engineering consulting and pile testing services, our subscription-based enterprise licensing model and maintenance and support services in connection with the term-based software licenses. Our subscription-based enterprise licensing model typically has contract terms ranging from one to two years and consists of subscription fees from the licensing of subscription services. Our hosted on-demand service arrangements do not provide customers with the right to take possession of the software supporting the hosted services. Support services include ongoing security updates, upgrades, bug fixes, and maintenance.

We recognize revenue when promised goods or services are transferred to customers in an amount that reflects the consideration to which we expect to be entitled to in exchange for those goods or services by following a five-step process: (1) identify the contract with a customer, (2) identify the performance obligations in the contract, (3) determine the transaction price, (4) allocate the transaction price to the performance obligations in the contract, and (5) recognize revenue when or as the Company satisfies a performance obligation, as further described below.

Identify the contract with a customer: A contract with a customer exists when (i) the Company enters into an enforceable contract with a customer that defines each party’s rights regarding the products and services to be transferred and identifies the payment terms related to these products and services, (ii) the contract has commercial substance, and (iii) the Company determines that collection of substantially all consideration for products and services that are transferred is probable based on the customer’s intent and ability to pay the promised consideration. In assessing the recognition of revenue, we also evaluate whether two or more contracts should be combined and accounted for as one contract and if the combined or single contract should be accounted for as multiple performance obligations which could change the amount of revenue and profit (loss) recorded in a period. Change orders may include changes in specifications or design, manner of performance, equipment, materials, scope of work, and/or the period of completion of the project. We analyze change orders to determine if they should be accounted for as a modification to an existing contract or a new stand-alone contract.

Contracts we enter into with our customers for sale of solar tracker systems are generally under two different types of arrangements: (1) purchase agreements and equipment supply contracts (“Purchase Agreements”), and (2) sale of individual parts for those systems.

Change orders from our customers are generally modifications to existing contracts and are included in the total estimated contract revenue when it is probable that the change order will result in additional value that can be reliably estimated and realized.

Identify the performance obligations in the contract: We enter into contracts that can include various combinations of products and services, which are either capable of being distinct and accounted for as separate performance obligations or as one performance obligation since the majority of tasks and services are part of a single project or capability. However, determining whether products or services are considered distinct performance obligations that should be accounted for separately versus together may sometimes require significant judgment.

Our Purchase Agreements typically include two performance obligations: 1) our solar tracker systems or customized components of those systems, and 2) shipping and handling services. The deliverables included as part of our solar tracker systems are predominantly accounted for as one performance obligation, as these deliverables are part of a combined promise to deliver a project.

The revenue for shipping and handling services will be recognized over time based on progress in meeting shipping terms of the arrangements, as this faithfully depicts the Company’s performance in transferring control. Revenue for stand-alone engineering consulting and pile testing services is recognized at a point in time upon completion of the services performed.

Sales of individual parts of our solar tracker systems for certain specific transactions include multiple performance obligations consisting of individual parts of those systems. Revenue is recognized for parts sales at a point in time when the obligations under the terms of the contract with our customer are satisfied. Generally, this occurs with the transfer of control of the asset, which is in line with shipping terms.

Determine the transaction price: The transaction price is determined based on the consideration to which we will be entitled in exchange for transferring services to the customer. Such amounts are typically stated in the customer contract, and to the extent that we identify variable consideration, we will estimate the variable consideration at the onset of the arrangement as long as it is probable that a significant reversal in the amount of cumulative revenue recognized will not occur when the uncertainty associated with the variable consideration is subsequently resolved. The majority of our contracts do not contain variable consideration provisions as a continuation of the original contract. None of our contracts contain a significant financing component. Taxes collected from customers and remitted to governmental authorities are not included in revenue.

Allocate the transaction price to performance obligations in the contract: Once we have determined the transaction price, we allocate the total transaction price to each performance obligation in a manner depicting the amount of consideration to which we expect to be entitled in exchange for transferring the good(s) or service(s) to the customer. We allocate the transaction price to each performance obligation identified in the contract on a relative standalone selling price basis.

We use the expected cost-plus margin approach based on hardware, labor, and related overhead cost to estimate the standalone selling price of our solar tracker systems, customized components of those systems, and individual parts for certain specific transactions. We also use the expected cost-plus margin approach based on expected third-party shipping and transportation costs to estimate the standalone selling price of our shipping, handling and logistics performance obligations. We use the adjusted market assessment approach for all other performance obligations.

Recognize revenue when or as the Company satisfies a performance obligation: For each performance obligation identified, we determine at contract inception whether we satisfy the performance obligation over time or at a point in time. The performance obligations in the contracts for our solar tracker systems and customized components of those systems are satisfied over time as work progresses, utilizing an input measure of progress determined by cost-to-cost measures on these projects as this faithfully depicts our performance in transferring control. Additionally, our performance does not create an asset with an alternative use, due to the highly customized nature of the product, and we have an enforceable right to payment for performance completed to date. Our performance obligations for individual part sales for certain specific transactions are recognized at a point in time as and when control transfers based on the terms for the contract. Our performance obligations for engineering consulting and pile testing services are recognized at a point in time upon completion of the services. Our performance obligations for term-based software licenses are recognized at a point in time as and when control transfers, either upon delivery to the customer or the software license start date, whichever is later. Our performance obligations for shipping and handling services are satisfied over time as the services are delivered over the term of the contract. We recognize revenue for subscription and other services on a straight-line basis over the contract period. With regard to support revenue, a time-elapsed method is used to measure progress because we transfer control evenly over the contractual period. Accordingly, the fixed consideration related to support revenue is generally recognized on a straight-line basis over the contract term.

Contract assets and liabilities: The timing of revenue recognition, billing, and cash collection results in the recognition of accounts receivable, unbilled receivables for revenue recognized in excess of billings, and deferred revenue in the condensed consolidated balance sheets. We have elected to use the practical expedient of expensing incremental costs of obtaining a contract as incurred since the majority

of the performance obligations in our contracts are satisfied in less than one year. We may receive advances or deposits from our customers before revenue is recognized, resulting in contract liabilities, which are reflected as “deferred revenue” in our condensed consolidated balance sheets. Customer deposits are short term as the related performance obligations are typically fulfilled within 12 months. Changes in deferred revenue relate to fluctuations in the timing of customer deposits and completion of performance obligations. Revenue recognized during the three and six months ended June 30, 2024, from amounts included in deferred revenue at December 31, 2023, totaled $0.2 million and $2.5 million, respectively. Revenue recognized during the three and six months ended June 30, 2023, from amounts included in deferred revenue at December 31, 2022, totaled $1.7 million and $9.3 million, respectively.

Cost of revenue consists primarily of costs related to raw materials, equipment manufacturing activities, freight and delivery, product warranty, remediation and personnel costs (salaries, bonuses, benefits, and stock-based compensation). Personnel costs in cost of revenue include both direct labor costs, as well as costs attributable to any individuals whose activities relate to the procurement, installment and delivery of the finished product and services. Cost of revenue owed but not yet paid is recorded as accrued cost of revenue in the accompanying condensed consolidated balance sheets. Deferred cost of revenue, a component of our prepaid and other current assets, results from the timing differences between the costs incurred in advance of the satisfaction of all revenue recognition criteria consistent with our revenue recognition policy.

Recent accounting and regulatory pronouncements not yet adopted

In November 2023, the Financial Accounting Standards Board ("FASB") issued ASU No. 2023-07 - Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures ("ASU 2023-07"), which will become effective for us for our year end 2024 financial reporting and our interim reporting beginning January 1, 2025. ASU 2023-07 requires public companies to disclose significant segment expenses and other segment items on an annual and interim basis and will require interim disclosures about a reportable segment's profit or loss and assets that are currently required annually. As noted above, we operate in one segment. We are currently evaluating the impact of ASU 2023-07 on our existing disclosures. ASU 2023-07 will be applied retrospectively to all periods when presented in our consolidated financial statements for the year ending December 31, 2024.

In December 2023, the FASB issued ASU No. 2023-09 - Income Taxes (Topic 740): Improvements to Income Tax Disclosures ("ASU 2023-09"). ASU 2023-09 requires companies to disclose (i) additional categories of information about federal, state and foreign income taxes above a quantitative threshold in their rate reconciliation table and (ii) income taxes paid, net of refunds, disaggregated by federal, state and foreign taxes for annual periods, as well as other disclosure changes. As an emerging growth company, we are not required to adopt ASU 2023-09 prior to 2026, although earlier adoption is permitted. We are currently evaluating the impact of ASU 2023-09 on our existing income tax disclosures.

In March 2024, the U.S. Securities and Exchange Commission ("SEC") adopted the final rule under SEC Release No. 33-11275, The Enhancement and Standardization of Climate-Related Disclosures for Investors. This rule would require registrants to disclose certain climate-related information in registration statements and annual reports. In April 2024, the SEC issued a stay of the final rules pending a judicial review of the validity of the rules by the Eighth Circuit Court of Appeals. We are currently evaluating the final rule to determine its impact on our disclosures.

Other standards or regulatory requirements that have been issued but not yet adopted as of June 30, 2024, are either not applicable to us or are not expected to have any material impact upon adoption.

Reclassifications

Certain prior year amounts have been reclassified to conform to the current year presentation. There was no impact on our financial condition or results of operations as a result of the reclassification.

XML 18 R10.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Equity method investment
6 Months Ended
Jun. 30, 2024
Equity Method Investments and Joint Ventures [Abstract]  
Equity method investment

3. Equity method investment

On February 9, 2023, we entered into a limited liability company agreement (the "LLC Agreement") with Taihua New Energy (Thailand) Co., LTD ("Taihua"), a leading steel fabricator and an existing vendor, and DAYV LLC, for the creation of Alpha Steel LLC ("Alpha Steel"), a Delaware limited liability company dedicated to producing steel components, including torque tubes, for utility-scale solar projects. The Alpha Steel facility, which is located outside of Houston in Sealy, Texas, began commercial production late in the fourth quarter of 2023.

We entered into amendment no. 1 to the Alpha Steel LLC Agreement with Taihua and DAYV LLC on July 28, 2023, to allow for members at their option, and with the approval of the Board of Managers, to make payments in respect of Alpha Steel’s contractual obligations in the event that Alpha Steel does not or is not able to make such payments from its own resources (“Credit Support Payments”). Any such Credit Support Payments will be treated as capital contributions by the members to Alpha Steel, with any member funding more than its ratable share of Credit Support Payments being deemed to have loaned such excess to each underfunding member at the U.S. prime rate plus 2%.

Alpha Steel is intended to enhance our domestic supply chain, our ability to support our customers and the growth of the U.S. solar market, with domestic manufacturing utilizing U.S. steel. We have a 45% interest in Alpha Steel, which is accounted for under the equity method of accounting. Taihua has a 51% interest in Alpha Steel and DAYV LLC, an entity owned by members of the Board of Managers of Alpha Steel and a related party with the parent company of Taihua, has a 4% interest in Alpha Steel. The Chief Executive Officer of Taihua is the General Manager of Alpha Steel. We have equal voting representation with Taihua and DAYV LLC, combined, on Alpha Steel's Board of Managers which is responsible, through majority vote, for making certain "major decisions" involving Alpha Steel, as specified in the LLC Agreement, including, among other things, approval of an annual business plan.

During 2023, we made a required initial capital contribution of $0.9 million to Alpha Steel. For the six months ended June 30, 2024, we also made required additional capital contributions totaling $1.8 million. Pursuant to the LLC Agreement, we could be required to make up to $0.8 million in future additional capital contributions as Alpha Steel continues to expand production. For the three and six months ended June 30, 2024, we recognized losses of $0.2 million and $0.5 million, respectively, which represents our share of the net operating losses incurred by Alpha Steel during the period. No such losses were recognized during the three and six months ended June 30, 2023 as Alpha Steel had not begun operating activities during those periods.

In connection with the creation of Alpha Steel, we also entered into a three-year equipment supply agreement (the "Supply Agreement") with Alpha Steel, the terms of which will apply to our equipment purchase orders. Pursuant to the Supply Agreement, we have committed to placing a minimum level of purchase orders for torque tubes with Alpha Steel during the period from January 1, 2024 to June 30, 2025, with such volume commitments increasing in each of the next two annual periods. In the event we fail to meet our minimum required purchase commitments in any period, we may be required to make a cash payment for the net profit attributable to any unfilled requirements, calculated as specified in the agreement, in an amount not to exceed $4.0 million in the aggregate. As of June 30, 2024, we had met approximately 7% of our required purchase commitments for the period ending June 30, 2025. The Supply Agreement may be terminated early in accordance with its provisions or may be extended beyond the initial term if mutually agreed to by the parties.

At June 30, 2024, in addition to our requirement to meet the remaining minimum purchase obligations for the remainder of the year, as described above, we were contingently liable for unpaid vendor obligations, including issued but unsatisfied purchase orders, of Alpha Steel totaling approximately $0.9 million. We expect Alpha Steel will be able to satisfy these obligations with financial resources available to them in the normal course of operations.

XML 19 R11.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Insider Trading Arrangements
3 Months Ended
Jun. 30, 2024
shares
Trading Arrangements, by Individual  
Material Terms of Trading Arrangement
(a)
Information required to be disclosed in a report on Form 8-K during the period covered by this Form 10-Q, but not reported.

None

(b)
Furnish the information required by Item 407(c)(3) of Regulation S-K (§229.407 of this chapter)

None

(c)
Furnish the information required by Item 408(a) of Regulation S-K (17 CFR 229.408(a)).

Effective June 10, 2024, Tamara Mullings, a former member of our Board of Directors and our current Senior Vice President, North American Sales, terminated her stock trading plan adopted on December 11, 2023, relating to the sale of up to 73,655 shares of common stock over the period March 5, 2024 to December 31, 2024. This stock trading plan was intended to satisfy the affirmative defense conditions of Rule 10b5-1(c) of the Securities Exchange Act of 1934.

None of our other directors or officers adopted, amended or terminated a "Rule 10b5-1 trading arrangement" or a "non-Rule 10b5-1 trading arrangement," as each term is defined in Item 408 of Regulation S-K during the three months ended June 30, 2024.

Rule 10b5-1 Arrangement Adopted false
Non-Rule 10b5-1 Arrangement Adopted false
Rule 10b5-1 Arrangement Terminated false
Non-Rule 10b5-1 Arrangement Terminated false
Tamara Mullings [Member]  
Trading Arrangements, by Individual  
Name Tamara Mullings
Title Board of Directors and our current Senior Vice President
Rule 10b5-1 Arrangement Adopted true
Adoption Date December 11, 2023
Rule 10b5-1 Arrangement Terminated false
Arrangement Duration 301 days
Aggregate Available 73,655
XML 20 R12.htm IDEA: XBRL DOCUMENT v3.24.2.u1
ATM Program
6 Months Ended
Jun. 30, 2024
Program Rights Obligations [Abstract]  
ATM Program

4. ATM program

On September 14, 2022, we filed a prospectus supplement and entered into an equity distribution agreement (as amended, the "EDA") under which we may from time to time, in one or more transactions, offer and sell newly issued shares of our common stock having an aggregate offering price of up to $100 million in "at the money" offerings (the "ATM program"). We have and may continue to use the net proceeds from this offering for general corporate purposes, including working capital and operating expenses. We may also use a portion of such proceeds to acquire or invest in businesses, products, services or technologies.

Barclays Capital Inc. ("Barclays") is our sales agent under the EDA. The offering of our common stock under the EDA will terminate upon the earlier of (1) the sale of all common stock subject to the EDA or (2) the termination of the EDA by us or by Barclays as permitted therein. The EDA contains customary representations, covenants and indemnification provisions.

We sold no shares of newly issued common stock under the ATM program during the three and six months ended June 30, 2024, however, during the three and six months ended June 30, 2023, we sold 6,589,000 and 9,272,000 shares of newly issued common stock valued at $17.9 million and $24.4 million, respectively, for proceeds, net of commissions and fees, of approximately $17.3 million and $23.6 million, respectively, including $3.0 million in proceeds, net of commissions and fees, for shares sold but not yet settled as of June 30, 2023. As of June 30, 2024, approximately $64.9 million of capacity remained for future sales of our common stock under the ATM program.

XML 21 R13.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Accounts receivable, net
6 Months Ended
Jun. 30, 2024
Accounts Receivable, after Allowance for Credit Loss [Abstract]  
Accounts receivable, net

5. Accounts receivable, net

Accounts receivable consisted of the following:

(in thousands)

 

June 30, 2024

 

 

December 31, 2023

 

Trade receivables

 

$

22,006

 

 

$

46,152

 

Related party receivables

 

 

2,564

 

 

 

868

 

Revenue recognized in excess of billings

 

 

17,169

 

 

 

26,813

 

Other receivables

 

 

4

 

 

 

3

 

Total

 

 

41,743

 

 

 

73,836

 

Allowance for credit losses

 

 

(232

)

 

 

(8,557

)

Accounts receivable, net

 

$

41,511

 

 

$

65,279

 

On April 3, 2024, we entered into a First Amendment ("the Amendment") to Master Project Supply Agreements dated October 11, 2021 with a customer and major solar project developer that owed us approximately $30.8 million for project equipment we had previously completed and made available to the customer pursuant to the Master Project Supply Agreements. The Amendment was executed in consideration of and concurrent with the sale of the uncompleted projects by our customer, including the amended Master Project Supply Agreements, to a new third-party developer (the "Purchaser") who assumed certain obligations to us under the amended Master Project Supply Agreements.

Pursuant to the Amendment, we received a cash payment of $9.0 million from the Purchaser to acquire completed foundation piles, which are being stored at the request of the Purchaser for final delivery to the project sites, currently expected during the fourth quarter of 2024. We expect to receive certain additional amounts from the Purchaser for the temporary storage and upon final delivery. The remaining completed project equipment, with an estimated fair value of approximately $13.2 million, was retained by us and returned to our inventory in exchange for forgiveness of the associated outstanding receivable balance owed by our customer. The fully reserved unpaid receivable balance totaling approximately $8.9 million was written off against our allowance for credit losses.

Information about our related party receivables at June 30, 2024, may be found below in Note 16, "Related party transactions".

Included in total receivables above are amounts billed under retainage provisions totaling $0.6 million and $0.9 million as of June 30, 2024 and December 31, 2023, respectively, which are due within the next twelve months.

Activity in the allowance for credit losses during the three and six months ended June 30, 2024 and 2023 was as follows:

 

 

Three months ended June 30,

 

 

Six months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

2024

 

 

2023

 

Balance at beginning of period

 

$

9,227

 

 

$

1,184

 

 

$

8,557

 

 

$

1,184

 

Impact of adoption of ASU 2016-13, effective January 1, 2023

 

N/A

 

 

N/A

 

 

N/A

 

 

 

 

Amounts charged (credited) to earnings during the period

 

 

(83

)

 

 

203

 

 

 

587

 

 

 

203

 

Write-offs of accounts

 

 

(8,912

)

 

 

 

 

 

(8,912

)

 

 

 

Balance at end of period

 

$

232

 

 

$

1,387

 

 

$

232

 

 

$

1,387

 

 

 

 

 

 

 

 

 

 

 

 

 

 

XML 22 R14.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Inventories, net
6 Months Ended
Jun. 30, 2024
Inventory Disclosure [Abstract]  
Inventories

6. Inventories

Inventories consisted of the following:

(in thousands)

 

June 30, 2024

 

 

December 31, 2023

 

Finished goods

 

$

17,576

 

 

$

4,246

 

Allowance for slow-moving and obsolete inventory

 

 

(515

)

 

 

(341

)

Total

 

$

17,061

 

 

$

3,905

 

The increase in our finished goods inventory is primarily related to completed project equipment retained by us pursuant to the agreement reached with a major customer described further in Note 5, "Accounts receivable, net" above.

XML 23 R15.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Prepaid and other current assets
6 Months Ended
Jun. 30, 2024
Prepaid Expense and Other Assets, Current [Abstract]  
Prepaid and other current assets

7. Prepaid and other current assets

Prepaid and other current assets consisted of the following:

(in thousands)

 

June 30, 2024

 

 

December 31, 2023

 

Vendor deposits

 

$

6,605

 

 

$

5,667

 

Vendor deposits with related party

 

 

1,974

 

 

 

520

 

Prepaid expenses

 

 

1,016

 

 

 

1,251

 

Prepaid taxes

 

 

545

 

 

 

447

 

Deferred cost of revenue

 

 

620

 

 

 

666

 

Surety collateral

 

 

7

 

 

 

 

Other current assets

 

 

4,202

 

 

 

5,538

 

Total

 

$

14,969

 

 

$

14,089

 

At June 30, 2024, other current assets included $2.0 million for a non-interest-bearing customer advance related to pre-project construction financing activities. This advance is secured by certain customer assets.

XML 24 R16.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Leases
6 Months Ended
Jun. 30, 2024
Leases [Abstract]  
Leases

8. Leases

We lease office and warehouse space in various locations, including our corporate headquarters in Austin, Texas. Additionally, we lease space for an applications laboratory in Austin, Texas and a research and development facility in Seguin, Texas. All of our manufacturing is outsourced to contract manufacturing partners, and we currently do not own or lease any manufacturing facilities.

Our expense for our operating leases consisted of the following:

 

 

Three months ended June 30,

 

 

Six months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

2024

 

 

2023

 

Operating lease cost

 

$

300

 

 

$

268

 

 

$

609

 

 

$

497

 

Short-term lease cost

 

 

111

 

 

 

110

 

 

 

204

 

 

 

202

 

Total lease cost

 

$

411

 

 

$

378

 

 

$

813

 

 

$

699

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Reported in:

 

 

 

 

 

 

 

 

 

 

 

 

Cost of revenue

 

$

259

 

 

$

250

 

 

$

495

 

 

$

465

 

Research and development

 

 

14

 

 

 

11

 

 

 

28

 

 

 

26

 

Selling and marketing

 

 

39

 

 

 

23

 

 

 

87

 

 

 

38

 

General and administrative

 

 

99

 

 

 

94

 

 

 

203

 

 

 

170

 

Total lease cost

 

$

411

 

 

$

378

 

 

$

813

 

 

$

699

 

Future remaining operating lease payment obligations were as follows:

(in thousands)

 

June 30,
2024

 

Remainder of 2024

 

$

465

 

2025

 

 

884

 

2026

 

 

313

 

2027

 

 

291

 

2028

 

 

157

 

Total lease payments

 

 

2,110

 

Less: imputed interest

 

 

(146

)

Present value of operating lease liabilities

 

$

1,964

 

 

 

 

 

Current portion of operating lease liability

 

$

857

 

Operating lease liability, net of current portion

 

 

1,107

 

Present value of operating lease liabilities

 

$

1,964

 

XML 25 R17.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Property and equipment, net
6 Months Ended
Jun. 30, 2024
Property, Plant and Equipment [Abstract]  
Property and equipment, net

9. Property and equipment, net

Property and equipment consisted of the following:

(in thousands)

 

June 30, 2024

 

 

December 31, 2023

 

Leasehold improvements

 

$

338

 

 

$

157

 

Field equipment

 

 

1,108

 

 

 

1,062

 

Information technology equipment

 

 

574

 

 

 

466

 

Tooling

 

 

1,732

 

 

 

1,014

 

Capitalized software

 

 

848

 

 

 

734

 

Total

 

 

4,600

 

 

 

3,433

 

Accumulated depreciation

 

 

(2,154

)

 

 

(1,610

)

Property and equipment, net

 

$

2,446

 

 

$

1,823

 

Depreciation expense for the three months ended June 30, 2024 and 2023, totaled $0.3 million and $0.2 million, respectively, and for the six months ended June 30, 2024 and 2023, totaled $0.5 million and $0.4 million, respectively.

XML 26 R18.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Intangible assets, net and goodwill
6 Months Ended
Jun. 30, 2024
Goodwill and Intangible Assets Disclosure [Abstract]  
Intangible assets, net and goodwill

10. Intangible assets, net and goodwill

Intangible assets consisted of the following:

(in thousands)

 

Estimated Useful Lives (Years)

 

June 30, 2024

 

 

December 31, 2023

 

Developed technology

 

2.5 3.0

 

$

2,520

 

 

$

2,555

 

Total

 

 

 

 

2,520

 

 

 

2,555

 

Accumulated amortization

 

 

 

 

(2,256

)

 

 

(2,013

)

Intangible assets, net

 

 

 

$

264

 

 

$

542

 

Amortization expense for the three months ended June 30, 2024 and 2023, totaled $0.1 million and $0.1 million, respectively, and for the six months ended June 30, 2024 and 2023, totaled $0.3 million and $0.3 million, respectively.

During the six months ended June 30, 2024 and 2023, activity in our goodwill balance was as follows:

 

 

 

 

Six months ended June 30,

 

(in thousands)

 

 

 

2024

 

 

2023

 

Balance at beginning of period

 

 

 

$

7,353

 

 

$

7,538

 

Translation

 

 

 

 

(184

)

 

 

(365

)

Balance at end of period

 

 

 

$

7,169

 

 

$

7,173

 

XML 27 R19.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Debt
6 Months Ended
Jun. 30, 2024
Debt Disclosure [Abstract]  
Debt

11. Debt

Our Credit Facility, entered into in 2021 with various lenders, including Barclays Bank PLC, as issuing lender, the swingline lender and as administrative agent, expired unused on April 30, 2024. The Credit Facility has not currently been replaced.

Interest expense for the three months ended June 30, 2024 and 2023, totaled $0.1 million and $0.3 million, respectively, and for the six months ended June 30, 2024 and 2023, totaled $0.4 million and $0.6 million, respectively. Our interest expense primarily consisted of commitment and letter of credit fees, as well as amortization of costs relating to the initial establishment of the Credit Facility.

XML 28 R20.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Accrued Expenses and Other Current Liabilities
6 Months Ended
Jun. 30, 2024
Accrued Expenses and Other Current Liabilities [Abstract]  
Accrued Expenses and Other Current Liabilities

12. Accrued expenses and other current liabilities

Accrued expenses and other current liabilities consisted of the following:

(in thousands)

 

June 30, 2024

 

 

December 31, 2023

 

Accrued cost of revenue

 

$

16,260

 

 

$

26,773

 

Related party accrued cost of revenue

 

 

657

 

 

 

1,451

 

Accrued compensation

 

 

3,435

 

 

 

3,858

 

Other accrued expenses

 

 

2,483

 

 

 

2,766

 

Total accrued expenses

 

$

22,835

 

 

$

34,848

 

 

 

 

 

 

 

 

Warranty reserves

 

$

7,264

 

 

$

7,279

 

Current portion of operating lease liability

 

 

857

 

 

 

740

 

Non-federal tax obligations

 

 

81

 

 

 

119

 

Total other current liabilities

 

$

8,202

 

 

$

8,138

 

Information relating to our related party accrued cost of revenue at June 30, 2024 and December 31, 2023 may be found below in Note 16, "Related party transactions".

Other accrued expenses primarily include amounts due for (i) legal costs associated with outstanding corporate or legal matters and (ii) other professional services.

Activity by period in the Company's warranty accruals was as follows:

 

 

Three months ended June 30,

 

 

Six months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

2024

 

 

2023

 

Balance at beginning of period

 

$

10,472

 

 

$

12,557

 

 

$

11,002

 

 

$

12,426

 

Warranties issued and remediation added during the period

 

 

801

 

 

 

1,309

 

 

 

1,639

 

 

 

2,852

 

Settlements made during the period

 

 

(443

)

 

 

(1,234

)

 

 

(1,292

)

 

 

(2,337

)

Changes in liability for pre-existing warranties

 

 

(415

)

 

 

(551

)

 

 

(934

)

 

 

(860

)

Balance at end of period

 

$

10,415

 

 

$

12,081

 

 

$

10,415

 

 

$

12,081

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Warranty accruals are reported in:

 

 

 

 

 

 

 

 

 

 

 

 

Other current liabilities

 

$

7,264

 

 

$

7,791

 

 

$

7,264

 

 

$

7,791

 

Other non-current liabilities

 

 

3,151

 

 

 

4,290

 

 

 

3,151

 

 

 

4,290

 

Balance at end of period

 

$

10,415

 

 

$

12,081

 

 

$

10,415

 

 

$

12,081

 

 

 

 

 

 

 

 

 

 

 

 

 

 

XML 29 R21.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Income Taxes
6 Months Ended
Jun. 30, 2024
Income Tax Disclosure [Abstract]  
Income Taxes

13. Income taxes

For the three months ended June 30, 2024 and 2023, we recorded an income tax expense of $0.07 million and an income tax benefit of $0.12 million respectively, and for the six months ended June 30, 2024 and 2023, we recorded an income tax expense of $0.05 million and an income tax expense of $0.01 million respectively. These amounts for each period were lower than the statutory rate of 21%, primarily due to a valuation allowance established against the U.S. deferred tax assets.

We have had no material change in our unrecognized tax benefits since December 31, 2023. We recognize accrued interest and penalties related to unrecognized tax benefits as a component of income tax expense. As of June 30, 2024 and December 31, 2023, we had no accrued interest or penalties related to unrecognized tax benefits.

XML 30 R22.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Commitments and Contingencies
6 Months Ended
Jun. 30, 2024
Commitments and Contingencies Disclosure [Abstract]  
Commitments and Contingencies

14. Commitments and contingencies

We may become involved in various claims, lawsuits, investigations, and other proceedings, arising in the normal course of business. We accrue a liability when information available prior to the issuance of our financial statements indicates it is probable a loss has been incurred as of the date of the financial statements and the amount of loss can be reasonably estimated. If the reasonable estimate of the

probable loss is a range, we record an accrual for the most likely estimate of the loss, or the low end of the range if there is no one best estimate. We adjust our accruals to reflect the impact of negotiation, settlements, rulings, advice of legal counsel and other information and events pertaining to a particular case. Legal costs are expensed as incurred.

In March of 2023, CBP issued notices of tariff assessment that indicated an action taken at the Import Specialist (i.e., the port) level with respect to merchandise imported from Thailand under entry number 004-1058562-5 (the “625 Assessment”) and entry number 004-1063793-9 (the “Original 939 Assessment”, and collectively with the 625 Assessment, the “Original CBP Assessments”). The Original CBP Assessments related to certain torque beams that are used in our Voyager+ product that were imported in 2022. In the Original CBP Assessments, CBP asserted that Section 301 China tariffs, Section 232 steel and aluminum tariffs, and antidumping and countervailing duties applied to the merchandise. Based on correspondence received to date from CBP and our calculations based on applicable duty and tariff rates, the 625 Assessment is currently for approximately $2.84 million. In September of 2023, CBP informed us (the "Revised 939 Assessment", and together with the 625 Assessment, the "Revised CBP Assessments") that the amount owed under the Original 939 Assessment was being revised downward to approximately $2.01 million. In particular, CBP accepted our position that the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, previously assessed under the Original 939 Assessment are not applicable as they are only applicable to articles that originate in China and that, in this case, the finished goods are products of Thailand.

Upon review of the facts involved, and in consultation with outside legal counsel, we believe that the remaining amounts claimed in the Revised CBP Assessments are incorrect. In particular, the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, are not applicable under the 625 Assessment for the same reason stated above with respect to the Revised 939 Assessment, which has been accepted by CBP. Moreover, with respect to both Revised CBP Assessments, we believe that the goods in question were properly classified as parts of structures at the time of importation and that when properly classified, the beams and other materials are not subject to Section 232 duties applicable to more basic steel products.

CBP has legally finalized both Revised CBP Assessments. We filed a formal protest for the 625 Assessment in September of 2023 and for the Revised 939 Assessment in March of 2024. Based on the above, and under the relevant accounting guidance related to loss contingencies, we have made no accrual for the amounts claimed by CBP as of June 30, 2024, as we do not consider these amounts to be a probable obligation, as such term is defined and interpreted under the relevant accounting guidance, for us at this time. However, because matters of this nature are subject to inherent uncertainties, and unfavorable rulings or developments, including future assessments of additional duties or tariffs owed in respect of other shipments or other materials beyond what is presently included in the Revised CBP Assessments, could occur despite our belief that the tariffs and duties asserted are incorrect, there can be no certainty that the Company may not ultimately incur charges that are not currently recorded as liabilities. Since the outcome of these matters cannot be predicted with certainty, the costs associated with them could have a material adverse effect on our consolidated results of operations, financial position, or liquidity.

XML 31 R23.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Stock-Based Compensation
6 Months Ended
Jun. 30, 2024
Share-Based Payment Arrangement [Abstract]  
Stock-Based Compensation

15. Stock-based compensation

Stock compensation expense for each period was as follows:

 

 

Three months ended June 30,

 

 

Six months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

2024

 

 

2023

 

Cost of revenue

 

$

240

 

 

$

316

 

 

$

456

 

 

$

1,132

 

Research and development

 

 

93

 

 

 

115

 

 

 

174

 

 

 

364

 

Selling and marketing

 

 

114

 

 

 

271

 

 

 

158

 

 

 

655

 

General and administrative

 

 

838

 

 

 

2,260

 

 

 

2,136

 

 

 

5,701

 

Total stock compensation expense

 

$

1,285

 

 

$

2,962

 

 

$

2,924

 

 

$

7,852

 

XML 32 R24.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Related Party Transactions
6 Months Ended
Jun. 30, 2024
Related Party Transactions [Abstract]  
Related party transactions

16. Related party transactions

Transaction with Ayna.AI LLC

In February 2022, we engaged Ayna.AI LLC (as successor in interest to Fernweh Engaged Operator Company LLC) (“Ayna”) to support us with improvements to our processes and performance in various areas including design, sourcing, logistics, pricing, software and standard configuration. The foregoing engagement constituted a related party transaction as South Lake One LLC, an entity affiliated with

Isidoro Quiroga Cortés, a member of our board of directors, and a holder of more than 5% of our outstanding capital stock, is an investor in Ayna. In addition, Discrimen LLC is an investor in Ayna, and Isidoro Quiroga Cortés is affiliated with that entity. Isidoro Quiroga Cortés is also on the board of directors of Ayna. On September 13, 2023, we executed a termination of the master services agreement and statement of work (collectively, the "Service Agreement") with Ayna and Fernweh Group LLC, the parent company of Fernweh Engaged Operator Company LLC.

For the three and six months ended June 30, 2023, we incurred $0.5 million and $1.4 million, respectively, of general and administrative expense, including expense relating to stock-based compensation awards, and made cash payments of $0.8 million and $1.7 million, respectively, associated with our engagement of Ayna.

Related party receivables and payables

We have related party receivables at June 30, 2024 and December 31, 2023, totaling $2.6 million and $0.9 million, respectively, for future material costs discounts contractually owed to us by Alpha Steel in connection with the expected receipt of manufacturing incentives available to Alpha Steel under the Inflation Reduction Act as costs are incurred by Alpha Steel to purchase raw materials and manufacture torque tubes and other products that will be used to fulfill purchase orders we issue to Alpha Steel.

We also have related party liabilities to Alpha Steel at June 30, 2024 and December 31, 2023, totaling $0.7 million and $1.5 million, respectively, for the accrued cost of revenue recognized on certain of our customer projects associated with the cost of products that are being manufactured for us by Alpha Steel.

During the three and six months ended June 30, 2024, we made vendor deposits of $1.1 million and $2.7 million, respectively, to Alpha Steel and received invoices from Alpha Steel totaling $3.8 million and $5.5 million, respectively. Our balance of vendor deposits with Alpha Steel as of June 30, 2024 and December 31, 2023 is shown in Note 7, "Prepaids and other current assets" above as "Vendor deposits with related party". After payments and application of vendor deposits to invoices received, we owe $1.0 million to Alpha Steel, which is included in our accounts payable balance at June 30, 2024 (none at December 31, 2023) in our condensed consolidated balance sheets.

XML 33 R25.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Net Loss Per Share
6 Months Ended
Jun. 30, 2024
Earnings Per Share [Abstract]  
Net Loss Per Share

17. Net loss per share

 

 

Three months ended June 30,

 

 

Six months ended June 30,

 

 

2024

 

 

2023

 

 

2024

 

 

2023

 

Net loss (in thousands)

 

$

(12,241

)

 

$

(10,414

)

 

$

(21,012

)

 

$

(22,176

)

Weighted average shares outstanding for calculating basic and diluted loss per share

 

 

126,171,278

 

 

 

112,669,296

 

 

 

125,816,080

 

 

 

109,632,336

 

Basic and diluted loss per share

 

$

(0.10

)

 

$

(0.09

)

 

$

(0.17

)

 

$

(0.20

)

 

 

 

 

 

 

 

 

 

 

 

 

 

For purposes of computing diluted loss per share, weighted average common shares outstanding do not include potentially dilutive securities that are anti-dilutive, as shown below.

 

 

For the three and six months ended June 30,

 

 

 

2024

 

 

2023

 

Anti-dilutive securities excluded from calculating dilutive loss per share:

 

 

 

 

 

 

Shares of common stock issuable under stock option plans outstanding

 

 

2,386,293

 

 

 

6,505,638

 

Shares of common stock issuable upon vesting of RSUs

 

 

11,521,675

 

 

 

9,124,189

 

Potential common shares excluded from diluted net loss per share calculation

 

 

13,907,968

 

 

 

15,629,827

 

XML 34 R26.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Subsequent Events
6 Months Ended
Jun. 30, 2024
Subsequent Events [Abstract]  
Subsequent events

18. Subsequent events

On July 17, 2024, we entered into an employment agreement with Yann Brandt to become our President and Chief Executive Officer and a member of our Board of Directors, all effective as of August 19, 2024. Mr. Brandt, age 41, was Chief Commercial Officer of FlexGen Power Systems Inc. ("FlexGen") from November 2022 and was Chief Financial Officer of FlexGen from February 2021 until November 2022. He previously served as Chief Executive Officer of QuickMount PV from June 2018 until June 2020 and prior to that, was with

Conergy, a downstream solar company where he served as President of the Americas, as well as Global Head of Marketing and Public Relations. He is also a current board member of the Solar Energy Industries Association.

XML 35 R27.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Summary of significant accounting policies (Policies)
6 Months Ended
Jun. 30, 2024
Accounting Policies [Abstract]  
Basis of presentation and principles of consolidation

Basis of presentation and principles of consolidation

The accompanying unaudited condensed consolidated financial statements include the results of the Company and its wholly owned subsidiaries and have been prepared in accordance with accounting principles generally accepted in the United States of America (“U.S. GAAP”) for interim financial statements and pursuant to Form 10-Q and Article 10 of Regulation S-X. In the opinion of management, all adjustments of a normal recurring nature have been made that are considered necessary for a fair statement of our financial position as of June 30, 2024, and December 31, 2023, our results of operations for the three and six months ended June 30, 2024 and 2023, and our cash flows for the six months ended June 30, 2024 and 2023. The condensed consolidated balance sheet as of December 31, 2023 has been derived from the Company’s audited consolidated financial statements but does not include all disclosures required by accounting principles generally accepted in the United States of America. Operating results for the three and six months ended June 30, 2024 are not necessarily indicative of the results that may be expected for the year ending December 31, 2024. Intercompany balances and transactions have been eliminated in consolidation.

Certain information and disclosures normally included in the notes to annual financial statements prepared in accordance with U.S. GAAP have been omitted from these interim financial statements pursuant to the rules and regulations of the Securities and Exchange Commission (the “SEC”). Therefore, these unaudited condensed consolidated financial statements should be read in conjunction with the consolidated financial statements and related notes included in the Company’s Annual Report on Form 10-K for the year ended December 31, 2023 (our "2023 Annual Report").

We currently operate in one business segment, the manufacturing and servicing of solar tracker systems.

Liquidity

Liquidity

We have incurred cumulative losses since inception and have a history of cash outflows from operations. As of June 30, 2024, we had $10.8 million of cash on hand, $33.0 million of working capital and approximately $64.9 million of remaining capacity available for future sales of our common stock under our ATM program as defined and described further in Note 4, "ATM program" below. There can be no assurance that we will be able to sell any additional shares of our common stock under the ATM program and no assurance regarding

the price at which we will be able to sell such shares, and any sales of our common stock under the ATM program may be at prices that result in additional dilution to our existing stockholders.

On December 22, 2023, we received notification from The Nasdaq Stock Market LLC (“Nasdaq”) that we were not in compliance with the requirement to maintain a minimum closing bid price of $1.00 per share, as set forth in Nasdaq Listing Rule 5450(a)(1), because the closing bid price of the Company’s common stock was below $1.00 per share for 30 consecutive business days. In accordance with Nasdaq Listing Rule 5810(c)(3)(A), we were initially given a period of 180 calendar days from the date of notification, or until June 19, 2024, to regain compliance with the minimum bid price requirement, which was not achieved. Effective May 31, 2024, trading in our common stock transferred from the Nasdaq Global Market to the Nasdaq Capital Market. On June 21, 2024, we received notification from Nasdaq that we were approved for an additional 180-day period, or until December 17, 2024, to cure the bid price deficiency in accordance with Nasdaq Listing Rule 5810(c)(3)(A). We are currently evaluating all of our options to achieve compliance with Nasdaq requirements for continued listing, which may include effecting a reverse stock split, if necessary, at least 10 days prior to December 17, 2024. At this time, our common stock continues to trade on the Nasdaq Capital Market under the symbol "FTCI". If at any time before December 17, 2024 the bid price of our common stock closes at or above $1.00 per share for a minimum of ten consecutive business days, Nasdaq will provide written notification that we have achieved compliance with this minimum bid price requirement. If we fail to regain compliance with the minimum bid price requirement during this second 180-day period, then Nasdaq will notify us that our common stock is subject to delisting.

Effective April 30, 2024, our Senior Secured Revolving Credit Facility ("Credit Facility) expired unused and has not been replaced as of June 30, 2024. We continue to evaluate additional opportunities to obtain financing.

At June 30, 2024, we had a contractual obligation that could require us to make additional capital contributions of up to $0.8 million to Alpha Steel, as well as make a minimum level of purchases from Alpha Steel, as described further in Note 3, "Equity method investment" below. In the event we were to fail to meet our minimum required purchase commitments during a specified period, including the current period from January 1, 2024 to June 30, 2025, we may be required to make a cash payment for the net profit attributable to any unfilled requirements, calculated as specified in the agreement, in an amount not to exceed $4.0 million in the aggregate.

The most notable incentive program impacting our U.S. business has historically been the investment tax credit ("ITC") for solar energy projects, which allows taxpayers to offset their U.S. federal income tax liability by a certain percentage of their cost basis in solar energy systems placed in service for commercial use. The Inflation Reduction Act of 2022, passed by the U.S. Congress and signed into law by President Biden on August 16, 2022, expanded and extended the tax credits and other tax benefits available to solar energy projects and the solar energy supply chain. ITCs have been extended for such projects through at least 2032 and, depending on the location of a particular project and its ability to satisfy certain labor and domestic content requirements, the ITC percentage can range between 30% and 50%. U.S. manufacturers of specific solar components are now eligible to claim production tax credits as an alternative to the ITC. Implementing regulations for this law are, in certain cases, still being finalized and the impact of these regulations continue to be evaluated by developers of new solar projects and manufacturers of solar components. Our investment in and commitments made to Alpha Steel will allow us to obtain certain benefits as a result of this new production tax credit program.

We have taken steps to expand and diversify our manufacturing partnerships and have adjusted our modes of transportation to mitigate the impact of headwinds that might arise in the global supply chain and logistics markets. As an example, we modified our ocean freight from previously using charter shipments to now using containerized shipments as costs in the container market began to decrease starting in 2022, but more recently have begun to increase. However, we have been able to mitigate some of this increase as a result of increasing our domestic production capabilities. We continue to monitor the logistics markets and will continue to evaluate our use of various modes of transportation when warranted to optimize our transportation costs. Additionally, from February 2022 to September 2023, we utilized a related-party consulting firm to support us in making improvements to our processes and performance in various areas, including design, sourcing, logistics, pricing, software and our distributed generation business. For further information regarding this consulting firm, see Note 16, "Related party transactions" below. These steps, and others, have allowed us to improve our business processes and lower our product cost structure, thus improving our direct product margins in recent periods. As an example, we generated positive gross profit during each quarter in 2023. Additionally, we have made substantial progress in lowering our operating costs, showing significant improvement since becoming a public company, as well as in comparison to the prior year periods included in this Quarterly Report. These combined factors have allowed us to significantly lower the estimated quarterly revenue level that we believe is required to break even. However, our low revenue levels for the three and six months ended June 30, 2024, have prevented us from continuing to show positive quarterly gross profit in 2024, similar to 2023, as revenues have not been sufficient to fully cover our indirect costs.

Similar to previous periods, we continue to evaluate additional opportunities in 2024 to address existing market challenges, our cost structure and our historical use of cash. In 2023, (i) we introduced a new mounting solution to support the installation and use of

U.S.-manufactured thin-film modules, (ii) Pioneer, our 1P solar tracker solution, became certified, and (iii) we introduced SUNOPS, a cloud-based, tracker agnostic solar asset monitoring solution allowing asset owners and managers to evaluate the operation and performance of their solar deployments. We have continued to enhance our customer offerings in 2024, including the launch of our Automated Hail Stow Solution which is aimed at minimizing solar panel damage caused by hail storms. As described elsewhere in this Quarterly Report, we also have recently added experienced and accomplished leadership talent to head our North America and International sales organizations and have named a new President and Chief Executive Officer with significant experience in the solar industry who will join us on August 19, 2024.

In accordance with Accounting Standards Codification ("ASC") 205-40, Going Concern, we have evaluated whether there are conditions and events, considered in the aggregate, which raise substantial doubt about our ability to continue as a going concern within one year after the date our condensed consolidated financial statements are issued.

Management believes that our existing cash on hand, as well as the continuing impact of certain of the actions described within this memo and our expectations of (i) the expected timing of future customer project activity, including activity related to certain large project awards previously received, and (ii) the positive results in recent periods from our efforts to increase our direct product margins and lower our cost structure, will allow us to grow profitably and generate positive cash flow from operations during the next twelve months in amounts that will be sufficient, along with our other available resources such as our existing working capital and, the remaining capacity available for future sales of our common stock under our ATM program, to fund our operations for at least one year from the date of issuance of our condensed consolidated financial statements.

While there are already many underlying drivers of growth in the solar industry, the expected positive impact on demand for our products from these drivers of growth could take longer than expected to occur because the timing of construction activity by existing customers and solar project developers can be uncertain. As an example, we have experienced in recent periods customer delays caused by interconnection issues, equipment shortages and the timing and ability of obtaining financing at acceptable levels. In addition, domestic and international market conditions, including differences between margins on international and U.S. projects, could deteriorate significantly from what we currently expect, and regulatory and international trade policies could become more stringent as a result of (i) findings from an ongoing investigation by the U.S. Department of Commerce (the Solar Circumvention Investigation") in response to a petition by Auxin Solar, Inc. of claims related to alleged circumvention of U.S. antidumping and countervailing duties ("AD/CVD") by solar manufacturers in certain Southeast Asian countries, (ii) enforcement of the Uyghur Forced Labor Prevention Act ("UFLPA") passed by the U.S. Congress and signed into law by President Biden on December 23, 2021, by U.S. Customs and Border Protection ("CBP"), and (iii) other factors, which may result in a need for us to issue additional debt or obtain new equity financing to adequately fund our existing operations beyond the next twelve months. We continue to actively explore options to obtain additional sources of capital through the issuance of new debt, asset financing or other potential measures for our longer-term needs. However, we may be unable to obtain any desired additional financing on terms favorable to us, or at all, depending on market and other conditions, which could result in curtailment of our current operations and our ability to further invest in our products and new technology. The ability to raise additional financing depends on numerous factors, some of which are outside of our control, including macroeconomic factors such as the impact of inflation, the level of interest rates, supply chain or other effects from the ongoing conflicts in the Ukraine and the Middle East, general market conditions, the health of financial institutions (including recent bankruptcies and financial difficulties involving certain regional banks and related impacts that have occurred and continue to occur in the banking industry), investors' and lenders' assessments of our prospects and the prospects of the solar industry in general and the ability of our common stock to continue to trade in active markets.

Use of estimates

Use of estimates

Preparation of condensed consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements, and the reported revenue and expenses during the period. Estimates are used for calculating the measure of progress of our solar tracker projects and deriving the standalone selling prices of the individual performance obligations when determining amounts to recognize for revenue, estimating allowances for credit losses and slow-moving and obsolete inventory, determining useful lives of long-lived assets and the estimated fair value of those assets for impairment assessments, and estimating the fair value of investments, stock compensation awards, warranty liabilities and federal and state taxes, including tax valuation allowances, as well as other contingencies. We base our estimates on historical experience and anticipated results, trends, and various other assumptions that we believe are reasonable under the circumstances, including assumptions as to future events. Actual results could differ from those estimates due to risks and uncertainties.

Concentration of credit risk

Concentration of credit risk

Financial instruments that potentially subject the Company to concentrations of credit risk are primarily cash and accounts receivable.

We regularly maintain cash balances with various financial institutions that exceed federally insured amounts, but we have experienced no losses associated with these amounts to date. We also took action in early 2023 to reallocate cash balances between different financial institutions based on our assessment as to the financial health of certain institutions.

We extend credit to customers in the normal course of business, often without requiring collateral. We also perform credit analyses and monitor the financial health of our customers to reduce credit risk.

The Company’s accounts receivables are derived from revenue earned from customers primarily located in the U.S. and Australia. No countries other than the U.S. and Australia accounted for 10% or more of our revenue. Most of our customers are project developers, solar asset owners and engineering, procurement and construction (“EPC”) contractors that design and build solar energy projects. We typically rely on a small number of customers that account for a large portion of our revenue each period and our outstanding receivables at each period end.

Cash and cash equivalents

Cash and cash equivalents

We consider all highly liquid investments purchased with an original maturity of three months or less to be cash equivalents. Certain of our cash equivalents include deposits in money market funds that invest primarily in short-term securities issued or guaranteed by the U.S. government or its agencies or instrumentalities and contain no restrictions on immediate redemption. These deposits totaled $5.9 million at June 30, 2024 and $13.9 million at December 31, 2023. Interest earned on cash equivalents is included in interest income, which is reported net of interest expense in our condensed consolidated statements of comprehensive loss.

Accounts receivable, net

Accounts receivable, net

Trade receivables are recorded at invoiced amounts, net of allowances for credit losses, and do not bear interest. We generally do not require collateral from our customers; however, in certain circumstances, we may require letters of credit, other collateral, additional guarantees or advance payments.

The allowance for credit losses is based on the lifetime expected credit loss of our customer accounts. To assess the lifetime expected credit loss, we utilize a loss rate method that takes into consideration historical experience and certain other factors, as appropriate, such as credit quality and current economic or other conditions that may affect a customer's ability to pay. Provisions for credit losses are included as a component of our selling and marketing expenses.

Receivables arising from revenue recognized in excess of billings represents our unconditional right to consideration before customers are invoiced due to the level of progress obtained as of period end on our contracts to procure and deliver tracker systems and related equipment. Further information may be found below in our revenue recognition policy.

Inventories, net

Inventories

Inventories are stated at the lower of cost or net realizable value, with costs computed on a first-in, first-out basis. The Company periodically reviews its inventories for excess and obsolete items and adjusts carrying costs to estimated net realizable values when they are determined to be less than cost.

Impairment

Impairment

We review our long-lived assets that are held for use for impairment whenever events or changes in circumstances indicate that the carrying amount of the asset may not be recoverable or that its useful life may be shorter than previously expected. If such impairment indicators are present or other factors exist that indicate the carrying amount of the asset may not be recoverable, we determine whether an impairment has occurred through the use of an undiscounted cash flow analysis of the asset at the lowest level for which identifiable cash flows exist. If an impairment has occurred, we recognize a loss for the difference between the carrying amount and the fair value of the asset, which in most cases is estimated based upon Level 3 unobservable inputs. If the asset is determined to have a remaining useful life shorter than previously expected, an adjustment for the shorter remaining life will be made for purposes of recognizing future depreciation

expense. Assets are classified as held for sale when we have a plan, approved by the appropriate levels of management, for disposal of such assets, as well as other considerations, and those assets are stated at the lower of carrying value or estimated fair value less estimated costs to sell.

Intangible assets, net

Intangible assets, net

Intangible assets are recorded at fair value when acquired in connection with a business combination and consist of developed technology in the form of software tools, licenses, and intellectual property, which are amortized over the period of their estimated useful lives, generally 2.5 - 3.0 years, using the straight-line method. Costs incurred to renew or extend the term of a recognized intangible asset, if any, are expensed as incurred. We evaluate intangible assets for impairment using the method described above under "Impairment".

Goodwill

Goodwill

We recognize goodwill as the excess of the purchase price over the estimated fair value of the identified assets and liabilities acquired in a business combination accounted for using the acquisition method. Goodwill is not amortized but is subject to a periodic assessment for impairment at least annually, or whenever events and circumstances indicate an impairment may exist. Our assessments may include qualitative factors such as current or expected industry and market conditions, our overall financial performance, share price trends, market capitalization and other company-specific events.

We operate in one segment, being the consolidated entity, which we have also determined is the reporting unit for goodwill impairment.

No impairment of goodwill was recognized as of June 30, 2024 or 2023.

Equity method investments

Equity method investment

We use the equity method of accounting for investments in which we have the ability to exercise significant influence, but not control, over operating and financial policies of the investee. Our proportionate share of the net income or loss of these investees is included in our condensed consolidated statements of comprehensive loss. Judgment regarding the level of influence over each equity method investment includes considering key factors such as our ownership interest, legal form of the investee, representation on the board of directors or managers, participation in policy-making decisions and material intra-entity transactions.

We account for distributions received from equity method investees under the “nature of the distribution” approach based on the nature of the activity or activities of the investee that generated the distribution as either a return on investment (classified as cash inflows from operating activities) or a return of investment (classified as cash inflows from investing activities).

We evaluate equity method investments for impairment whenever events or changes in circumstances indicate that the carrying amount of the investment might not be recoverable. Factors considered by the Company when reviewing an equity method investment for impairment include the length of time and the extent to which the fair value of the equity method investment has been less than its cost, the investee’s financial condition and near-term prospects and the intent and ability to hold the investment for a period of time sufficient to allow for anticipated recovery. An impairment that is other-than temporary is recognized in the period identified.

We made an accounting policy election that, upon the sale of our equity method investments, we will recognize contractual contingent gains arising from earnout provisions and project escrow releases when such amounts are realizable in periods subsequent to the disposal date.

Warranty

Warranty

Typically, the sale of solar tracker projects includes parts warranties to customers as part of the overall price of the product. We provide standard assurance type warranties for our products for periods generally ranging from five to ten years. We also accrue for costs relating to remediation efforts involving product issues we believe require correction. We record a provision for estimated warranty and remediation expenses in cost of sales, net of amounts recoverable from manufacturers under their warranty obligations to us. When historical claims information relating to our equipment is not sufficient, we will base our estimates on industry studies involving the nature and frequency of product failure rates for similar parts used by our competitors, as well as other related businesses. We do not maintain general

or unspecified reserves; all warranty reserves are related to specific projects. All actual or estimated material costs incurred for warranty or remediation services in subsequent periods are charged to those established reserves.

While we periodically monitor our warranty activities and claims, if actual costs incurred were to be different from our estimates, we would recognize adjustments to our warranty reserves in the period in which those differences arise or are identified.

Stock-based compensation

Stock-based compensation

We recognize compensation expense for all share-based payment awards made, including stock options and restricted stock units ("RSUs"), based on the estimated fair value of the award on the grant date. We calculate the fair value of stock options using the Black-Scholes option pricing model for awards with service-based vesting or through use of a lattice model or a Monte Carlo simulation for stock option and RSU awards with market conditions. The fair value of RSUs with service or performance-based vesting is based on the estimated fair value of the Company's common stock on the date of grant. We consider the closing price of our stock, as reported on the Nasdaq Capital Market, to be the fair value of our stock on the grant date.

Forfeitures are accounted for as they occur. For service-based awards, stock-based compensation is recognized using the straight-line attribution approach over the requisite service period. For performance-based awards, stock-based compensation is recognized based on graded vesting over the requisite service period when the performance condition is probable of being achieved. Stock compensation expense for market-based awards is recognized over the derived service period determined in the valuation model, inclusive of any vesting conditions.

Revenue recognition

Revenue recognition

Product revenue is derived from the sale of solar tracker systems and customized components for those systems, individual part sales for certain specific transactions and the sale of term-based software licenses. Term-based licensed software is deployed on the customers’ own servers and has significant standalone functionality.

Service revenue includes revenue from shipping and handling services, engineering consulting and pile testing services, our subscription-based enterprise licensing model and maintenance and support services in connection with the term-based software licenses. Our subscription-based enterprise licensing model typically has contract terms ranging from one to two years and consists of subscription fees from the licensing of subscription services. Our hosted on-demand service arrangements do not provide customers with the right to take possession of the software supporting the hosted services. Support services include ongoing security updates, upgrades, bug fixes, and maintenance.

We recognize revenue when promised goods or services are transferred to customers in an amount that reflects the consideration to which we expect to be entitled to in exchange for those goods or services by following a five-step process: (1) identify the contract with a customer, (2) identify the performance obligations in the contract, (3) determine the transaction price, (4) allocate the transaction price to the performance obligations in the contract, and (5) recognize revenue when or as the Company satisfies a performance obligation, as further described below.

Identify the contract with a customer: A contract with a customer exists when (i) the Company enters into an enforceable contract with a customer that defines each party’s rights regarding the products and services to be transferred and identifies the payment terms related to these products and services, (ii) the contract has commercial substance, and (iii) the Company determines that collection of substantially all consideration for products and services that are transferred is probable based on the customer’s intent and ability to pay the promised consideration. In assessing the recognition of revenue, we also evaluate whether two or more contracts should be combined and accounted for as one contract and if the combined or single contract should be accounted for as multiple performance obligations which could change the amount of revenue and profit (loss) recorded in a period. Change orders may include changes in specifications or design, manner of performance, equipment, materials, scope of work, and/or the period of completion of the project. We analyze change orders to determine if they should be accounted for as a modification to an existing contract or a new stand-alone contract.

Contracts we enter into with our customers for sale of solar tracker systems are generally under two different types of arrangements: (1) purchase agreements and equipment supply contracts (“Purchase Agreements”), and (2) sale of individual parts for those systems.

Change orders from our customers are generally modifications to existing contracts and are included in the total estimated contract revenue when it is probable that the change order will result in additional value that can be reliably estimated and realized.

Identify the performance obligations in the contract: We enter into contracts that can include various combinations of products and services, which are either capable of being distinct and accounted for as separate performance obligations or as one performance obligation since the majority of tasks and services are part of a single project or capability. However, determining whether products or services are considered distinct performance obligations that should be accounted for separately versus together may sometimes require significant judgment.

Our Purchase Agreements typically include two performance obligations: 1) our solar tracker systems or customized components of those systems, and 2) shipping and handling services. The deliverables included as part of our solar tracker systems are predominantly accounted for as one performance obligation, as these deliverables are part of a combined promise to deliver a project.

The revenue for shipping and handling services will be recognized over time based on progress in meeting shipping terms of the arrangements, as this faithfully depicts the Company’s performance in transferring control. Revenue for stand-alone engineering consulting and pile testing services is recognized at a point in time upon completion of the services performed.

Sales of individual parts of our solar tracker systems for certain specific transactions include multiple performance obligations consisting of individual parts of those systems. Revenue is recognized for parts sales at a point in time when the obligations under the terms of the contract with our customer are satisfied. Generally, this occurs with the transfer of control of the asset, which is in line with shipping terms.

Determine the transaction price: The transaction price is determined based on the consideration to which we will be entitled in exchange for transferring services to the customer. Such amounts are typically stated in the customer contract, and to the extent that we identify variable consideration, we will estimate the variable consideration at the onset of the arrangement as long as it is probable that a significant reversal in the amount of cumulative revenue recognized will not occur when the uncertainty associated with the variable consideration is subsequently resolved. The majority of our contracts do not contain variable consideration provisions as a continuation of the original contract. None of our contracts contain a significant financing component. Taxes collected from customers and remitted to governmental authorities are not included in revenue.

Allocate the transaction price to performance obligations in the contract: Once we have determined the transaction price, we allocate the total transaction price to each performance obligation in a manner depicting the amount of consideration to which we expect to be entitled in exchange for transferring the good(s) or service(s) to the customer. We allocate the transaction price to each performance obligation identified in the contract on a relative standalone selling price basis.

We use the expected cost-plus margin approach based on hardware, labor, and related overhead cost to estimate the standalone selling price of our solar tracker systems, customized components of those systems, and individual parts for certain specific transactions. We also use the expected cost-plus margin approach based on expected third-party shipping and transportation costs to estimate the standalone selling price of our shipping, handling and logistics performance obligations. We use the adjusted market assessment approach for all other performance obligations.

Recognize revenue when or as the Company satisfies a performance obligation: For each performance obligation identified, we determine at contract inception whether we satisfy the performance obligation over time or at a point in time. The performance obligations in the contracts for our solar tracker systems and customized components of those systems are satisfied over time as work progresses, utilizing an input measure of progress determined by cost-to-cost measures on these projects as this faithfully depicts our performance in transferring control. Additionally, our performance does not create an asset with an alternative use, due to the highly customized nature of the product, and we have an enforceable right to payment for performance completed to date. Our performance obligations for individual part sales for certain specific transactions are recognized at a point in time as and when control transfers based on the terms for the contract. Our performance obligations for engineering consulting and pile testing services are recognized at a point in time upon completion of the services. Our performance obligations for term-based software licenses are recognized at a point in time as and when control transfers, either upon delivery to the customer or the software license start date, whichever is later. Our performance obligations for shipping and handling services are satisfied over time as the services are delivered over the term of the contract. We recognize revenue for subscription and other services on a straight-line basis over the contract period. With regard to support revenue, a time-elapsed method is used to measure progress because we transfer control evenly over the contractual period. Accordingly, the fixed consideration related to support revenue is generally recognized on a straight-line basis over the contract term.

Contract assets and liabilities: The timing of revenue recognition, billing, and cash collection results in the recognition of accounts receivable, unbilled receivables for revenue recognized in excess of billings, and deferred revenue in the condensed consolidated balance sheets. We have elected to use the practical expedient of expensing incremental costs of obtaining a contract as incurred since the majority

of the performance obligations in our contracts are satisfied in less than one year. We may receive advances or deposits from our customers before revenue is recognized, resulting in contract liabilities, which are reflected as “deferred revenue” in our condensed consolidated balance sheets. Customer deposits are short term as the related performance obligations are typically fulfilled within 12 months. Changes in deferred revenue relate to fluctuations in the timing of customer deposits and completion of performance obligations. Revenue recognized during the three and six months ended June 30, 2024, from amounts included in deferred revenue at December 31, 2023, totaled $0.2 million and $2.5 million, respectively. Revenue recognized during the three and six months ended June 30, 2023, from amounts included in deferred revenue at December 31, 2022, totaled $1.7 million and $9.3 million, respectively.

Cost of revenue consists primarily of costs related to raw materials, equipment manufacturing activities, freight and delivery, product warranty, remediation and personnel costs (salaries, bonuses, benefits, and stock-based compensation). Personnel costs in cost of revenue include both direct labor costs, as well as costs attributable to any individuals whose activities relate to the procurement, installment and delivery of the finished product and services. Cost of revenue owed but not yet paid is recorded as accrued cost of revenue in the accompanying condensed consolidated balance sheets. Deferred cost of revenue, a component of our prepaid and other current assets, results from the timing differences between the costs incurred in advance of the satisfaction of all revenue recognition criteria consistent with our revenue recognition policy.

Recent accounting and regulatory pronouncements not yet adopted

Recent accounting and regulatory pronouncements not yet adopted

In November 2023, the Financial Accounting Standards Board ("FASB") issued ASU No. 2023-07 - Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures ("ASU 2023-07"), which will become effective for us for our year end 2024 financial reporting and our interim reporting beginning January 1, 2025. ASU 2023-07 requires public companies to disclose significant segment expenses and other segment items on an annual and interim basis and will require interim disclosures about a reportable segment's profit or loss and assets that are currently required annually. As noted above, we operate in one segment. We are currently evaluating the impact of ASU 2023-07 on our existing disclosures. ASU 2023-07 will be applied retrospectively to all periods when presented in our consolidated financial statements for the year ending December 31, 2024.

In December 2023, the FASB issued ASU No. 2023-09 - Income Taxes (Topic 740): Improvements to Income Tax Disclosures ("ASU 2023-09"). ASU 2023-09 requires companies to disclose (i) additional categories of information about federal, state and foreign income taxes above a quantitative threshold in their rate reconciliation table and (ii) income taxes paid, net of refunds, disaggregated by federal, state and foreign taxes for annual periods, as well as other disclosure changes. As an emerging growth company, we are not required to adopt ASU 2023-09 prior to 2026, although earlier adoption is permitted. We are currently evaluating the impact of ASU 2023-09 on our existing income tax disclosures.

In March 2024, the U.S. Securities and Exchange Commission ("SEC") adopted the final rule under SEC Release No. 33-11275, The Enhancement and Standardization of Climate-Related Disclosures for Investors. This rule would require registrants to disclose certain climate-related information in registration statements and annual reports. In April 2024, the SEC issued a stay of the final rules pending a judicial review of the validity of the rules by the Eighth Circuit Court of Appeals. We are currently evaluating the final rule to determine its impact on our disclosures.

Other standards or regulatory requirements that have been issued but not yet adopted as of June 30, 2024, are either not applicable to us or are not expected to have any material impact upon adoption.

Reclassifications

Reclassifications

Certain prior year amounts have been reclassified to conform to the current year presentation. There was no impact on our financial condition or results of operations as a result of the reclassification.

XML 36 R28.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Accounts receivable, net (Tables)
6 Months Ended
Jun. 30, 2024
Accounts Receivable, after Allowance for Credit Loss [Abstract]  
Schedule of accounts receivable, net

Accounts receivable consisted of the following:

(in thousands)

 

June 30, 2024

 

 

December 31, 2023

 

Trade receivables

 

$

22,006

 

 

$

46,152

 

Related party receivables

 

 

2,564

 

 

 

868

 

Revenue recognized in excess of billings

 

 

17,169

 

 

 

26,813

 

Other receivables

 

 

4

 

 

 

3

 

Total

 

 

41,743

 

 

 

73,836

 

Allowance for credit losses

 

 

(232

)

 

 

(8,557

)

Accounts receivable, net

 

$

41,511

 

 

$

65,279

 

Schedule of Accounts Receivable Allowance for Credit Loss

Activity in the allowance for credit losses during the three and six months ended June 30, 2024 and 2023 was as follows:

 

 

Three months ended June 30,

 

 

Six months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

2024

 

 

2023

 

Balance at beginning of period

 

$

9,227

 

 

$

1,184

 

 

$

8,557

 

 

$

1,184

 

Impact of adoption of ASU 2016-13, effective January 1, 2023

 

N/A

 

 

N/A

 

 

N/A

 

 

 

 

Amounts charged (credited) to earnings during the period

 

 

(83

)

 

 

203

 

 

 

587

 

 

 

203

 

Write-offs of accounts

 

 

(8,912

)

 

 

 

 

 

(8,912

)

 

 

 

Balance at end of period

 

$

232

 

 

$

1,387

 

 

$

232

 

 

$

1,387

 

 

 

 

 

 

 

 

 

 

 

 

 

 

XML 37 R29.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Inventories, net (Tables)
6 Months Ended
Jun. 30, 2024
Inventory Disclosure [Abstract]  
Schedule of Inventories

Inventories consisted of the following:

(in thousands)

 

June 30, 2024

 

 

December 31, 2023

 

Finished goods

 

$

17,576

 

 

$

4,246

 

Allowance for slow-moving and obsolete inventory

 

 

(515

)

 

 

(341

)

Total

 

$

17,061

 

 

$

3,905

 

XML 38 R30.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Prepaid and other current assets (Tables)
6 Months Ended
Jun. 30, 2024
Prepaid Expense and Other Assets, Current [Abstract]  
Schedule of prepaid and other current assets

Prepaid and other current assets consisted of the following:

(in thousands)

 

June 30, 2024

 

 

December 31, 2023

 

Vendor deposits

 

$

6,605

 

 

$

5,667

 

Vendor deposits with related party

 

 

1,974

 

 

 

520

 

Prepaid expenses

 

 

1,016

 

 

 

1,251

 

Prepaid taxes

 

 

545

 

 

 

447

 

Deferred cost of revenue

 

 

620

 

 

 

666

 

Surety collateral

 

 

7

 

 

 

 

Other current assets

 

 

4,202

 

 

 

5,538

 

Total

 

$

14,969

 

 

$

14,089

 

XML 39 R31.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Leases (Tables)
6 Months Ended
Jun. 30, 2024
Leases [Abstract]  
Summary of Lease Expense

Our expense for our operating leases consisted of the following:

 

 

Three months ended June 30,

 

 

Six months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

2024

 

 

2023

 

Operating lease cost

 

$

300

 

 

$

268

 

 

$

609

 

 

$

497

 

Short-term lease cost

 

 

111

 

 

 

110

 

 

 

204

 

 

 

202

 

Total lease cost

 

$

411

 

 

$

378

 

 

$

813

 

 

$

699

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Reported in:

 

 

 

 

 

 

 

 

 

 

 

 

Cost of revenue

 

$

259

 

 

$

250

 

 

$

495

 

 

$

465

 

Research and development

 

 

14

 

 

 

11

 

 

 

28

 

 

 

26

 

Selling and marketing

 

 

39

 

 

 

23

 

 

 

87

 

 

 

38

 

General and administrative

 

 

99

 

 

 

94

 

 

 

203

 

 

 

170

 

Total lease cost

 

$

411

 

 

$

378

 

 

$

813

 

 

$

699

 

Summary of Future Remaining Lease Payments Obligations

Future remaining operating lease payment obligations were as follows:

(in thousands)

 

June 30,
2024

 

Remainder of 2024

 

$

465

 

2025

 

 

884

 

2026

 

 

313

 

2027

 

 

291

 

2028

 

 

157

 

Total lease payments

 

 

2,110

 

Less: imputed interest

 

 

(146

)

Present value of operating lease liabilities

 

$

1,964

 

 

 

 

 

Current portion of operating lease liability

 

$

857

 

Operating lease liability, net of current portion

 

 

1,107

 

Present value of operating lease liabilities

 

$

1,964

 

XML 40 R32.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Property and equipment, net (Tables)
6 Months Ended
Jun. 30, 2024
Property, Plant and Equipment [Abstract]  
Schedule of property and equipment

Property and equipment consisted of the following:

(in thousands)

 

June 30, 2024

 

 

December 31, 2023

 

Leasehold improvements

 

$

338

 

 

$

157

 

Field equipment

 

 

1,108

 

 

 

1,062

 

Information technology equipment

 

 

574

 

 

 

466

 

Tooling

 

 

1,732

 

 

 

1,014

 

Capitalized software

 

 

848

 

 

 

734

 

Total

 

 

4,600

 

 

 

3,433

 

Accumulated depreciation

 

 

(2,154

)

 

 

(1,610

)

Property and equipment, net

 

$

2,446

 

 

$

1,823

 

XML 41 R33.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Intangible assets, net and goodwill (Tables)
6 Months Ended
Jun. 30, 2024
Goodwill and Intangible Assets Disclosure [Abstract]  
Summary of intangible assets

Intangible assets consisted of the following:

(in thousands)

 

Estimated Useful Lives (Years)

 

June 30, 2024

 

 

December 31, 2023

 

Developed technology

 

2.5 3.0

 

$

2,520

 

 

$

2,555

 

Total

 

 

 

 

2,520

 

 

 

2,555

 

Accumulated amortization

 

 

 

 

(2,256

)

 

 

(2,013

)

Intangible assets, net

 

 

 

$

264

 

 

$

542

 

Schedule of goodwill activity

During the six months ended June 30, 2024 and 2023, activity in our goodwill balance was as follows:

 

 

 

 

Six months ended June 30,

 

(in thousands)

 

 

 

2024

 

 

2023

 

Balance at beginning of period

 

 

 

$

7,353

 

 

$

7,538

 

Translation

 

 

 

 

(184

)

 

 

(365

)

Balance at end of period

 

 

 

$

7,169

 

 

$

7,173

 

XML 42 R34.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Accrued Expenses and Other Current Liabilities (Tables)
6 Months Ended
Jun. 30, 2024
Accrued Expenses and Other Current Liabilities [Abstract]  
Schedule of Accrued Expenses and Other Current Liabilities

Accrued expenses and other current liabilities consisted of the following:

(in thousands)

 

June 30, 2024

 

 

December 31, 2023

 

Accrued cost of revenue

 

$

16,260

 

 

$

26,773

 

Related party accrued cost of revenue

 

 

657

 

 

 

1,451

 

Accrued compensation

 

 

3,435

 

 

 

3,858

 

Other accrued expenses

 

 

2,483

 

 

 

2,766

 

Total accrued expenses

 

$

22,835

 

 

$

34,848

 

 

 

 

 

 

 

 

Warranty reserves

 

$

7,264

 

 

$

7,279

 

Current portion of operating lease liability

 

 

857

 

 

 

740

 

Non-federal tax obligations

 

 

81

 

 

 

119

 

Total other current liabilities

 

$

8,202

 

 

$

8,138

 

Schedule of warranty accruals

Activity by period in the Company's warranty accruals was as follows:

 

 

Three months ended June 30,

 

 

Six months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

2024

 

 

2023

 

Balance at beginning of period

 

$

10,472

 

 

$

12,557

 

 

$

11,002

 

 

$

12,426

 

Warranties issued and remediation added during the period

 

 

801

 

 

 

1,309

 

 

 

1,639

 

 

 

2,852

 

Settlements made during the period

 

 

(443

)

 

 

(1,234

)

 

 

(1,292

)

 

 

(2,337

)

Changes in liability for pre-existing warranties

 

 

(415

)

 

 

(551

)

 

 

(934

)

 

 

(860

)

Balance at end of period

 

$

10,415

 

 

$

12,081

 

 

$

10,415

 

 

$

12,081

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Warranty accruals are reported in:

 

 

 

 

 

 

 

 

 

 

 

 

Other current liabilities

 

$

7,264

 

 

$

7,791

 

 

$

7,264

 

 

$

7,791

 

Other non-current liabilities

 

 

3,151

 

 

 

4,290

 

 

 

3,151

 

 

 

4,290

 

Balance at end of period

 

$

10,415

 

 

$

12,081

 

 

$

10,415

 

 

$

12,081

 

 

 

 

 

 

 

 

 

 

 

 

 

 

XML 43 R35.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Stock-based Compensation (Tables)
6 Months Ended
Jun. 30, 2024
Share-Based Payment Arrangement [Abstract]  
Schedule of Stock compensation expense

Stock compensation expense for each period was as follows:

 

 

Three months ended June 30,

 

 

Six months ended June 30,

 

(in thousands)

 

2024

 

 

2023

 

 

2024

 

 

2023

 

Cost of revenue

 

$

240

 

 

$

316

 

 

$

456

 

 

$

1,132

 

Research and development

 

 

93

 

 

 

115

 

 

 

174

 

 

 

364

 

Selling and marketing

 

 

114

 

 

 

271

 

 

 

158

 

 

 

655

 

General and administrative

 

 

838

 

 

 

2,260

 

 

 

2,136

 

 

 

5,701

 

Total stock compensation expense

 

$

1,285

 

 

$

2,962

 

 

$

2,924

 

 

$

7,852

 

XML 44 R36.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Net Loss Per Share (Tables)
6 Months Ended
Jun. 30, 2024
Earnings Per Share [Abstract]  
Schedule of Computation of Basic and Diluted Income (Loss) Per Share

 

 

Three months ended June 30,

 

 

Six months ended June 30,

 

 

2024

 

 

2023

 

 

2024

 

 

2023

 

Net loss (in thousands)

 

$

(12,241

)

 

$

(10,414

)

 

$

(21,012

)

 

$

(22,176

)

Weighted average shares outstanding for calculating basic and diluted loss per share

 

 

126,171,278

 

 

 

112,669,296

 

 

 

125,816,080

 

 

 

109,632,336

 

Basic and diluted loss per share

 

$

(0.10

)

 

$

(0.09

)

 

$

(0.17

)

 

$

(0.20

)

 

 

 

 

 

 

 

 

 

 

 

 

 

Schedule of Antidilutive Securities Excluded from Computation of Diluted Net Income Per Share

For purposes of computing diluted loss per share, weighted average common shares outstanding do not include potentially dilutive securities that are anti-dilutive, as shown below.

 

 

For the three and six months ended June 30,

 

 

 

2024

 

 

2023

 

Anti-dilutive securities excluded from calculating dilutive loss per share:

 

 

 

 

 

 

Shares of common stock issuable under stock option plans outstanding

 

 

2,386,293

 

 

 

6,505,638

 

Shares of common stock issuable upon vesting of RSUs

 

 

11,521,675

 

 

 

9,124,189

 

Potential common shares excluded from diluted net loss per share calculation

 

 

13,907,968

 

 

 

15,629,827

 

XML 45 R37.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Summary of Significant Accounting Policies - Additional Information (Details)
$ / shares in Units, $ in Thousands
3 Months Ended 6 Months Ended
Dec. 22, 2023
Days
$ / shares
Aug. 16, 2022
Jun. 30, 2024
USD ($)
$ / shares
Jun. 30, 2023
USD ($)
Jun. 30, 2024
USD ($)
$ / shares
Jun. 30, 2023
USD ($)
Dec. 31, 2023
USD ($)
$ / shares
Sep. 14, 2022
USD ($)
Accumulated deficit     $ (320,147)   $ (320,147)   $ (299,135)  
Net cash used in operating activities         15,635 $ 30,809    
Cash     10,800   10,800      
Working capital     33,000   33,000      
Common stock, reserved for future issuance, value     $ 64,900   $ 64,900      
Consecutive business days | Days 30              
Description of closing bid pric of our common stock         our common stock continues to trade on the Nasdaq Capital Market under the symbol "FTCI". If at any time before December 17, 2024 the bid price of our common stock closes at or above $1.00 per share for a minimum of ten consecutive business days, Nasdaq      
Concentrations of credit risk, percentage     10.00%   10.00%      
Warranty description         We provide standard assurance type warranties for our products for periods generally ranging from five to ten years.      
Impairment of goodwill         $ 0 0    
Revenue recognized included in deferred revenue     $ 200 $ 1,700 $ 2,500 9,300    
Common stock, par value | $ / shares     $ 0.0001   $ 0.0001   $ 0.0001  
Money Market Funds, at Carrying Value     $ 5,900   $ 5,900   $ 13,900  
Stock based compensation expense     1,285 2,962 2,924 7,852    
General and administrative     6,010 $ 8,843 12,577 $ 19,642    
ATM Program [Member]                
Common stock, reserved for future issuance, value     $ 64,900   $ 64,900      
Common Stock Value Authorized               $ 100,000
Minimum [Member]                
Closing bid price | $ / shares $ 1              
Investment tax credit, percentage   30.00%            
Intangible assets, estimated useful life     2 years 6 months   2 years 6 months      
Product warranty life         5 years      
Subscription revenue contract terms         1 year      
Maximum [Member]                
Investment tax credit, percentage   50.00%            
Intangible assets, estimated useful life     3 years   3 years      
Product warranty life         10 years      
Subscription revenue contract terms         2 years      
Maximum [Member] | Alpha Steel                
Additional capital contribution         $ 800      
XML 46 R38.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Equity method investment - Additional Information (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jul. 28, 2023
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
Dec. 31, 2023
Feb. 09, 2023
Schedule of Equity Method Investments [Line Items]              
Loss from unconsolidated subsidiary   $ (246) $ 0 $ (511) $ 0    
Placing Purchase Orders       Pursuant to the Supply Agreement, we have committed to placing a minimum level of purchase orders for torque tubes with Alpha Steel during the period from January 1, 2024 to June 30, 2025, with such volume commitments increasing in each of the next two annual periods.      
Net Profit Attributable       $ 4,000      
Purchase Obligation Percentage   7.00%   7.00%      
Taihua New Energy [Member]              
Schedule of Equity Method Investments [Line Items]              
Ownership percentage             51.00%
DAYV LLC [Member]              
Schedule of Equity Method Investments [Line Items]              
Ownership percentage             4.00%
Alpha Steel              
Schedule of Equity Method Investments [Line Items]              
Additional Interest Rate Above Prime 2.00%            
Ownership percentage             45.00%
Capital Contribution           $ 900  
Additional capital contributions       $ 1,800      
Potential Future Capital Contributions   $ 800   800      
Loss from unconsolidated subsidiary   200 $ 0 500 $ 0    
Liability For Unpaid Claims And Claims Adjustment Expense   $ 900   $ 900      
XML 47 R39.htm IDEA: XBRL DOCUMENT v3.24.2.u1
ATM Program - Additional Information (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2023
Mar. 31, 2023
Jun. 30, 2024
Jun. 30, 2023
Sep. 14, 2022
Subsidiary, Sale of Stock [Line Items]          
Issuance of common stock, value $ 17,348 $ 6,292      
Proceeds from common stock     $ 0 $ 20,640  
Common stock, reserved for future issuance, value     64,900    
ATM Program [Member]          
Subsidiary, Sale of Stock [Line Items]          
Common stock, value authorized         $ 100,000
Issuance of common stock (in shares) 6,589,000     9,272,000  
Issuance of common stock, value $ 17,900     $ 24,400  
Proceeds from common stock $ 17,300     23,600  
Sale of common stock       $ 3,000  
Common stock, reserved for future issuance, value     $ 64,900    
XML 48 R40.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Accounts receivable, net - Schedule of Accounts Receivable, Net (Details) - USD ($)
$ in Thousands
Jun. 30, 2024
Mar. 31, 2024
Dec. 31, 2023
Jun. 30, 2023
Mar. 31, 2023
Dec. 31, 2022
Accounts Receivable, after Allowance for Credit Loss [Abstract]            
Trade receivables $ 22,006   $ 46,152      
Related party receivables 2,564   868      
Revenue recognized in excess of billings 17,169   26,813      
Other receivables 4   3      
Total 41,743   73,836      
Allowance for credit losses (232) $ (9,227) (8,557) $ (1,387) $ (1,184) $ (1,184)
Accounts receivable, net $ 41,511   $ 65,279      
XML 49 R41.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Accounts Receivable Allowance For Credit Loss - Details (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
Accounts Receivable, after Allowance for Credit Loss [Abstract]        
Balance at beginning of period $ 9,227 $ 1,184 $ 8,557 $ 1,184
Impact of adoption of ASU 2016-13, effective January 1, 2023       0
Amounts charged (credited) to earnings during the period (83) 203 587 203
Write-offs of accounts (8,912) 0 (8,912) 0
Balance at end of period $ 232 $ 1,387 $ 232 $ 1,387
XML 50 R42.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Accounts receivable, net - Additional Information (Details) - USD ($)
$ in Thousands
Apr. 03, 2024
Jun. 30, 2024
Mar. 31, 2024
Dec. 31, 2023
Jun. 30, 2023
Mar. 31, 2023
Dec. 31, 2022
Collaborative Arrangement and Arrangement Other than Collaborative [Line Items]              
Retainage provisions included in receivables   $ 600   $ 900      
Allowance for credit losses   $ 232 $ 9,227 $ 8,557 $ 1,387 $ 1,184 $ 1,184
Major Customers [Member]              
Collaborative Arrangement and Arrangement Other than Collaborative [Line Items]              
Trade Accounts Receivable Balance From Major Customer $ 30,800            
Fair value of retained equipment 13,200            
Cash payments 9,000            
Allowance for credit losses $ 8,900            
XML 51 R43.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Inventories, net - Schedule of inventories (Details) - USD ($)
$ in Thousands
Jun. 30, 2024
Dec. 31, 2023
Inventory Disclosure [Abstract]    
Finished goods $ 17,576 $ 4,246
Allowance for slow-moving and obsolete inventory (515) (341)
Total $ 17,061 $ 3,905
XML 52 R44.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Prepaid and other current assets - Schedule of Prepaid and other current assets (Details) - USD ($)
$ in Thousands
Jun. 30, 2024
Dec. 31, 2023
Prepaid Expense and Other Assets, Current [Abstract]    
Vendor deposits $ 6,605 $ 5,667
Vendor deposits with related party 1,974 520
Prepaid expense 1,016 1,251
Prepaid taxes 545 447
Deferred cost of revenue 620 666
Surety collateral 7 0
Other current assets 4,202 5,538
Total $ 14,969 $ 14,089
XML 53 R45.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Prepaid and other current assets (Additional Information) (Details)
$ in Millions
Jun. 30, 2024
USD ($)
Prepaid Expense and Other Assets, Current [Abstract]  
Short term non-interest-bearing customer advance $ 2.0
XML 54 R46.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Leases - Summary of Lease Expense (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
Lessee, Lease, Description [Line Items]        
Operating lease cost $ 300 $ 268 $ 609 $ 497
Short-term lease cost 111 110 204 202
Total lease cost 411 378 813 699
Cost of revenue [Member]        
Lessee, Lease, Description [Line Items]        
Total lease cost 259 250 495 465
Research and development [Member]        
Lessee, Lease, Description [Line Items]        
Total lease cost 14 11 28 26
Selling and marketing [Member]        
Lessee, Lease, Description [Line Items]        
Total lease cost 39 23 87 38
General and administrative [Member]        
Lessee, Lease, Description [Line Items]        
Total lease cost $ 99 $ 94 $ 203 $ 170
XML 55 R47.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Leases - Summary of Future Remaining Lease Payments Obligations (Details) - USD ($)
$ in Thousands
Jun. 30, 2024
Dec. 31, 2023
Lessee, Operating Lease, Liability, to be Paid, Fiscal Year Maturity [Abstract]    
Remainder of 2024 $ 465  
2025 884  
2026 313  
2027 291  
2028 157  
Total lease payments 2,110  
Less imputed interest (146)  
Current portion of operating lease liability 857 $ 740
Operating lease liability, net of current portion 1,107 $ 1,124
Present value of operating lease liabilities $ 1,964  
XML 56 R48.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Property and equipment, net - Schedule of property and equipment (Details) - USD ($)
$ in Thousands
Jun. 30, 2024
Dec. 31, 2023
Property, Plant and Equipment [Line Items]    
Property and equipment, gross $ 4,600 $ 3,433
Accumulated depreciation (2,154) (1,610)
Property and equipment, net 2,446 1,823
Leasehold Improvements [Member]    
Property, Plant and Equipment [Line Items]    
Property and equipment, gross 338 157
Field Equipment [Member]    
Property, Plant and Equipment [Line Items]    
Property and equipment, gross 1,108 1,062
Information Technology Equipment [Member]    
Property, Plant and Equipment [Line Items]    
Property and equipment, gross 574 466
Tooling [Member]    
Property, Plant and Equipment [Line Items]    
Property and equipment, gross 1,732 1,014
Capitalized Software [Member]    
Property, Plant and Equipment [Line Items]    
Property and equipment, gross $ 848 $ 734
XML 57 R49.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Property and equipment, net - Additional Information (Details) - USD ($)
$ in Millions
3 Months Ended 6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
Property, Plant and Equipment [Abstract]        
Depreciation expense $ 0.3 $ 0.2 $ 0.5 $ 0.4
XML 58 R50.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Intangible assets, net and goodwill - Summary of intangible assets (Details) - USD ($)
$ in Thousands
Jun. 30, 2024
Dec. 31, 2023
Finite-Lived Intangible Assets [Line Items]    
Intangible assets, gross $ 2,520 $ 2,555
Accumulated amortization (2,256) (2,013)
Intangible assets, net $ 264 542
Minimum [Member]    
Finite-Lived Intangible Assets [Line Items]    
Intangible assets, estimated useful life 2 years 6 months  
Maximum [Member]    
Finite-Lived Intangible Assets [Line Items]    
Intangible assets, estimated useful life 3 years  
Developed Technology [Member]    
Finite-Lived Intangible Assets [Line Items]    
Intangible assets, gross $ 2,520 $ 2,555
Developed Technology [Member] | Minimum [Member]    
Finite-Lived Intangible Assets [Line Items]    
Intangible assets, estimated useful life 2 years 6 months  
Developed Technology [Member] | Maximum [Member]    
Finite-Lived Intangible Assets [Line Items]    
Intangible assets, estimated useful life 3 years  
XML 59 R51.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Intangible assets, net and goodwill - Additional Information (Details) - USD ($)
$ in Millions
3 Months Ended 6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
Indefinite-Lived Intangible Assets [Line Items]        
Amortization expense $ 0.1 $ 0.1 $ 0.3 $ 0.3
XML 60 R52.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Intangible assets, net and goodwill - Summary of goodwill activity (Details) - USD ($)
$ in Thousands
6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Goodwill and Intangible Assets Disclosure [Abstract]    
Balance at beginning of period $ 7,353 $ 7,538
Translation (184) (365)
Balance at end of period $ 7,169 $ 7,173
XML 61 R53.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Debt - Additional Information (Details) - USD ($)
$ in Millions
3 Months Ended 6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
Debt Instrument [Line Items]        
Interest expense $ 0.1 $ 0.3 $ 0.4 $ 0.6
XML 62 R54.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Accrued expenses and other current liabilities - Schedule of Accrued Expenses and Other Current Liabilities (Details) - USD ($)
$ in Thousands
Jun. 30, 2024
Dec. 31, 2023
Jun. 30, 2023
Accrued Expenses and Other Current Liabilities [Abstract]      
Accrued cost of revenue $ 16,260 $ 26,773  
Related party accrued cost of revenue 657 1,451  
Accrued compensation 3,435 3,858  
Other accrued expenses 2,483 2,766  
Total accrued expenses 22,835 34,848  
Warranty reserves 7,264 7,279 $ 7,791
Current portion of operating lease liability $ 857 740  
Operating Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration] Total other current liabilities    
Non-federal tax obligations $ 81 119  
Total other current liabilities $ 8,202 $ 8,138  
XML 63 R55.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Accrued expenses and other current liabilities - Schedule of warranty accruals (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
Dec. 31, 2023
Accrued Expenses and Other Current Liabilities [Abstract]          
Balance at beginning of period $ 10,472 $ 12,557 $ 11,002 $ 12,426  
Warranties issued and remediation added during the period 801 1,309 1,639 2,852  
Settlements made during the period (443) (1,234) (1,292) (2,337)  
Changes in liability for pre-existing warranties (415) (551) (934) (860)  
Balance at end 's period 10,415 12,081 10,415 12,081  
Accrued warranty balance reported in:          
Other current liabilities 7,264 7,791 7,264 7,791 $ 7,279
Other non-current liabilities 3,151 4,290 3,151 4,290  
Balance at end of period $ 10,415 $ 12,081 $ 10,415 $ 12,081 $ 11,002
XML 64 R56.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Income Taxes - Additional Information (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
Dec. 31, 2023
Income Tax Contingency [Line Items]          
Income tax expense (benefit) $ 65 $ (122) $ 54 $ 9  
Statutory rate     21.00%    
Material change in unrecognized tax benefits     $ 0    
Income tax interest and penalties accrued $ 0   $ 0   $ 0
XML 65 R57.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Commitments and Contingencies - Additional Information (Details)
$ in Thousands
6 Months Ended
Jun. 30, 2024
USD ($)
Product Warranty Liability [Line Items]  
Description of tariffs classification In particular, CBP accepted our position that the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, previously assessed under the Original 939 Assessment are not applicable as they are only applicable to articles that originate in China
Description of revised tariffs classification In particular, the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, are not applicable under the 625 Assessment for the same reason stated above with respect to the Revised 939 Assessment, which has been accepted by CBP
939 Assessment [Member]  
Product Warranty Liability [Line Items]  
Cost of assessment $ 2,010
CBP Assessments [Member]  
Product Warranty Liability [Line Items]  
Cost of assessment $ 2,840
XML 66 R58.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Stock-Based Compensation - Stock compensation expense (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]        
Stock based compensation expense $ 1,285 $ 2,962 $ 2,924 $ 7,852
Cost of revenue [Member]        
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]        
Stock based compensation expense 240 316 456 1,132
Research and development [Member]        
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]        
Stock based compensation expense 93 115 174 364
Selling and marketing [Member]        
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]        
Stock based compensation expense 114 271 158 655
General and administrative [Member]        
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]        
Stock based compensation expense $ 838 $ 2,260 $ 2,136 $ 5,701
XML 67 R59.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Related party transactions - Additional Information (Detail) - USD ($)
$ in Thousands
1 Months Ended 3 Months Ended 6 Months Ended
Feb. 28, 2022
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
Dec. 31, 2023
Related Party Transaction [Line Items]            
Related party receivables   $ 2,564   $ 2,564   $ 868
Related party accrued cost of revenue   657   657   1,451
Accounts payable   17,580   17,580   7,979
Alpha Steel [Member]            
Related Party Transaction [Line Items]            
Related party receivables   2,600   2,600   900
Related party accrued cost of revenue   700   700   1,500
Vendor Deposits   1,100   2,700    
Total received Invoices from Alpha Steel   3,800   3,800   5,500
Accounts payable   $ 1,000   $ 1,000   $ 0
South Lake One LLC [Member]            
Related Party Transaction [Line Items]            
Outstanding capital stock held 5.00%          
Related Party [Member] | Fernweh Engaged Operator Company LLC [Member]            
Related Party Transaction [Line Items]            
General and administrative expense     $ 500   $ 1,400  
Cash payments     $ 800   $ 1,700  
XML 68 R60.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Net Loss Per Share - Schedule of Computation of Basic and Diluted Loss Per Share (Details) - USD ($)
$ / shares in Units, $ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2024
Mar. 31, 2024
Jun. 30, 2023
Mar. 31, 2023
Jun. 30, 2024
Jun. 30, 2023
Earnings Per Share [Abstract]            
Net loss $ (12,241) $ (8,771) $ (10,414) $ (11,762) $ (21,012) $ (22,176)
Basic weighted-average number of common shares outstanding 126,171,278   112,669,296   125,816,080 109,632,336
Diluted weighted-average number of common shares outstanding 126,171,278   112,669,296   125,816,080 109,632,336
Basic loss per share $ (0.1)   $ (0.09)   $ (0.17) $ (0.2)
Diluted loss per share $ (0.1)   $ (0.09)   $ (0.17) $ (0.2)
XML 69 R61.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Net Loss Per Share - Schedule of Antidilutive Securities Excluded from Computation of Diluted Net Income Per Share (Details) - shares
6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]    
Potential common shares excluded from diluted net loss per share 13,907,968 15,629,827
Stock Options [Member]    
Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]    
Potential common shares excluded from diluted net loss per share 2,386,293 6,505,638
Restricted Stock Awards [Member]    
Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]    
Potential common shares excluded from diluted net loss per share 11,521,675 9,124,189
XML 70 R62.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Subsequent Events (Additional Information) (Details) - USD ($)
$ in Thousands
Apr. 03, 2024
Jun. 30, 2024
Mar. 31, 2024
Dec. 31, 2023
Jun. 30, 2023
Mar. 31, 2023
Dec. 31, 2022
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]              
Allowance for credit losses   $ 232 $ 9,227 $ 8,557 $ 1,387 $ 1,184 $ 1,184
Major Customers [Member]              
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]              
Trade Accounts Receivable Balance From Major Customer $ 30,800            
Fair value of retained equipment 13,200            
Allowance for credit losses 8,900            
Cash payment $ 9,000            
EXCEL 71 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( $I+"%D'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 " !*2PA9PI)/E^X K @ $0 &1O8U!R;W!S+V-O&ULS9+; M2L0P$(9?17+?3@]2)'1[L^*5@N""XEU(9G>#S8%DI-VW-XV[740?0,A-9OY\ M\PVDEYY+%_ Y.(^!-,:;V8PV?8HU-4U3.;4YEW:HX>WI\26O6V@; M25B)Z574G$X>-^PR^;7=WN\>V-!4S6U1W:6SJUO>=+SJWA?7'WY78>.4WNM_ M;'P1''KX]2^&+U!+ P04 " !*2PA9F5R<(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 $I+"%DVL<%&"@8 -L@ 8 >&PO=V]R:W-H965T&UL MM9IK\6>QH52BERB,Q75G(^7VLM<3WH9&1)RS M+8WAFQ7C$9%PR]<]L>64^&E0%/:P90U[$0GBSN0J??; )U.1!)% MA+_>T)#MKSMVY_C@*5AOI'K0FUQMR9K.J?Q]^\#AKI>K^$%$8Q&P&'&ZNNY, M[4O7Z:N ](T_ KH7)]=(H2P9>U8W,_^Z8ZD2T9!Z4DD0^-A1EX:A4H)R_'<0 M[>2_J0)/KX_J=RD\P"R)H"X+_PQ\N;GNC#O(IRN2A/*)[=_3 ]! Z7DL%.E? MM,_>[?<[R$N$9-$A&$H0!7'V25X.%7$2X."2 'P(P%\$V&6_X!P"G!0T*UF* M=4LDF5QQMD=HH\LEAL!JC[UW\;WH)1Y4?&Q MJ#?8*/AK$I\CQSI#V,)]37G4Z+GLAWEZ)_I4D@. MC?%?70UE"GV]@NJAEV)+/'K=@2XH*-_1SN2'[^RA];,.[QN)O8'MY[!]D_KD MT#*>Z#I0N-!>[DE$=VCK&(VQ#1F'.>/06#(WX5QU^+M >,#XF1*N MNBB"X4.;4+-:MVOCKJ.%- 8VA!SED*,ZB;P+0NBC+I"M&==FT2PS]3R8<#C$ M^YF6CM,HT9!SG'..:S780TZ?Z)9Q&<1K-)=$)MI1VRBH+^YG*A!".O8&8I7L M%SG[11WV62PIS]R :L/D6!DZ=J/@U[(W$*MDMZUBWK;JT,\C$H;H)A'PM=#/ MTF:=%0F%KM^[YKBF?">^Q*[#]RZB?*T:]"^@(#?(9=&6Q-JN7"$H>:+G-(8U MY<0%)Z[%^8(6,*^*('5=#Y0'S-="FM7*LVF,:TI9>"7;Z$[RUKH!OV[,H5FF M'*\-M]I)M"+>MKJ/6JPVS)!=N"';;&)RK*P]&FU"A51N MWDO=NUF@*6OABFRSD:5"";/ MN63>\QGZWCI7BS"TA7Z\(Z%^\CY(C+$S_WH;$:UJZK*X0NI_. M;Z?:*<0XEKU1BR=TGT1+[1+JID($TMCM6\[ T@*VX6QPX6QP+6H _P'OH4 MZ_-JEKRPL(7ND4NV@82)&$:_!7TA KW?ZP8^UZS6M (*;X3-=L98 8L]TU: M67*>!-!!9ET\U&>\#:.$"Z.$:VT?Y<"NNH/>O&#[6 M;L8V4"!GH EUS8%/. MPBSA6MM'.6<^;#UPM@MB3]^T*PS87UK0-MP3+MP3KK57E(,^,*'ZW=_!MGQD M-BN.QJ/!A9:T#3OE%';*J3!!*2>GI!2L0F#DC+2G#VTX):=P2H[9X'Q@Z8)E MPV*3CZ@0@9QU1Q?64,O7AD]R"I_DU/));RWL/#UZ0Y\2":TU5LL:+?0W,D"' M>LC4!JF:.@3>36P\7AZV''6HMEUBK; MSC.'-@=$L5KID,\=]+63OY/A8;;>FI^H">S8_^/1.W6"A32%81:YR-H1SP[2<]N)-NFA]%+)B6+TLL-)3[E MZ@7X?L68/-ZH'\C_GV'R/U!+ P04 " !*2PA9],6)1Y$& "6&P & M 'AL+W=O2'N+R9X\O3@8WZWUN;!;'F^ M87?\ANO/FVL)=[,N2I:7O%*YJ)#DJXO)&_SJDH;&H;'X.^?W:N\:F51NA?AB M;MYE%Y/ (.(%3[4)P>#/EE_RHC"1 ,?7-NBD>Z=QW+]^BOY;DSPD<\L4OQ3% M/WFFUQ>39((ROF)UH3^*^S]XFU!DXJ6B4,W_Z+ZU#28HK9469>L,",J\VOUE M#VTA]AQP..) 6@=RK -M'6B3Z Y9D]85TVQY+L4]DL8:HIF+IC:--V235V88 M;[2$7W/PT\M+464P*#Q#<*5$D6=,P\U;5K JY>C&!%;HY>>*U5D.OYR@4_3Y MY@J]?'&"7J"\0I_6HE:LRM3Y3 ,>$W66MN]^NWLW&7GW^[HZ0S28(A*0T.%^ MZ7>_XBFXX\:='KK/H I=*4A7"M+$HV.EJ*7DE49,*,K5&,&@H-1?\:YUO60&Y M.[/>A8J;4*8K;)@!!'& ]@VE9Q1/:2.8 9=3 C+\QWU1:*)V3.G06,K'?B M>1 /D=E6=!&,U"_N@,5>8->2;UB>-4,M])I+:"G/3?+81ALNXN%PNZR"9*2. M\P[NW OWD]"L. +BW'IY$E(2#"#:5CA(HB!Q8TPZC(D7XX<-ETSGU1TJ.- ' MDH8G3L7JM(:;<BX)E5I%EUE\,:;^LX"K(-=( R#@<@'4912$9 M[M$E]H+\78CL/B\*)RQLO7&.K97CLJ+16/5Z\L)>PEC^"D,+HUQRO189$/.6 M*VU&V@F4V ,8$0NH;47"8 1GSSS83ST?FC8TOE!:]\.Q70QGH,MJGHQT2]S3 M#?;SS:X!><#9](&#@$;#UN.R(S28CU6O)QH<':51BIS=YD6N1Q@'>_GJ6Y7* MCXIVF'//8=A/8IT(V+!'HP"<"3OX:!XEUKC89O/%&/OCGK:PG[< H:Q!-?.' MC='2[B&QZ8B09$\@M0AM,QHFX0AIX9ZUL)^VWE6I*#G2[('["^G@H,!:?;91 M,H:PYRGL)ZHKON(PN3/0>J"F:C'59C@$08A/<618RCN.80V?T4Q#H8*P6$6!]%BI)^2GN6(?S]U*
_B4T1S@\<2+_'UR%G-OS[P]TF'W/=R3VP$2I0?G*_%^>O3:+D:-<*4/*3)D0[VMX M\G36U$RJ*Y[R\A8BNH^0VAK;=#S4%%Z3PVKT;$W\;&T6@*B.+ 7L:7VUP&0. M/Y$IJ*$F;TRB:1A&4TJB)_.G2IE3@EHKV(9EIB%_7^4<0H(.2^>U.:Q=KR.( M7T=\DL CM7S<56^*F(;^H?1K,V7F,=0ACKLR?5>"MLJPIH;/Y/#@KE3)!Z!VTL1ZI*/>AHRTW3D,Z%"4N*[(8F4*TUR34KTGV06=\ ME:>Y1#K, M8A+.\0C87GK0;Y0>S6([&GSH.(=V[+U==JZ]]VSOHXGY8O4GDW=YI4"&KL Q M.)M#_G+W$6AWH\6F^8YR*[0697.YY@Q@&P/X?25 E[0WYM-,]REN^1]02P,$ M% @ 2DL(6?XKP 3C @ 4 D !@ !X;"]W;W)KQ[_[G+!'J^E>M Y@"&/!1=ZXN7&E)>^K],<"JH[ ML@2!=Q92%=3@5"U]72J@F1,5W ^#H.\7E DO&;MK,Y6,964X$S!31%=%0=7O M:^!R/?&ZWM.%6[;,C;W@)^.2+F$.YJZ<*9SYC4O&"A":24$4+";>5?=R.K+Q M+N ;@[7>&A.;R;V4#W;R.9MX@04"#JFQ#A1_5C %SJT18OS:>'K-DE:X/7YR M_^ARQUSNJ8:IY-]99O*)-_1(!@M:<7,KUY]@DT]L_5+)M?LFZSIV,/)(6FDC MBXT8"0HFZE_ZN*G#EJ#;VR,(-X+P6$&T$40NT9K,I75##4W&2JZ)LM'H9@>N M-DZ-V3!AG^+<*+S+4&>2J109/A/("(ZTY"RC!B?7E%.1 IE;8TW.9E2!,#D8 MEE)^3L[N!*TRAI'GY#UY2WRB=?)HUVYCY5HRA$VY0B=7[3';VXP?6Q20^2"?&0"B\ H)S.I MF>NZ'U?WVBCLO9]MJ=;>O79O^SY>ZI*F,/'PA=.@5N E[]YT^\&'ML3_D]E. M&:*F#-$A]V2&[Q(HA8V #9@^7)"2*K*BO(*VM&NO@?.R_QJK).@$0= =^ZOM MA%X-VT'M-:B]TU#K3B2T,KE4[ ]D;RWT#V#T).95%@TQ_3 _WC>N#5L!W.0<,Y.('SJ 88O*C5 M,&[O@&,B=ZB'#?7P=.K]SW_XLA/#01"$\? Y<5MDW.O%41BW$X\:XM'IQ'@T MT(:*C(EE&_;H:.RVR'9L?VN_LV>-KU0MF="$PP*U06> )JK>O^N)D:7; N^E MP0W5#7,\\H"R 7A_(:5YFMA=M3E$)7\!4$L#!!0 ( $I+"%EL#J:A,P@ M "HP 8 >&PO=V]R:W-H965T&ULM5MK<]LV%OTK&&UG MQYZI(SSX]-J:J46VVT[39.*F_4R+D,0-1:HD)"?_?L&'11&X1.04_1*+TL$A M#^X%<"Z(W#V7U:=ZR[E GW=Y4=_/MD+L;^?S>K7ENZ1^4^YY(7]9E]4N$?*R MVLSK?<63M&VTR^<48V^^2[)BMKAKOWM?+>[*@\BS@K^O4'W8[9+JRP//R^?[ M&9F]?/$AVVQ%\\5\<;=/-OR1BX_[]Y6\FI]8TFS'BSHK"U3Q]?WL!W(;L[!I MT"+^R/AS??89-5*>RO)3<_%S>C_#S1/QG*]$0Y'(/T>^Y'G>,,GG^*LGG9WN MV30\__S"_F,K7HIY2FJ^+/,_LU1L[V?!#*5\G1QR\:%\_B_O!;D-WZK,Z_9? M]-QC\0RM#K4H=WUC^02[K.C^)I_[CCAK('G@!K1O0-4&SD0#UC=@E][!Z1LX ME][![1NTTN>=]K;CHD0DB[NJ?$95@Y9LS8>V]]O6LK^RHDF41U')7S/93BR6 M99'*L/,4R4]UF6=I(N3%HY!_9#Z(&I5K^=-.9N&V28\C1[^6=8VN/A;)(EH78 MUBB63Y4"[2-S>\_0?BY[YM0]]*5['JB1\)=#\08Q_#VBF#K \RPO;\X@.7_O M[O$WWWW4&>R4*ZSE8Q-\'_B1%P=^"\6U:^G +9O9[K;>)RM^/Y.)5//JR&>+ M?_^+>/@_4*?:)(MLDL66R$;=[YRZWS&Q+WXO19++R;D- A2#KKG7-F\6B.." M$(?AN_GQO'-U%*/,#<>H2$=1!Q-_C(IUE,^HRTZHD4[WI-,UIMFRK$4SZU2& M='-MIIM-LL@F66R);!0&[Q0&[X)T6XV# <6BHW'/TX[Y/E/23DGVCWI^J9EW;5^4Z$^@JEQ?7D%I?N_<-98ZJ5D=1 MBHDB%J!R'%=!Q3K*H4?P8#>Q4?"C+ F:O&OTRLKD$V^R$#2*6'](?);WG5P M10*7*GH!E.-053" 8JXWL9B1,X--S/,*+^1@RUO%22HM?%:+9O =P8@@6!CZKJI;AU$?8SRA>W#)Q.@"%VU]M*[*W8MV65B!FID^_Q,2JGFY M!'%R*/BJ; !'99Y[JFX(1WW/F1 ^^%-B-J@_%X++*5+((G!5[CBZZB-^_3TJ M.#BE]82C2*GJ=<@-U2(.@(@Z-\80*IA82I]63X/@0MN;:(HIYH-'_B0.M> M'16$P43W#BZ4F&WH.['EU2LR2O>&-[Z:4@"&.*H[ U T5"4#3)1,+9*#$R5F M*SK,(*]+',B;.MJ2J:.P*AT@R M'PK>%"-M)GRU-W2_=N.I[A $:JY)8#)U=) M]WHC_=^A6]WA7-6=I5:Y )@;N:BJ60J@B*.NO" 7F:A/1)MLD56VV!;;.!Z#P:9F@_V0U-D*C$#7+CC/ /Q&6Q Z5#A&877# M&X9I.][P/2=J93JX7&IVN5&6'P3XQNNA;_DUE=YE*D&8KA*\YY3*P==2WSBR M_FQ?V_+T)CG*PGC#F]5O)Z?3=I#5J#R(6B1%FA4;>,097?.K1YQ-ML@J6VR+ M;1RGP853LPN?'G&Z]274(SZA?J F) "56"^DH6J\058WD'("K"8F ,6AQRB; MVA*G@_VF9OMM&H.0;Y[0#4"G=$.L$[H!J%DW&UPW,[MN676DAQ5839M;OOJU MKDVVR"I;;(MM'(.A&&#F8L#X:MVJY;?*%EEEBVVQC8,P6'YVR8:UX4UGW_[< M<@:^MM\ H&1AJ;Y?B0 8"3UUSSL&8"[SIMZQL[.S'.;#')>\96=V3W78/=9A M]US'/W&P@PTE![OD:,<%[]H9L&&.'?55P!*"A41[+P; * V8NM<#P%P[__ZP@.<)_'4/=DE@)+64WU/$P$PAZG[4S%$%GI3;T?94%LP M\]&3B]8=JR=/K+)%5MEB6VSC8 PE#S.7/)>O.Z'F0AC#FO/1481@%18!,-?3 M5QV +,#:"\7YV=GG':\V[:'S6FHZ%*([VGKZ]G2P_8?V.+?R_0.Y71+@^XC< MQMVQ]8&^.T7_-JDV65&CG*_EK? ;7PZ6JCN8WEV(O'XJA2AW[< M-0#Y^[HLQ=XIK%%HC?7NTS3WOW-2+3-B22Z)!4GW_Y 214-X!$DD_7-9&+)7NR#@ 4( M+!ZIJZ>R^E@_Y'GC?=YN=O6;BX>F>?QQ-JM7#_DVJW\H'_.=^LM=66VS1KVM M[F?U8Y5GZT.A[6;&?3^:;;-B=W%]=?C=N^KZJMPWFV*7OZN\>K_=9M67M_FF M?'ISP2[^_,6OQ?U#T_YB=GWUF-WG[_/F]\=WE7HW.[.LBVV^JXMRYU7YW9N+ MG]B/,IRW!0Z(_Q3Y4_WLM==^E ]E^;%]\_/ZS87?UBC?Y*NFI M&I0&04$'T%XE.!V(S0UZSS M4X&;'[CCTY6W69-=75?GD52U:L;4O#H(XE%9=6.Q:[;YO*O770I5KKF_* MW5HI,5][ZE5=;HIUUJ@W[QOU0TFTJ;WR3KTK5Q\?RLTZK^J_>W6]=6L4;5M M8\Y6IYJ]/=:,]]3LM[+)-D2Q&W>Q=TK[>54=/H.J-4%PZR:X*;=;-:CZ2B\' M:JTFD'I??>DMG[C+_[16#:D&=;;QWF7%^E*UX4WV6-!-D0YPK5;[[7YSZ-!_ M-P]YI?IXJV:XAW;J^91[_RQKJE_D>-:3!'22F9+@68?\K$-^8 UZ6-_F]\5N M5^SNU4RTR7:KW,L:1;_ZP1/L>X_[G%,*.G)&!\YVEOYT'45!Z%_-/CT7C(TR M$+0C6>CH%QO!_- 7 M/)S/C>ZAD''$PR@R>@GY"5(DF021:]12^L)Z^/\U+E*ZAH+%?#&/ MC>D*&31!DJ5(,@DBTR08G248.27XL]+>X1JG%K"KXYKNJ*_]HWJ9?\ZK55$? M_GK\=?G8KKM(O456KX;&%?O&69>I*D*2+9%DR7!+I,AX$D2F"2@^"RA^"0&Y M)BYGP*D3%Y+L-K8O3U'(N'&!6B)C)DBR%$DF062:[.9GVZ30F!+%IHODF9/,)HC$->FXB:;..E"V MVQ.;OA*:"^L"LH2&3:!L*91-HMAT777.,'-;P^^/J^N[N_S@(JS*NJ%5Q:V> MNQ36#.2,-5DL2+8EE"T9TQPI-*1$L>E"Z=QMYK:W#T*Y;$\RU^V&[3'?U5F[ M)2/%8AO&/(@MM2 -WELHVQ+*EHQJCQ0:4Z+8=+ETEC=S>][_RAMO0Q^!O66V M77O)6!Q9 H&ZUU"V)90M@;*E4#8YW%NZ1#H7F[EM[..IZ4H[-;W/BIWWJA7. M:U(YM@5\:1YYN*-.5@V2;0EE2Z!LZ8BVE:B(NF(ZTYFY7>?E;FT<8O^25>Y:Y_5FCJ8VC[.%FAYJQS#90K=ZQ(8SY/(Y]R]2@H/1Q-O13I% VB6+3 M]='YJ,QMI'Y=2@FSW4,JI^0$"F]M^ MV27G:@UGYG)!'40HVQ+*ED#94BB;1+'I0NJ<1NYV&NU%UC_V.S6Y^/U7>V[; M>O%"+ )37FQP6B<@S-@6+H=I$J)"(O3GL9$IDA*XRR VZBTI%(_5ZH+1\SI_ MEI?I=M_"TI,Z]%.D4#:)8M/UT9EN M?&I.Z9C%-[?M)FK/"N3:\_#.L^)NSVIP ME37<\DCGY8;;SHO503:D;]M#07L&)-2-@K))%)LNDDG*QK9>N#\W MC2UWU2:OSJ#&%I0M&=4>*32F1+'IPNJL+>ZVMEXVI]<=?/*\!,W'Y+:'Q3@3 MOC#3>J%A$RA;"F63*#9=BYWWQ__ON9GNB),%",W.Y+8?*!:^E54.#9I V5(H MFT2QZ?+KK$4^D*,YF _%;:.-Q2*8FQ=,:$HF)QQ'4R+03,N>3VGM8:')EB@V MO>\[HY,/Y%N.3G-R$TV>4:#9E=PV-*-0[7>L-"=HV 3*ED+9)(I-OS6SX+5S7N8L@L@29'S#3&'>'F"P0 M:-XDE"V!LJ50-CG<6[I$GCT8P.WB?D6BDR!,SL W%[CNN)-U \V@A+(E4+9T M5.M*5$Q=-9T;+=QN]%>0Y'X(AS. KE M.H<3G:TKW+;N-Y[#N=FG[D6$[7Y:W4/<"M]S#D=!>Q[> 4TGA+))%)NNC\Z= M%6YW=C#;B98%D7O(@]@\AQ/#N8<$A FSHX=S#XD*B8C-YY$Y'*FTPH4PAR.) M6C#1]R"=SH 4;@-R4KH3W?10OU$,YQ\2$,;#( B%=9LW!>T9D5"3$,HF46RZ M1#J34$RYD1M]7N(./ED^4!]2V+9@Z$<+;CVT"6I&0ME2*)M$L>E2[#Q+,>!9 M3C$,B%3'2%B& =2-A+(MH6S)J/9(H3$EBDU_%EAG109?GZ@9$':;6BV;*P9W MA*GZ@+(MH6P)E"V%LLG!SM(%TAF0@=N _ J[(" R%-5^P)0-U(>$LBVA; F4 M+1W5NA(54U=-YT,&DU))C6RU@%2-;7B%(0M-ERD8?L0G ;'V)\,T"5$A$8G0 M7$&G!(ZP"RB4\..%'_6,T,[0"]R&WOB;H^AVAS[H,QA^TB]SDUD73,GC6P[2W*+@B&W3L"8@_'8?>.J!!I%Q X MPBZ@4?UV0="Y=X';O?MVN\ =8/*('#;P"$B?74!!>T8DU,"#LDD4FRZ1SL + MW :><]%-^5C,-_WN&W>(R'Z1)B J)*)B;5"F!NPR$>4Q&H03W6=!S/T;0>7R! MV^,;?RI#MSO4Q MLV\WJ'B)AC\>^S\.Y>2I#07LF=:CQ!F63*#9='YWQ%DR] M*WK4ZMNVG,A=SV)X.-H0>S@.TB1$A>A=CXVC=CT$RK7K"3OC*G0;5Y-NCR*; MWAU@ZH@,;?_%["$"TK?QH:#TB(1^BA3*)E%LND0ZZRH3+Y;0L F4+86R212;KL7.$ O=AACP$?4AX4L9EPMW92:K"9K" M!V5+AALCA0:4*#9=1YW9%[K-OA>X&\H=TN72.>%AFXO]"O.ET,J M<=!4#=0>A;(MH6P)E"T=T;82%5%73&=ZAG#3,[1M2,KT)'GZ$Z3E,DQ 0 MTO0D<(3I2:%;O;)2\MATY. ])F>%+3'8H&:GE VB6([ZF/V M[-N%V^^S_B6K[HM=[6WR.T7O_Q"KUJJ.7Q%]?-.4CX[LFS^?--^A_'YB[JO_P=02P,$% @ 2DL(64GJMW.7" _24 M !@ !X;"]W;W)K]%]ESO.5?#0U*V\6.R4VI^M5K+8\2:7'\2>M_#-5G1-KN!M=[N2 M^X[GI;FHJ5/GW@M[B\69/'T MP6_5[4[I#U:7Y_O\EM]P]6U_W<&[U3A*636\E95H@XYO+Q8?R=E5E.H+C,5_ M*GXOCUX'VI6-$-_UFZ_EQ2+4BGC-"Z6'R.'/';_B=:U' AU_' 9=C+^I+SQ^ M_33Z3\9Y<&:32WXEZM^K4NTN%MDB*/DV[VOUF[C_!S\X%.OQ"E%+\W]P?[ - M%T'12R6:P\6@H*G:X6_^<)B(HPM@'/P">KB SB^('!>PPP7,.#HH,VY]SE5^ M>=Z)^Z#3UC":?F'FQEP-WE2M7L8;U<&W%5RG+J]$6\*B\#* 5U+459DK>'.C MX ^LEI*!V 97N=P%/\&*R^#=MS;ORPILW@?+X-O-Y^#=#^^#'X*J#?Z]$[W, MVU*>KQ0HT^.OBH.*3X,*ZE"1!+^(5NUD\ 74E*?7K\"CT2WZY-8GZAWPGWW[ M(6#ACP$-:83HN7KYY@*W9@*WG6@"R,(N5U5[.X1QI2J. MSMHP:H2/JC/\3.[S@E\L((4E[^[XXO*O?R%)^#?,Y3<:[&0"HG$"(M_HE[_" MAE0+B3HY7)F8*_6NYI"0D]'QU=RP?,Z,D34:S$V'Q*"SVKLS'\K^09$.D M*P$;4R':HJIYT!X4ZT\+O7R]3A((J_SF5II:(S(HYVR9)' &7C3HSK\Z/1[+TWEKRC0HJ*7L.\#*!L"L0%,<,7-)$O8 MTY8-V$$Z5.T=I)'H'C$?UI8^DJ8S'Q ;FA#<"1).@ N];ORLD]CLNGU;'#-. M]AM9E56."SZ,>JPF)F2F&#$*'7J/@$R\>O\.M=>@MZSD7LB\UF&B)W?8I_0> M]#I/B"5R&859//<%,[\GG==WJI'$RX=U!3E(4?W3^&%UPO4 M#H:$K>>:;2OJW$G(1&OB9>&D6>/@#K;[#0#!+$F3M_T6]OV^XQTJFR&YFLU5 MVT;,%3838(F?L%\ZPQ' 20\ M4/D#7O@WMUS.BA0I.=0VVH^ZRC=5[2Y8 MB)>PKZU8WFJTTPF:,$N>X6Q1B%Y7=9##O+K3*8SZC,&59-9&;YLM29JE:\%(;:"MHVR^VH@5(31R;"ITXA[U2V2]C_8.5+>--(C3 M*+&4(W9IMG94JG2B'_73;P1+QR&?>GQN;:0MH<^0^)'W1JC>FW0+>-L7OQ@ M5L=.G:J=>$C][9\^8'BV34=5VSW>DL0)FY?'F!T+L]!! #J!BF:O.AL:*OT7 MG"]0+P!?B^NW&NUT%B8.TF>:S;Z#\D5R<]X(]2NLWJ%GX'_TU5['(#H'&!^) MG2.8F6O781,>F1^/7T :J&RXVHERUJ)]K/>[/+A1G-?HR1Y"29*%X4PX9K8. M':!D$RB9'Y30VA>M3PE:-X_!N\-> M\![-*=0%#*SQO'9!K"":'/1E1V?$KSLDWE9MWA8OV C8VQX3_S_.B=E$4@>F_.7O@#[XI*.I+ )O2\C$-,8@?" MV81P]D*$'^#,WVE^@4#0K?@6IG5HP0.H//C8 MCC_UZ!IFYH4FVAV$>8MW*0QI2><]"F(#M:&C%F$3A9F?PI]YT9FRKWJM9@RP M413/CZE1NS!.' "()A1'?A1?N=0&N0HV_+9J6QU$NKB K!5HJD8V;&E,K4H0 M,8LBECFJB6B"/( ]""59Y*7\:TGV5J.=3LG$\\C?3;^@ MI-7GH'5?#AT++/&PSYT>$PPWLPZ=.3IIR)ES:-T]M8V(XT0C.KJI^PRK#5/, MS:O2W!LR,N%US6\A#"17:H@)5/;S $=,:.BJ?J.)WY&?W^99E:78+GM]P*M/ MBX;C4;/S/37EP^'_;5L98&KG6GX_V."K8$,\MLIYQ(A$SN2;2!_Y26]V#G-0 M5_:F)($^_;!5&.55JSA$.+X,-LI)9NT:R&U=U^W%: )^Y ?^<[+-W0%SW* S MJ./;WO%PR>%WCI\-2.?G#H@-H?-[N:NC!VD:WMV:YXMD8!)R>/AD_'1\ANFC M>7)G]ODG5QG(Y02 MC7FYXWG).VT WV^%4$]O] ^,3WQ=_@E02P,$% @ 2DL(66;C>A"V @ MB@D !@ !X;"]W;W)K9%!B?D470.3.C+(2"SEE M%U,F9W:KDN8E$)Y3@AC,^M:-VYL$"J\!OW)8\8TQ4IZ\4/JJ)O=IWW+4@:" M1"@%+#]+N(6B4$+R&'\:3:LUJ8B;X[7Z6/LN?7G!'&YI\3M/1=:WKBV4P@Q7 MA7BDJSMH_.DHO8067/^B58WM="R45%S0LB'+$Y0YJ;_XK;F'#8*[C^ U!&^7 M$.PA^ W!/Y80-(3@6$*G(72.]2%L".&Q%KH-H:N#5=^N#LT0"QQ'C*X04VBI MI@8ZOIHM(Y(3E8E/@LG=7/)$/,7O:,G1%)C.:I( &N8\*2BO&*!+]/PT1.=G M%^@,Y03]S&C%,4EY9 MI6RG826-G4-OQ]MCQT0,E(N-H1%)(#?SQ87YX@&]+ MGUO'O;7C ^^@X+>*7"'?^8(\QPL,Y[D]3'_ 3-+=O?3A\=9] WUTO'43??Q_ MOD\^?/BM4/AM#OI:S_](#II2K98+S'+J[>[Q!4Z@;\G'F0-;@A5__N2&SE=3 MG$\I-CREV.B48N-3BDU.)+:5+4&;+<$A]?B'+,_W)*$EH//OE/,+4X;4$J&6 M4,5X&5^ZGA>XD;WZ[@[L(D) MYDFY%E9?GKWQ])? YKJJMCV6C4?<$_ M^;I+D8_0/"<<%3"3IIRKKBQQK*[\]430A2X\+U3(,J:'F6R6@"F W)]1*M83 M9:!MO^*_4$L#!!0 ( $I+"%D_R %AZ@4 )4, 8 >&PO=V]R:W-H M965T&ULE5?;;MLX$/T50@6*!/ ]Z05M8L!)MVB*;6/42?NP MV =:&EG<4*1*4E;=) M$4+U9CSV:4&E]"-;D<&7W+I2!KRZS=A7CF06C4H]GDTF+\>E5":9G\6UI9N? MV3IH96CIA*_+4KK=!6G;G"?3I%_XHC9%X(7Q_*R2&UI1N*V6#F_CO9=,E62\ MLD8XRL^3Q?3-Q2GOCQN^*FK\P;/@3-;6WO'+57:>3!@0:4H#>Y#XLZ5+TIH= M <;WSF>R#\F&A\^]]_'_V(PZPQF$7<;**)\)X.[ MX8T?8JK1&N"485)6P>&K@EV8OR.?.E7%"ME3M$^F=[M,[?:WJM58I3'-RRFS$47*UO$Z. M!S$:8+)5B1*@"=,[-*-ST(#>"0@@(R]L&_^S])G\+BYEI0*\'VE2P#3%_CPTT1O ;Z6N:2@S+B&9#=AK,V31J93\J*7Q5_>BM%OJ M(H-,TAX9.%MO"HSSF$PFD;X5/.T#?KB:%CHI =X"2=\^#E3PM.6]L08U6@X/ MCH :).+X\(R'O\D27(>'E,F0V\3YP'&'8.RZED26)HXZ][M->JKU0 MK"'4+JLU#0_#'R7397+\* JHLE!I(=:4H.VC5)Q@'#II-M7$Q M;KKJ!Y(E%Q-:HT:N-1W S#%0L1UD";F52L?/R%YBV8<(@CF(B'"QT1GN!=") M5O$<@DJ\PMC3T D836H#&)5BA^0C_3$O;D !H60(F3KK?=N; M;;MW1&:TQ46MBOFQ48I*1=^LCW27:F1[ ZMNW#-W!>Z"WVN)H>1:_2YJ#CH0 M-W0O?3M-"]ER[$PL/F#Z>NU5IB2FAN^- %])G,U0FN0C)N.W%1(LQ")W*I71 MUZK"Y'D8GD: #;?A+#]BM&=/LI!0&_* MQMT9AN(..F%! RPDP>>?HZUBGX%*A2:)Z)5-F/1ULD56E MXTQ&VVWY)&RS1U5'C]TJQ@=712Y;O!!C('+L]M:X7]W?N1?M5?-A>WMAQTF' MJGNA*8?I9/3J12)<>PEN7X*MXL5S;0-Z.3ZR5LCQ!GS/K0W]"P?8_RWJN*NM"O)Y[-E5:W6UITO?BA:.4Y5*C^ MQ)"$!0(T!EB*_NO37S_F 9(KZRZI2LXK$IA'3S^_[AZ^V'7]>[]V;B@^;)K6 M?WVV'H;MEX\?^\7:;4I_V6U=2]\LNWY3#O3/?O78;WM75OS2IGE\_>3)YX\W M9=V>O7S!G[WI7[[HQJ&I6_>F+_RXV93]_I5KNMW79U=G]L';>K4>\,'CER^V MY'G[9N>_O4XC%+5&]?ZNFN+WBV_/KNY^O+5,SS/#_QG[78^^;O 3N9= M]Q[_^*[Z^NP)%N0:MQ@P0DG_N7>WKFDP$"WC-QWS+$R)%]._;?37O'?:R[ST M[K9K?JFK8?WUV1=G1>66Y=@,;[O=WYSNYSG&6W2-Y_\M=O+LLZ=GQ6+T0[?1 MEVD%F[J5_Y8?E [)"U\\.?'"M;YPS>N6B7B5WY1#^?)%W^V*'D_3:/B#M\IO MT^+J%H=R-_3T;4WO#2_OY#"*;EGX>M76RWI1M@,1:]&-[5"WJV+;-?6B=O[% MXX'FPUN/%SKV*QG[^L38GQ<_=.VP]L6W;>6J_/W'M,ZPV&M;[*OK!P?\^]A> M%D^?S(KK)]?/'ACO:=C\4Q[OZ8GQ;N(NW^@NB_^^F?NA)V;YGV,;EO&>'1\/ M O2EWY8+]_4928AW_;T[>_EO_W+U^9.O'ECML[#:9P^-_D\>U<-C7U\6?WSX MXE7I:X\'>9?M4(J M15]4+>+>MLX_GK1M9[>J>3[=VO'HVVV9;O'>&-;CE4] MN H/5B3H\I>^0O]8UFU)PY5-X6D.1[I@\ 5-T(R5*P8:CJ8GZ>.Y\,];&9M7 M4M/'NW77-+2C74N#^7'NZZHN>^P 3ZS+>U?,G6NQC6W9TS-URROL*YK6D20. MZVS_<7,KU[J^Q.#TO=L.\B[6\'/+.[K#@GEA-QO7$RF+\W_[ER^NKY]\]?/E MW67QUYN;-_SOJZ\>%:1:Z>V!'ML%'Z=;$D6Q5'^X-C7#*'GV#E>=DP M3XFEE=T>;(TH[(7 1$TR5B0!?;=)61L\<_7GKX@EHN1\1%[FXU!4'?%BVPU! M>'#N5>T73>?I9#V1\[>QQ@'.]_]G'']9_"0G0P/9<7WZ 1%_8>'&6#4MH&XK M&A[6W 3?AF>6W)1[(F+A/FS)\H,J.N?>E3WFP'JFI'\&02$)5.UDQR6B1^:@ M]>5"6"P*@6MJ,LBE4B+3=9?%K>L']FNJQ_S"[X=3SJD> MR:]C*]X?DV40^?S(0++%AA^0DYB>SU08;^28WKIMUY.2:X."_O<#YG-'-%IQ M#L5SQG]F0YT1=7ZA)9,:II7!DK% X>!H%CK7T9,=][1WMQ)]CJE(OX]+8M>1 M=3?+&'DB9+GI7S#N74-+@8OSGM;@]Y[V[2^+[VO2 $3U/69DKJ%=8V*B_;CA M\Z;/B'4]$82F7? #I B,L_F=LEC7Y+.*&\&JE (!U:;@NZBK+XN;8RI_A\FK MXC.BWN47Y/ VC5HM&:RE;]MJ1M\_?7KY)/T>SC]VN"BW]4 4Q)+*[;;O/M0D M?HZ(]UGQ^;/+OZ3O] YAB[Y5+K#Y\KZLFW).YA0GMQS9\/E2'1HV$,32]#KM M6)4T-7]\\^X'$LENU9<;J'<*#&IX'2SSSB_Z>@Y^&WLZ(5C[XD?BK((V M?):\>$;<2[12D:!%M6#GEO2 )XW!XLT:;@:0-5Q185 M/+TN^P?7#6[)UMU6^6PDZ67/"A./DC6@SS#_NEZL3Z["C_2ES"UF%[T\&+,K#/J/I:_*W\B\8;$_E/U[LM_??W\;_#GY/CASX8"< M6BY61)MM4T?U+":++2Z[1;1P,"(;C!)17KT9-P7L!+8QKRLE/9&/!./RR9-B M"]$%B6=@-D]+(G:ED<%8LM[OE0AO26T7SY\]?W)>/CJ_>C0CJB[*T8O_?'2* M8QHN.[$=>RG$J >K8:%Y^H25+%D$5AE!257EWK,_.K561U?\Q=63\\6C\Z>/ MSF\>S0)!B31#S39S16.#6C1WW558]]47-#&Q65N1?L-DT7N"ML&@? MW(X9%#$+&%3Z5#38\5@Z5L)A+TJMOS8=.2G&D&JC];M;U8'R);,^;_'Z*E&S M#["]#I.Q,NO2>W6GRDP B? 71&\]BH2N0=ZN_IS0=@&5BM5&"D);4F39+O;' MO)F/\@=;28Y$@J5T]V4SBN\)7U<53[<5KP6NE9S,P1'K9,F9BM=*+$VCC42 M1M9A1PU-96ZUDT/&I#3"/>D=IT?I:1+BCGH90Z09M%OC2C\@=&.&)6K 7^@. M*4?FDDZ9C&LQU!LW.^056Q]O#DSE8"U/,D6B=OU^,^^:XNSUN]OOSDA EU@7 M=#9F(D&':W:XH,D)'M/LT"YP" =P1#DG[BD^.Z(OHL:#\G'M:>TQL[VPW0$_ M4MA9['HXMFW.Q\:[XI6H%!Z19R+H@P+-]*!Q*)!M_AG%4%3BCO&,M#MR; _D MA@9ILQWRCO;%J-;O@, 8:IS_2BR'I55..3-5-C>TDB;QKS#&G6O!9NRS$U'> MNONNNH@3-T?C;YY!&B*HX3QW;TZMZL5==QE$%!25,N\,VA M=R?.K/(I5JQ"ZE)ETFWA^8ZM!!,PZ7.VB^JJ8W]QI)'!W@''[J;-_4J MX88%QP=Z)DQ4F-WWV>SF/?(X]7P,0.?%:E72A_<--MU2;Z!Q$J*@BB(C2 4KVNGKISU%P 'V+I"V&_K8OZJ%0Q2EBU)>;D%B1:>4U85A6>.H:I= ML\6\M;]3% (N>J>V&[:'_F\#^(-9&CSZ8>'H MX<^>)>%&>',%=3 X07XVG>>W>$F(C5J60/-H:_*HQ#;@!#A"#\H-(B2!$^DO M># [HS&J/R: .O!DG&@RQ%[U*M"1S MQ *U7,)AI-%K7B);CD:7A>H$?,VAJ%.3NMG0> B_29D($;]KEXI>OG75*+'[S8*10^(: M2K::5/N\. ;^I(,!9'P%?X#NW@SKD;8 MW<]G.BSIM9*C"L75+TOON-H.7;!%\R(BIPF##NN_&U3KZ#]=/GEX7'!A7;JL0EUK_ MIE.+R-#NM@18/&(-.EH R^V\L05ZPY/AL5.GO;'31Z$L\0?9F 4K2% T%S5, M2-M(V01!;,]8T-P-.VR,XH-_Y<&>TQ^7#ZUM!,=1;II42U!<&JJE_5Q9BV66)5T'Q+AL]-8, *]42,F-7L!9 M2I@2K=LI$3)F.J38A%#D]H]]JC]JP6E2#2\X?F;&Q/-@O:$V4@VP;3URO6@RF!B\#O#20HH].Q6L )@I/"1&GP &T<+H&;',_:E=6N;BL#D)')I2.O&2+E M9U<2;:4"R[,WW0H^UP*DA%LML%8)Z2W!6&+ENDHL#H<@"UHU'D&P_L(]=;.2A:>\L'PE]W#!60L06WQ8=*S[K8VZ+#<[HX.KI5 MV8JK2*=2.>#IT.XB0+[>"A[\J>/AW$74%$N:%SX%$F3_-A$$,$][*AF(]/ M_+6;]^P=@>88Y@X9%8&F#)8BWU/5B:'1%V#^/8='1#;1.?V&%?;(7C,$MD9V MCI%0XF]$[(&!L$+Z!-&GPO2D8C@[(6!NV'V)HTA]/"(&6552=S3$@D/?0.,9 MASK\F>^6PP[:V5)I%3W"3AIM0M)'3!;S>BX!DR>.;DR4I+!C[:<;IIF<$Z\8 M]OOLK6+U0ITT69/BJLGKJC0+?X;13E(1+]=,I_)JRL^I$3'XB7.14+!8V]PN!C@[;P+F3QF*%G MR+3L&%]-R@029M/LP)R"W(W$#]N10K%%H%$+HG[R/A%>(.&]*2\.!W461K["R9!S\-!M#U57VT8VDV(_\C.]@6.I1 :=%*,L MT_F(-#ET%@*?D26(9SE((3T_=32Q,"1YF5(I:FXSC?1^@:@X&C-J*W(X!#(NYV:\E9'-=8+ =EXSO9( MBVL7&E!(Y513^S4@:')8Q0DF-[I1D807RWO]D5-!5G>$E[FVH2TM+RBYN)Z< MP?IWC4>"*]V6F\#S,7#&U[?KVBV+;S\8-/L3] &=! .@J2V(2S=/5&A(.H). MC[R>W;H3?^S7CAX@S9!$Y'^)]1@'B8"D7N^.S%9%3H*GZ+^*L._YVCTJKF40+"5%8VP)%BD5.4_C'P):^ M1,20VM2J&^<#H.]1<+./=;)F]44/QO!#3LV3[8FYMK!"[4T,H2PZU/RA5= ]">+N-EW0 MR%*G$\M)H(#9&%O]#AQL*5W0='S0 0'" -9-=$U5@'T62CE \X!G]"L7W]XQ M'R51F*7&@F*5%06K:N5&![Z;%CE@5TLD9'T:,3WD!>9>Y=2;/ C)5R@=%5M. M\984/)J/&)<92MFFM1@ H'.QH )9* M]A%9B"(.1A1"K(!2$2!72 :D_'6D6&.F6?'_EXJ,F;@LRG&3@L& H@5Y.\@; M0WK,=GVB])%-6]>-2Q1,V:! :0_3N9?E-EP.6_6,>V .G*]D\P^UYRR7CG#: M)HLH'MR (;"W)$;Q:>77X5R2'0$H4^!H6=]P%&)22 'D8H&8**D?B*().C## MAE)[Q8ZC3E&I59@V1;12Q$N+7L96A?58."0Z/#&0AX(8=$1%XK_WB1S$[+'3 "?)I#,'S-+*/]1W'2Y>DLZA2'RAY7B<4F!$"6@ <58[3-$? MJ/QES;"U=E]<#XW&)SIR=$-.RS>/;__S&UH232R2D<.["?QZ1[[$FM75 MC:_+5H9$3;L&$0XXRB*46S.Q]JLU">YK?%X5WS.8_T;"2$NOG)_]_/K[-S>T M@O^;_$JLM'K*_MS5# _*:"R9,M@KOWIP]2D,:L2T:SJ=5 M%TDU&)DQS90HB .ASHK$W)S+$!3,AG?K))T:99>C2_I4R@6#N0@:++$;<[?O M5#<<&M #=%):CT26&DA"4H>B"TK+]M1RBW5@'+@EKVW(R<%1:MITK8"2T,G MYV1.9N)X1\ 1VL#JKH*1Y!I((BLQY+KMFFZUE\1D,H+X^4>W+KMB?=R.I(X M>P3.-21<4[/@@W& Y"1N!87N3:KT-^6B[U NTFW(8ABF94Y5GL:H+7)945S-P5!Z=)2 G]:"U%N=Q[VK2YV7[OA^WP\*JR^.;,(E(9RI( M9'4LIBO)7,D!88B\L%NHI@XN^Q/LW?0:;:?2*VZ/[ATCB542;^S13!F)CN5/ MXL8#N^-_ "_VH:]&N0R)S20?'#]193T)E6E:HZB]DGH@!Q6#7;9T,+Q>LXY&ICE@KE; MR(;PC(PT"&90CJUM/&I0!*BLZ.D*)5(9+!?*I;SDN=A3W(B#&^)!5, M.G(; M?Y=X3/<_L\/4@LMN)^TSO$=) &OK /L0]/W%1E(CK*'GM#DW2+5+"_=RELU. MY%J.#9W8O>P"ANNBX>+5Y$!S!)\[SP#SZ(EVG'3DA[G?CN2_[C?&$RJG>5:P:9\Q^UFGO,0*M22\S\65K==D%KO.QI^4"!/481$*U1+ M MI#U[U7#!#FP?$^N+^)%0@X>@'.SW=D0:T%NL.I;7$: US-KET07^6@7'M' MAV,16O+B4+QDJ;2RP^(*=8,J0D,>=\322?5B."TQ3"[M$K7'( I 7C%WXC4A M%P2*1[*HNK69R"(V>].):07#L=6GR0_5P\CQI"PFCNI!I^@A@XD1RGI,S8[1 M4;7V69PN\JT<7.S]E"BWHG 97?.DZRZ+'[L8E%JU'*"DX\_+^HK6.C6O4!W6 M]8(8Z+YU<9?%#P!&#X@ADC5%DF995BM)6;EV52//QD4+2.R/6J*MCE_$L:S% MY]LWH5TQ5!C##6?QDN((?GD^UDUUO "0F6#8;[6^LT>+2 (EB8-U&=KOM5!>@6MR/51Y)=21[+^6X%K<@P #_H"YT^'\A^QQ8G_2C*:26"K! MR/><6_(:SG+Z@[LIUO5J#5[@EL'4(H8Z8E43@''Z>E4+MH42+O%;)>>M<#/M MK(&?(Y5PT\EC*ZV=^W1UUGQ!L1>P4"F!(?=G;S$((GDEIP9]D9]1D@JX3Z)@ M']M8)6&"Q:W&DNM])JC("KGO5N+/7BHHU0SSOX/]*!/;KQ594*P(R,@>JZD@ MK;39D"!#*9) .[&)5M,0=C9T2/>A/?)YTLE8#DQJ<8M1IIW&G.L:QQ^EH<)&$%.RT;[:]6^/Z%^T[ MO;3\7ZK*9CS9.XYSI@H.GFI?24(7P6&]2(V>+O(A9W6F-:]:!%'V84LLSK$E M7A^QWH*H^V-"*,CU5\7:0):TH#3WD!1^L0').1X4KI<%SH+[9S/-4D BL"SS M8EG=LX>OY?1> 0W;^!$GO4YL+$,)]=)Q-U!(!R3/3Q5RL#@T3Z?F^>.CI#5O MT'08F$%J;7=@\45ZP@OV: I)_+C3[FU(3.8H(A!H=+21)N ,KB$JNJ+?QI)C M;!Y!8:6 P@3()$D5AYL'-&HM SG^E)56TQE< N^\KWU(0$T")"X94'ECH#S4 M](904.,Z*<" CN/J+PT_+XNWF2#47%:96?D0P[%$PT&48YS7/#"+LESM(HD[ M\J%MJW#&N73UX RT4RRWRT'NU"_/@*D8XC*R&+J&HE4R)\^LKI>"(K;9&OHB M#CSH9\^PGI#9N2Q>'ZDV5)QSV0'PE;Y65503"U,LZID5^74AC+E?<6@G.\@P4'7#H/[\-5,VO7&,SOIG$\IH=> MU=@1A)9;* 2B2A5LH5>(:#\]AZBV76W_L4(&J8DB%A$;P+Q D_"^V5V'<:'9 M D:Q#,@Y.Q;F_2;E!:;^N+>0%4^R"UU9%_Q:%L.H4EQ54GP@84[M\Z4DLN$'50DX4/4F MD$ZJES63.;F2AWD/Z3#C$2<<][B52I_41N]%:-6!>1\MG' M&&PFC=IVO5.\T$C?BZ/R<%;GP:7!>):\^2VW\/)=&4)0MB6"T50P$D %H!?5 M^B!=+X@<3$%#NY+6!S2XF>RB>$-+Z:U!%QUBI-]"D[DZVHF)MK+9R056&(^X MCI99LDE1.XXE'$?+HL$*<&X"#3ZDO(U#E!OZXV C:[GX35">L-GL;Y-&XK8E M6R1TZ<''!_YK,@-3KEQHU;&@[U;,(%%7K%N7:NA8A\D$D!C:(N4J27596,\H M!?<4:4G_T'4-K95,'[L8LY#^;W"]XBCEXV2 4(,5TULD2Q2IPLO@.N&(A\<: MT$BI%.2=);[U]>7SXJ+ ;2^HS:&OI E&H.Z^A"]R@>OLU%$$PB<],*:K$&LA MH\>6CY$>+NEPLL4R=X;R<^"&?2E9[YVQ>"5UZS*\ $A6^#I]_P!KCFM7MS86 MR$F#O&"F9]$VGET6?^VZBF7SEU2OK>Q3S0-&+X[I; V]VIYO]#\-D+N@='-8 M/<.O$ZX[Q64+LP!BIFV__*I>]F8G%396ZVT9@5^ 2.;=[67P;U+$;PKE6RF7 M7)R%?@W/DBP(*V%TPQMR$GW,>H)R;WH MOV=Y4@9N[IG]TZOR8JYFIK#<2FW'#A/:H3+.G=MR5 M$*3TR-4"H*]"&J>ZY+%-JUMSV3/0 K&R6&YCC)!6W4ZVF>9@N7$1/Y>TP M[9($BX\*K SF#LE]Z9D(335Y1CN43X5D'5;BG' @E*R ?UR^Q4R@#\*,:/\V M +4NJ (?!SG \:K"@,M/&E"K!_,!LV1!,>#XQ.3AAN-8T(0#U(K_(L8["0LXKZ,-A%+@IS,3Y H7(.,"TEVN0UI M:K3XUGX"MR5N,$(I105/\O$L7-47 MO$B;;3*T*I=O&0TA'*:3[8BBG>6.9MEVSY1$Q.,"52XMU(,O4\HP2?E >-? M<[FRB_"T+I"/QRZ<\MI[E%[+N-^Z=)[#VOLN]K+&V 878P1"+^UJ"B(@ASI% MS!P31_2CW9KB!RU!UJ)5I"\K"\.U[R06PUFKB=2YI^4:,5W1]\)>EQ9B8'/Q MQ 4U#)%#*&T1D#69W J@ZE:QSJ5T:L1LRR8D< **QIO/ZYV#F2,=$V9+"Y2X MGA2M%2[#_K4^.^\ECX0R*9$R?PTZTJZ6<*7ET1J:X+?[8:SRBL/$I+(_US-; M+_:*C6ZXBAS$,V+8 3"M_- L5ZD6L M<)#OXXOW'NG-]/XKSN4&\MK'*J^APCV$"S&5?8/%Z"5;*6,$)VB1A^",ZX5C M[#.>T0N!Y.Z@J ],5AA&6B/M78F.T&H?XAQIA;1E6Y_-SN5 N-55@*J1<:./ MP\$@LXT$^Z82LPW815ISEQ:GA%XO8Q)A("U4#OAC_>Q1T)^YGP_!$#RE/;@"H6)U4;C+ZX@/DJ\I M(@^O&C(/%W<+<@4@QW)CL=Y:P3=]"/"L.Y5N5F%*I85YD(R>"O!MH'=!:QE@ M+F0<=BSPHQ?DF)5]@YL&-G8;/PM\LD2F&A$GF_@ #9 43[Y14#1;9R'&Q>"! MR;*GR=R':*_NY)\F-[[JFU8?RX=RF96%L(>KM\EF-T+R 'JO@)8'/'0OY4S% M[/!XPV#'6.-UUR\I].#V!D8>,Q1*$+*]9 CDVI'\A*UHTY\2HMR).X5 VJ5T M?+H6=@7HC2X6$XL6V=X%B@%:1-EI*R>L/ B < MLLVG@O3V2#;WC=IFR_1R_F7RTPO'GKV<5%*OV63*92(*E] &PX:2ZL5L>L\ M4I]DFERQW,%I\O_TR6N)=8'KTH?03)NHLA@!)(<;M.LT1$B2.G(+7#)QL70N MZ>>)LTZ?L_W*VHEE14M?:".QR2-[+2L%!=79M)@H1E7QAG,K$^&FXBU7MWBM M6V1F-M(IV4VGZOQQ47>'QR*0A74H:=G>GN+B2ORP<X\,JNKOJR.+]Z9![CWE8C MC*990]O&K#B_GCQZJE$DN6D.(]&;3Q\EI00L+%&1B6= #SU[5(0:\*//A)N@ M_NB\W"[Z_-&I\PQ.0 #,Y(Y+C@!.S,).BW4+QCR=W;7[1RCY97%S\CO)+"E@ M8I=>V.I866BE&[ \:>J5:HA3XVDU,GYWPFMU+VY$"Z :RZ,OIK_ID/0]!F92 M'RSAN I6[T\!G\0>X)0V@;VT M+@@UD*JA5;'I]2NX&$,N_4N$CH&8XYNV(J-TWZGSDWG11O9 WN/X(Q')Z"P* M)5N-W P@BE$/)/5.N.Q"^ZOLKJ 6X>;:\@66+U\+).+OX83+D1+NDVB7PR# M$DZ"#WFIIZ-O,4S1KE+&BV,?#+>!J=XVIP4W;>95K<8Q7\#$TX8ZO:WL'/FF M1[$IV43;-Z\*NO,Z<.5AK3"5NH[LOQJ0(EF =2 )[[H MMM+!V_7OF3T?=].R!KZER0V)G5/<1, \U$+];FNS50])VE0/8/\0E4N]4G01 M[ A?D%$'GU?.B:-1OCX6_MJ%.&SV+7="*;/LG"@-5:-51_ MD"FSI4_<[R,N^I2?#LNW)SM-#T+OL9T<@U95IE6]:KVXFC^K%=*#RTQ7/61* M*.:3DH4:NG_DUW$D?A9%*5>KD*:N^=:@.+, .')]\<2T_4$+_"6GU"(3)06[ M-K7)I?6L)54C/L%)IP8CEA-I;I$O@DUCT8HIKOKK0%B\-#:?WDE4A,>?T/LL MN6BG_+4+/2RE=1AFKJ%E%$I3FY8HZ?IXA>T^N6DA;70UG1Y(,74\DP1@V/6I M?3'A3VD1HTJ#6+GW?&O&2B:'#L55!4B+A>LML_CO5\W\2[QP1 23B":D%W?= MJ95^69 ..&QQ-M72]2<"[-#7&^)KG ;D_<'X4B U+1R7(OFTWMX.\/2"M"ZW MPO6FM+?:9]B5.+A\. M3E?0G5T3,1L!3Z,5^U2$8 (YP=&CB+266]%Y^YQ2/33>80!=+B->=OG8@3UY MD&T^#O.8K'S4B]*(7V/Y8\N86+6W$=]*R,"^,+\A0-01L@1L,)T^5J%D[)!' M)GE+$-_9)A$7"O_,?LZ$91B83: #8P:[O8%XX7CYM=Q6S%7KC(=G;(H;HAZ, M1+]D 3H,/O,J[-SM/QG!FW"%X/T@ZK0<@1MH2(H9X'XW M,?QY/Y+B8-;9>6+TM'C"Z^\4U>U8IJHF=,I&%_U'Z+J#*6VNG([Q$J)@(FGM MN%K"(F1WT->M"7SY85C<*QEZ6G%!Q4A*Q'[4-?R8871A[4PX'_P1+.Y$_ M\66O6FF9MD(<1Y)V;@(DL4M]= G6[WS,PY/?79104&Q6*%N.W/B)V-V#XL_Y MJZZKSJ6Z3;4!_G6@#WZ9;O&3-Q?+NB?DEO8RJ9"X/WUSC#6;I06TH8.S\\/% MMAF]7D5XI-QP7?;5CG] A7]'QFX2%+@(#,<7%W.]2-)DINFU$RMZR-#./LE= M/!H3/FBF8U7./T*->*'FNN[M)QTRO^W8KTA\.F5TQ%ET [F8/_PVQ@F)S$XY M_*R*W<^67+5A&[/B ;UM[M2H;Q_ 95\\'EZ^>%Q[^I\%_7_?[>A_^8?2ORF' M\N4+$H.5NZ5=>KE8XNNSJ[/D4T#L7Y_=7'UY]([-Q M2WKUR>6?GY\)%FK_&+HMABSFW4!LPW^N^8)M/$#?+[MNL']@ J _O+R7_PM0 M2P,$% @ 2DL(63 )$57W" $!8 !D !X;"]W;W)K&ULE5AK<]LV%OTK&/6QR8PJR;*=I(GM&<=)MLDD;:9.T]G9V0\0 M"8IH2(#!0X_^^CWW@J0HV7+;+[8( O=Y[KD7O%A;]\672@6QJ2OC+T=E",WS MZ=1GI:JEG]A&&;PIK*MEP*-;3GWCE,SY4%U-Y[/9DVDMM1E=7?#:1W=U86.H MM%$?G?"QKJ7;OE2575^.3D;=PJ]Z609:F%Y=-'*I;E7XK?GH\#3MI>2Z5L9K M:X13Q>7H^N3YRS/:SQL^:[7V@]^"/%E8^X4>WN:7HQD9I"J5!9(@\6^E;E15 MD2"8\;65.>I5TL'A[T[Z&_8=OBRD5S>V^EWGH;P_YD)++H@ZW;P["@UB;]EYLV#H,#SV9'#LS; W.V.REB*U_) M(*\NG%T+1[LAC7ZPJWP:QFE#2;D-#F\USH6KUU^C#EM1JU#:7&BS4CX@YN%B M&B"=]DRS5M++)&E^1-(3\<&:4'KQVN0JWS\_A56]:?/.M)?S!P6^BV8B3F=C M,9_-SQZ0=]J[>LKR3A]V]4-R]6WOJA?2Y.*=U2:(SWB.3GGQW^N%#PZ8^=]] MD4B*SNY71'7TW#DOZ/,O:PI-.) M."9,_&+$&[5P$84J?N04G([%6@F\4T[1UF"%%)6N=5"5R0JLW4CS5;( MI5.*13T*I1*C]^]OQ'6W-GH,F(=2?)*ZC%+\C.)];91;;L6C3Z74%1+R6-S8 MR5B\__1*/!JE?:/'8U()ZM%F*7Q0JA*%7#B=R6 =9U$:H3;:!]JP4B:W;LSK MKZ[_\UG A+$ CPDR* .%,2_80EQ732G%+0LD.Q^-!BM)ZRM5R;5TZ@&/@7JR M!.\0FL;9/&8[.VF3-82V,6*759%]@-E?HQ(A+I1/IL7 0G_PF:R4\+:2CF3] M 1+S$_$)A@^-+63&VY&:4F>ET%Y4-MD O8Z5^3>3Y9XQ$"ON%6RPNY/:B.A M<*&6"!A,JY7+M*Q:JSDL%:30"8I58:-#MKX"#<@^B20\3,3OAWA ;G/.N;$3 M<4)Q" <6[\%@#P3#- D8\"Y66S%_UF&/Q%=H(1RE6M4+Y5"X@11HF-20T2G7 M+)3TR@;^K. 6#*;GEU:ZG!X^2(.&XSQ+K>47)1JY352@J=7X!N$^ ,;WWSR; MGSQ]X1$NP\002?"BTDN&D>]BI5;D6"AAVM#OW()4C(541UFB7W*!#'<&^(CT M]584SM9"XX==LSV(?X;SC\B(^>S%#2*N@[B-36-=$!_;8_SVY,7CB;@&'%GB MD9V(454A_2)0%2!]$G[)1@=9)?_T(B:O%EOVJ@LXS!UX-4ZQ)O"G#:*(AH%= M6Y0*@F#8"X?.1,[ZDBH(<3UFUD+1X9S0P554RA4JSDJ#1_9';1 '-D-)/$*; MS,5WD[VT:,I;4-2Q6*B!R1E,C X9JT&& M.H/BI@$4,Q 3$$:ONLK'"=^Z0,NI73,N 4,R8@EN1X!:_+%)J:0Q 'U1H8U? MKZF6)A8$+4?^,!7\2;_203*8:XZC(L79N?B.K0= L%O/S,=(<@LL]%0DIE? M*&()J'O4#Q/;C5 XZ6JR!"ZD.#\YKNB 78E_(0)R@5RH7&Q[Z!PKPD,"9AH' MZ"L&9@/*V>Y*&H]47AWEXFBR=-R:>G;-Z56A7B]45FD<5#\4A0Z2YS6 M^HR0D:9_*S0DE$-KYH&5NSP@C-BULMQRG.*&;T)J+I32W9PPQ"2-2G"\V,SG'8(^Q![\+NVD* Q28"%); IT/*!1:D,12= M1?1P%G7;H+-/Q*N$[WZFJ&6N..5 9.HE.E WNH^12/"W8C;Y$<-P5='"/B5- MQ)NVP7N] 0WQ1)KJ&_.DZN=)5BPK;Y/V7K?,04P0>T0]40_6R/QOQ6TR2:.6\7QEWS12E M5O532E\EGFFS[PIDD\$]%#=.4#;%N-4$T$7G$IWL-=4$)"8&Y;3-)^)GFQI% M>W(-)AB:/CCQ-[T_/8QN*7-NWQB>HAG8RO=+Y E:>RW6=Y9A>'M+HY8Q[76T MI[0C@^@.H >'@Z&Y/6\;,",&C!CKSL9N&*3D>)*, M:N2)HX?I!OZN;<=PPR3OID#X7> VPV5.'U@HD)VS/0?TSNYKYJDJB6U)H$< M]@'F]YHF!BX'III,*:* L\EL2&/I*,YB5%:8OQAH=QF&"@O32.HA&UUC,V#T M%!T=VRET#X>L\[S-OTI#X5ZZTPAPB,\NM%0#VK#S*"[L(!\Q$[F<9T)&"DVS MU.%2(Q7<:_DP\)"X8Z&VMIW^NCY&@H4N1!WITM"5*:>P':]IR@%Q(#;A,#!D M1,O_72T.V>1^$69+M"&EQ4ND"E[7F:;6B!.(6'@%SY#) A%"SL M2G%VF$E39UE",;R@&W"EVJFRD3IO;]Q#9Z>TV$_J>6@'T2%TUL@_X9OPKM+EUS1!XGV/,[5 M':0-?16D;@O^X_[5]@)(F]SWG6^/Z:'8!O^YK>P 5<2_EDJ##J.-N!]83$L MM@^DH/\(?/5_4$L#!!0 ( $I+"%G\D9H?$ 4 ,<0 9 >&PO=V]R M:W-H965TY8P7WF)N MO]W)Q5Q4.N,%WDE059XS^7*!F=B>>X'W^N&>KU-M/HP6\Y*M\0'UK^6=I+=1 MBQ+S' O%10$2DW-O&9Q=!#.C8"6^<=RJSC,85U9"/)F7F_C<\PTCS##2!H+1 MSP8O,['] M@HU#4X,7B4S9O["M9<-3#Z)*:9$WRL0@YT7]RYZ;0'043OQW%,:-PMCRK@U9 MEE=,L\5GIQ0_&-4<*C9#$OUK"4DA5K MI+AK-1]ILF#D1E&#=E&CC=]!"^%6%#I5<%W$&/]5?T3,6GKC5WH78R?@3U4Q MA- ?P-@?3T"E3*)RP(:MUZ&%#=^![?-V *L7N"EBON%QQ;(^YVO023^HZ9\S M5;((SSUJ$(5R@][BQQ^"8_^3@_*DI3QQH2]NF4;)60:/*',%(NE+61]I-^P! M.R2GZ^ZN&^U[Q27&H 6L$&*NHDPH>N?40;1:"JF!Y$Q+P,G1SQ!7TI#0*4)) M!$4,D=B@0:!PZI2K6C3PCWZA"%<:"J$;'(R'\%44" >K0_A_9I/#X=DI@1L RBE)44O:EM&Z' (UTF"=LP %2Z2TW7A#N"1TKHA&I(54P(K8+D65E)1C>,"""PG?>(1P1X5& M_4M?!^23 M&J%- .,V+\(D+:$LF!PU,:2\YC5#6NV$GH'78= ZQG:MZQD-$BM$<;1'=. ! MQ0(9A=*8 (H7.4V-;;OTM6Q[:K;3JSJ5B)#7T[IF;$NVG;5#Q\R:MC-KZAPN M73\Z4PJ6=;3ZII4;,&&90@>QXY;8L1/GZYL@_T-R;M!]Y&8MN=F'HO;8EE,? M-S?F/FXG+;>3#P?.S<^-NX_?:$=E[,;D.NOGXM;[Z [K(KT[=P;. M,^)')N(>1"TK5^,$N_-EX#X)6@IFIZ![1']Q#!-2]8G>:Q]39'0]-0*TG@BA M7U^,@?9_%XL_ 5!+ P04 " !*2PA90GT8==T$ :"P &0 'AL+W=O MEAA(V@[M M@*)!VZT/PQYHZ=CB2I$J2=GQO]]W*%EUNB0K]F*1]+E\Y_(=\GSG_)=0,T>Z M:8P-%UD=8_MB.@UES8T*$]>RQ3]KYQL5L?6;:6@]JRHI-69:S&9GTT9IFRW/ MT]FU7YZ[+AIM^=I3Z)I&^?T5&[>[R$ZSP\$'O:FC'$R7YZW:\$>.O[?7'KOI M:*72#=N@G27/ZXOL\O3%U4+DD\ ?FG?A:$T2R& MAWB>B+W2F9!^:=?+SB%<=B&Z9E &@D;;_JMNACP<*3R;W:-0# I%PMT[2BA? MJ:B6Y][MR(LTK,DBA9JT 4Y;*;;QJSJ<1!N5X6@[* M5[UR<8_R&;US-M:!7MN*J]OZ4P 9T10'-%?%@P9_Z^R$YK.,#>?(QN MGNS-[[$W1$:IUP*]7QF]4=(-@?Z\7(7HT11_W15W;W9QMUDARHO0JI(O,C A ML-]RMOSYI].SV2\/@%Z,H!0V+E-@B MIQW36ANN2(ED:$&1+H"8;6L8C(ND;$7XLH>,MM'A@/AKI^.>*HV\Z577DVKC MN=&#G&5R MGAKG<>Z5#2KQ-N3DUFN8$$A@LR'+.[,G'4('<*%6J !$R'6>2M?>E)RV7I>RI:X5%(_H=#8#OXR1J( F4S%% 7.\ST:]0",$F$)6FC;I0"[P,F2Q82%2LEV6@ M[UOG!7#;814X2(I*TU4B*7-.OJ5J=82T>,64AKR<\@T&-C02*@&C3.A1H-C. MI[(A[M"A(",>J7")^OI4 VVW'**D8=4%-%A( "!<=67$2CH>Z0LB&[FLK3-N MH\7EE?*E4?M +P=L;VTYH9/L<(Z&D)A1JJ ,#&#NHW?Z'I$DH6K6#\2%U!XG5'FD5.2S&P$L1C1'="TK.V?4BB(HV!FS(,HQW7(&ZV M-$-P/K1[Z;9LE<6\DL)JQ-I8O=9E[Q]5V&JY$OL"!V3X# M]43M>5X\+=+N1Z+9*B-GX"G(^W3R?&2OF'I$Q6*R&(]R9#E-.;P S#Y/7#OT M?IZ8"5=B'8[2[2 VULQI^)!J(7NC\02 3L7F_?F/N(YI-;8^8' M00C>(2^>; M>/]J?*?\1OAD> W5V>3IDXQ\_Q+K-]&UZ?6SK\\:>R!@ ;0\ !D !X;"]W;W)K&ULE5=M;]LV$/[N7W'0@B(!5-N27Y,E 9QNQ3JL:Y!T MZX=A'VB)MMA)HDI2<;Q?O^+[1YA^;2>GHOLA+ M>Q%DSE5G@X%-,ED(V]>5+/%EI4TA'%[->F K(T7J%Q7Y(!X.IX-"J#*X//=C MU^;R7-R5SO;D(HF W<*/6F>.!P>5Y)=;R5KH_JFN#MT&' MDJI"EE;IDHQ<702+Z.QJS//]A#^5W-B]9V)/EEK_PR\?THM@R ;)7":.$01^ M[N0[F><,!#.^M9A!MR4OW'_>H;_WOL.7I;#RGD.'90.,'[ZI?#>-4R4&Y=09?%=:YRT62Z+IT%@0G4MV)92Y# M*J4['SB@\YQ!TB)=-4CQ"TA3^JA+EUGZN4QE>KA^ *LZT^*=:5?QJX"_UF6? M1L.0XF$\?@5OU+DZ\GBC[[EZL^>J6#EI:)%#G*),)$'F],[(5#GZ35M+?RV6 MUAEHY^_G&&DV'#^_(>?3F:U$(B\")(R5YDX&EV]^B*;#'U]Q9]RY,WX-_7]% M[G6D29]> GON R4:.6F=3$FOR&5,&O.GRO59[UB5&-*U%65J3P@QE%T,Z2=@ M%$OP/8K\R*CWV8A4[F%;.J(X#E%1\#">AM$D[MW(7/!FE3!N>S W#B?3,FTIFH71])3B:3B/1KU/L-X<0(X) M1FDGN,R[-'4&GQ MX%!@OL)+JW-AJ&H!4U"JCQ'9'"'9_CD(%NE%S MF:O=>OFM5I4W'PYF O$T\DY!*5B6Z*+*)9O7[ Y-B#NA8R9=*WC?(? G#, M:,%U;9(,!Y)!_#<95EBC M%VJC;XX;)<)FR-&MYQ@L'=%I?_B@!*,+O[ZSVCN90!1&[L5_A;Q)FTA4"@F) M73*50*"8M93,)+CEU( $&T%EZ*U4BD5.9PT2SW7FP$Z15CO'; M,,-M>5]A'-AI;78Q@ST&X?]6(P1 Q3:MN6 MVTR4ZZ9$XF\-J\NV 'O16:L3Y6U!>V@= -F-O9-E*7)?8WUQ>91-C?>K.L_Y M$/"G*5@J*Z'2YR <%W&&?^SHO'_:^;HQR3G+B@Y0U'&8U85_QR MZ8=]8[F$-WZ)>?&D@EH/CL(016X+03=ZQP/V8@I_UTY2- TI.#SUT(*45OA& MU@:\/=>5IGQY1P\W6VJ(D3-FISX^_CQ;J3_N.*RL,Q!SIVQ;(%JZCFC8GW8$ M<*[SK"=G>\A1X@R!"O+M?AZG4"#+T[<*$G7N'EFTD3F,+GP+ MR?T(EBGG9>6E\\KQNY>M+D/A\N98==^"45/IGEK,1GH%X%_3P=BSWF>/\/S* MVYZD6MS^ ?1H^C8"W7*U:MBF7T59'"22^/-\66VT[)_SSGI0B=MY:4^G^_[[CL[=YUM MR-S9$M'!GTII.P]*Y^J3,+19B96P0ZI1\TE!IA*.MV85VMJ@R%M0I<(XBJ9A M):0.%K/6=VD6,VJN"N_ZNT2M MRG/AQ&)F: /&1S.;-]I26S2+D]H_RK4S?"H9YQ:?]1JU(R/1#D"CFX6.6?U9 MF&T93CN&^ 6&*7PE[4H+'W6.^5-\R&IZ2?&CI--X+^&71@\AB0801_%X#U_2 MEYBT?,E_2GR $\X$:P:-88 M+-Z\&DVC#WODCGNYXWWLNR_RG+3]X.D0=O!/[(RXDZS#'*@ 5R(4I+@EI5Z= M'!Q*S2YJK-"Y/0)^ >Q? ,XQPRI% \FH]20'%U)+_N1R6!'E%E[#Z'@P.9ZR M,1[$X^G!TA,+G?D:#IB(QF\CR9P4WI0QL/'>@.H,5 \U?*/4UJHC>1)(]4#CP\E?.F.^!ZJ MVJ?/^9AN>3@ WC>RYD'C.,SQ'..C] $:QC?&-H+]#/,W)E8&<1LH,I]T(UT) M@AORE@OMVI4O*D>;&9GR>=$8!AHO]AMQR9,!!,LLHT8[RR09RK5(%;:M!P&( ME-8X?.XC"G=:G%.LVD'F'Y69NF[OO?VL7'8CXE]X-VB_"K.2VH+"@J'1\'@2 M@.F&5[=Q5+<#(R7'];1FR?,>C0_@\X*XE.W&)^C_019_ 5!+ P04 " !* M2PA9>5S*3SH# ?!P &0 'AL+W=OO.*A%L0&.))U,A3G/[[ M'2E;VV^V J1X+FIE5T%%5%[$X8VK[ 1=J);5&PI MM6D$\=3L0ML:%(4/:NHPCJ(L;(14P7KIUQ[,>JD[JJ7"!P.V:QIAOMYBK?>K M8!H<%S[*745N(5PO6['#1Z3?V@?#LW! *62#RDJMP&"Y"C;3F]O$^7N'SQ+W M]F0,CLE6ZR]N\DNQ"B)7$-:8DT,0_'O".ZQK!\1E_'W #(:4+O!T?$3_R7-G M+EMA\4[7O\N"JE6P"*# 4G0U?=3[G_' )W5XN:ZM_\*^]TUG >2=)=T<@KF" M1JK^+YX/?3@)6$3?"8@/ ;&ONT_DJ[P7)-9+H_=@G#>CN8&GZJ.Y.*G*ZHL MO%,%%M_&AUS=4&)\+/$VO@CX:Z>;S9"Y3?/?/)MNBI M?_#4-Y[R&.X.+?ACL[5D^.#\>:X-?9;D?!9WF6YL*W)YF](-4O*0[ MR]'V1^!=Q6%7X1YS;+8,.)OZE=GH,ZI"&[Y@K;:2H5]#-LZBE/_I.,OF_['O M)56L$K5PV5MAZ"M,Q]?S!-(X&AT+QW[++9NB:<;?.)T.1A+/;$F3%))D/KK' M$IE;P9PL.3H&GU!U"%D<099EH\?.("?A"^AR&E'#'-Z\6L33^.WHP[GF)&,F MQM6GL\7HDR8.> W39'R=7?>#:'$-&_JV,>/S?98JKSN^71P83R+6A;IV$L<: M#0*45E=2<4EHZ6J+PG#[#U+"2*)X$BK'H56D@<_G56OT7RR4?@?)=+UDEE*Q MKPOWXBE)HIW ITK: 8:'%KDZ1MIR,] 0/P0GV7R]DW,G/CP1+7;=>6EV1ZA3 MU.O7L#JH_Z87O7_=^Z?CO3 [J2S46')H-)FG 9A>COL)Z=9+X%83U^6'%;]@ M:)P#VTNMZ3AQ"88W&PO=V]R:W-H965TVV[VJ+H@A.E>IG23+N M5T+J>+D(<[=VN3"-5U+CK0775)6P^VM49G<9I_'3Q)W#/R7NW%$?6,G:F"\\^*VXC!,FA IS MSPB"_A[P!I5B(*+QM<.,#UNRXW'_"?U]T$Y:UL+AC5&?9>'+RW@:0X$;T2A_ M9W:_8J=GQ'BY42ZTL&MM4S+.&^=-U3D3@TKJ]E\\=N=PY#!-7G'(.H1$YJ#LK*6UJ5Y.>7'Y DN47?$Q;/]//.[[KU MRU[Q&\-'HWWIX)TNL'CNWR<.!R+9$Y'K["S@[XV^@$'2@RS)AF?P!@=A@X W M."L,_KI:.V\I]G^_I+&%&+X,P?DP=[7(\3*F"^_0/F"\_.&[=)S\=(;@\$!P M> []S,F?]7N9U?0".L&?$13WP&PV,D<0NH"=L%B:AB:#(T@-#\)*F@%ED6W4NH>W.,CE0>X*@K)"$*I M?0]V3]NW.U'5( 8@ZEK);B-08LW QN[_A1;8"F!9PN9E&!;X0*6CID+@82-R MJ:0/CBO<-LEI]0N]/ #IR$HG-)Z*!CU0Y77L&3(L** ,@1#AJSDX\LKT1LZ%\^1)@GN M;4@E;@;?>M&GYRR(A//P/7DGU&;C*;7C9$;M<#:)5J6Q_D<*?'5LG:8I_1+" M"YC1O?%"/8<;D@F!3AANF@X8=#:+[I"N%.N5>A[=L"4)MQ1?W2#O/IJ%-@F[ MC[@=C\CIEDX!+-<,,* MJJ22ZP(_"3";P8R5#""=)/]9#;QO*/!(_/GM"VESB9JWDMKO\.R07 MNNAMJ-W\-&2'4-X%V (MGU$(7WLFD(XFSR1T M)!QD/8I9] &=FX.LZJ:- \462>,;.LTQO(UN.?6(\H-0#89\.M&DI%AWMYP( MI;W9>!C=M(D"'%Q^:<^X[?D$B>'I+3RL]T!CN!;Y"6C:2Y/)_^('+Q7K_M&3 M6:'=A@\#3LE&^_;U/,P>OCVNVB?WFWG[X?)1V*WDNH8;GO/0Y9J*E@UH?6.,?QKP!H&PO=V]R:W-H965T/K51V%37.=3=)8JL&6VZGND-%)SMM6NYH:_:) M[0SR.H!:F>1I6B8M%RI:+X-M8]9+W3LI%&X,V+YMN7FZ0ZD/JRB+3H9/8M\X M;TC6RX[O\3.Z7[J-H5TRLM2B166%5F!PMXINLYL[YOV#PZ\"#_9L#;Z2K=9? M_.9]O8I2GQ!*K)QGX/1ZP'N4TA-1&E^/G-$8T@//UR?V=Z%VJF7++=YK^9NH M7;.*%A'4N..]=)_TX4<\UC/S?)66-CSA,/@RBECUUNGV"*9]*]3PYH_'/IP! M%ND+@/P(R$/>0Z"0Y1ON^'II] &,]R8VOPBE!C0E)Y2_E,_.T*D@G%MO#-VO M<4_ 50WXM1<===S%H- M$TBH;?;[?6&?I. M_GBN](&9/<_L9^?&=KS"543#8=$\8+3^[E56IC];-+[-]Z2Y?)OI_" M!;X7SJ#2-(C680UZ!ZY!V&E)$RW4_F;R6B@RZ=X2Q%X#W1J.MP9OL,)VBP:* M+%B*R0>D,6JTK$&TG=$/Z -8N(*B6- SF\TG[P3*\^A9G*4+>J9E/GFO!BWR M0^VP:I26>O]TYCR;,V!E.?E9:ZI]3[!YD7MPQB;WO!..2_$G%6+USAVX05BP M!HW74_MM!\OYV'WX<'[G9"V5!XHZ@Z70^B\ ,8CQLG.Z" M &ZU(SD-RX;^7VB\ YWOM':GC0\P_A'7?P%02P,$% @ 2DL(6:RK/))D M P $0@ !D !X;"]W;W)K&ULG59M;]LV$/[N M7W%0BR(!#.O-[YY[X;UH?E#ZLRD1+3Q40II%4%I;S\+0Y"56S(Q4C9)N=DI7S-)1[T-3 M:V2%%ZI$F$31)*P8E\%R[FFW>CE7C15[]!^JF\UG<(>I> 52L.5!(V[1;"*9^NQX_<,OW$\F),].$^V2GUV MAW?%(HB<02@PMPZ!T7*/;U (!T1F?.DP@UZE$SS=']%_]+Z3+UMF\(T2O_/" MEHM@&D"!.]8(^T$=?L;.G\SAY4H8_X5#RYNE >2-L:KJA,F"BLMV90]='$X$ MIM$9@:032+S=K2)OY899MIQK=0#MN G-;;RK7IJ,X](]RIW5=,M)SB[?2@:Y;T.0,Z 3>*VE+ V]E@<6_ MY4,RL+UN'J:F9KEN BH8 SJ>PR6KU[$D^CU!1_& MO0_C2^C_]^4N@CYOLG@[M&P*]4K0:N_D"FZ9HR /L,@ WF6&U10QI[2CK8X#TU MF)K$+>:E5$+M'R$99?#JQ32)X]>0CB)X"\>5\209!.X]KLH3N%Z<"8FA#X9TS<;)[ ZQ< ':J7&!4'[8-A2 M(T+5E@JZ4GGBIHNN\VX(UEE*]R\A&L74!X3P+4T^I0RI49H:?:L3CT//<51G M^,/W*TN_49:>43:"3:/I9;]/E^_*W#X"98-J]-=DVC+!9(YP8(:BVR6.F0WN MSB$_32BOR.?&NH-B%K:XYU(Z*RDA:]1<.:=NAFF6^C5+IX./FDDCCL\>3\?^ MT=-)1D]^ D7:GX#$DQ_:]2:%YPH\/&G3%>J]'T:N2!IIVX[=4_MYMVK;_%?V M=EB^9YH<,2!P1Z+1Z"8+0+<#J#U85?NFOU661HC?EC2S43L&NM\I98\'IZ#_ M"UC^ U!+ P04 " !*2PA9A3@KJ24# +!P &0 'AL+W=O?).-D;/NE-S<&0+6:MVN!GY*_MA9=9-J!4ND%+VEGPN)XGI^.3 MY33X1X=O&K=T:PRADI5SEV'RMIHG>2"$!DL."$I^5WB&Q@0@H?%KAYD,*4/@ M[?$>_76L76I9*<(S9[[KBNMY\B*!"M>J,_S);=_@KI[G :]TAN(7MKUO<9Q MV1&[9A):Q((5Y5NZBEGU4\4C4$7QPEFN"5[;"ZM_X3!@, M-(H]C65Q$/!=9U.8Y",H\F)Z &\RE#6)>),#9<&YIM(XZCS"C],5L9FZ';*7P1S#LU0"UXUK%< >\%QMS "C'(0&ND M$U4*;V.-Q %?- )!!"JRX]HC0M.?S\"O CE=..2+;&4PD6(<*R/K3R%/QW*[ MC(E"87O+9+",)"^U& 7$R/X&CWTZTM?_GVQZ+]G1(\G2V&%]MUC90=%0+=M2 M.A%(XK"S:YDTC6;13([ !EGBXD*_O6M$BFW=B@S&EC7.L_ZMHD)& &(2 D8L MTG4Y/J%&Z2IK94 8J)715,<,XL[W.Y<^=">R6P+5H-]$&2;)UEGNM6JP#DI_ MV@O<7_?^F?B@_$;;<(+7$IJGQ\\3\+WT]A-V;92[E6,1SSBLY;5"'QQD?>T< M[R&PO=V]R M:W-H965TD9,5-G S#^B)^Z.YWW\>;;J7ZHM>(!G9U M)?3,7QNSF0P&NEACS?2EW*"@/TNI:F;HJ%8#O5'(2L=45X,X#(>#FG'ASZ?N M[E;-I[(Q%1=XJT W=K"4+*;_8P_MRYH=6(:RP,!:!T?* M-UA5%HC4^+O#]'N1EO%X?T#_R=E.MBR8QAM9?>:E6<_\W(<2EZRIS)W<_HR= M/9G%*V2EW1>V+6U&Q$6CC:P[9M*@YJ)=V:[SPQ%#'K[ $'<,L=.[%>2T?,L, MFT^5W(*RU(1F-\Y4QTW*<6&#7$9^971:$:+.'=CL*L40,3)?QFUJC@ MIE$*A8%?.5OPBAN.>CHP)--R#HH._[K%CU_ '\('*%F7K M:Z(WK,"93P6D43V@/__^NV@8_OB*(6EO2/H:^C>(Y.OX47P)!QEX+$,Z&44G MHSIRUG\D+R35NC;$()= 5+"4%34-+E83[YP+NI*-)@A] 90%V&9I[GYE23)!>7;I8FA'IG[;K:.P=0KN1RFE".E/#5J266$&%U*]Z%^\A M)RM&:>A]E.+-$DLBJ\"P'I]>UC8U&CH]\(^*D"I\5$:M*$%_^MX M4JE2C-P#H/U+>"$V&\7I1>+5GJ"*JBE)F9KPC8:RL:(4G/,+\N:*7&+5ID36 M6A;<"=IRLR8SC3:DL+6ZD(JB0?^ &%LF;_.2>LUK$;)9>H[?M&-#; MO$!MJXQ>*ANOQ1XHEER6X+(?X8:2CHG]#QJVA\QPQK#*WEBUNIK1$^_36B%" MW79?M-WWT;_W?'?ZS],Z/Y=\'F2DD-]EB1YL4DZ[;G*[0QTXQ&D=/SQVGH%9PBCL)(K(G M)0>%Q_O_9<^I1VYP-+K4J%9N0+-/ 95?.\7TM_T,>-6./H_D[0#Y@2G*1DTE MMR36\'*4^:#:H:P]&+EQ@]!"&AJKW'9-P OK)>/X/4$L# M!!0 ( $I+"%EY7QY&-@, ,<' 9 >&PO=V]R:W-H965T M).>RKQ\E.U[6I"D&# @<77@.#TF)&JZ4?C(%HH5U*:09!86UU444F:S DIE0 M52AI9ZYTR2Q-]2(RE4:6>U IHB2.3Z.2<1F,AW[M1H^'JK:"2[S18.JR9'HS M1:%6HZ ?;!=N^:*P;B$:#RNVP#NT#]6-IEG4L>2\1&FXDJ!Q/@HF_8OIP-E[ M@V\<5V9G#"Z2F5)/;O(E'P6Q$X0",^L8&/TM\1*%<$0DXV?+&70N'7!WO&7_ MY&.G6&;,X*42CSRWQ2@X#R#'.:N%O56KS]C&<^+X,B6,_\*JL4W3 ++:6%6V M8%)0?P"(&D!B=?=./(JKYAEXZ%6*]#.FMC4 M.ZMIEQ/.CK_(3)4(]VR-9AA98G3K4=:BIPTZ>0%]"M=*VL+ 1YEC_C<^(B6= MG&0K9YH<)?Q:RQ#2N =)G R.\*5=>*GG2U\-#ZZXR80RM4;X/ID9J^E _#@4 MXIDY@$-0< MWD(AXY;T4:OO[?$D^.2'QN MVS\H,83[@JH,K%2UM,:+19854*'F*B5)I3X^-B WE-&A0P6#)1LZ8]"6)A,D- PL\$ISM-DA?45XWUM _A7>@: M#FI-.RX$9@Q22X9'A((MW2<'J:@]6!+'!&2D:($4-*A:0RU=UA:2_VKA;9$, M9=[YO<(,RQD%DO9]RE-/W&&H@6:Z)BB71$\B?4XIATQ83F=-HR"_N8OK94^, M?D EJ)1$Z8_'?D5"F!BWLU_^/87@#T,;]IX^*M6_R0L/W>!HI[F6J!?^"3$4 M!)V'IL]VJ]TK-6F:\Q_SYHF[9GI!Y02!QVXAQT;_?X-U!+ P04 " !*2PA9.C^3&\0( 7%@ M&0 'AL+W=O?7 W5[8-I:GI@U.^K2KM]K=4VMWUZ&S4/?AH MUIO #Z8W5XU>TSV%7YH/#G?37DIN*JJ]L;5R5%R/WIV]N5WR>EGPJZ&='UPK MMF1E[2>^>9]?CV:L$)64!9:@\;>E.RI+%@0U/B>9H_Y(WCB\[J3_56R'+2OM MZOE5N[CV?#Y26>N#K=)F:%"9 M.O[K+\D/@PV7LR@=#Q(MO]=!WUPYNU..5T,:7XBILAO*F9J##5[K.U9VM@ZG75&>&_-4TX A>.,V2N-LH;OZ$N OU,P1L MO/JASBD_WC^%:KU^\TZ_V_FS G]JZXE:S,9J/ILOGY&WZ.U=B+S%_V*O^M[X MK+2^=:3^^6[E@P-H_G7*"_&0Y>E#.)'>^$9G=#U"IGAR6QK=?/O-V<7L[3,F M+'L3EL])_^]#]KRXL^5$/129'7GE-P+B]FI%F:U(F7IKRRWEN%!;[8QMO^=8$7&$5^6#6FG,/]RS5A@TYU3B;$>40SX^=\;AB67BI:DZT$L>W MSI.RA5JU>$W>3U@)G66NQ9\JC5Z9TH2]VFVHQN9(3I+E6VU*O2H)YQCK5+ B MV'C?ZCH3F1"N"E/CUN L'W2@:+FI3I #L]8Y MN /() /R+&ONSXIG!W +W5EVSKP4I&9Z1HR06_:VQJ'[16[#<90/E'OH[S^ M)?4ONZ-Z%448=-;*:01NK':\+[,.2M;1<]"G8(]@6V5]@!<_T>"\3B1+&JNT M$)RMB$.7-&'9RLB-8Z\B8LK6!!,@L),4@Y7_#O829Z?3/0<#G,N$'(-2(4?$ M%36M;3 2P;'R%$(9O396KBT34O*MB?$K:1TQ4H/TE8RC[MR3/L"6C8"I.O382N$0)8/^!##IZ(SW56-=4/<-,7(, M7/>=F=!D',.,5R]@^):X/H0-W.@;<:-5%4$KV&N\>!0K<4CA;*7^L>%<@"=: MD+%#'(/;J[JM5KB9S98OSV;GE^<7\Y?GZCL^Y-MO+N?SV=N+^;EZUVLO#\_> MOH@>?2SA8O'J]>+EZR,)?W=FC10HU>O%Z\>BQHEA2BG,6X:@F,0"CL^.MC\4 MRFX_K/&=@A.82^JI57!8*=Z'P[(("%RZSRU#5U<^!HFCW_I(;0S<7^T>C8G[ M"Z=9WF8IE#N!?N=I+ 4/0M& 9%!]'G1WD;F,5UTY0F>D HX "; MB;K5;#6. V$PM"P PVP)!B&SC9N$X0178@BG7R1BY*Q,B FG M[R/YQ<1P3+#C$]%F-I%DJP,@P4P%*1RB1ZH+'&8^/N>&M K M@_$X*84(H DJD^!R])&VAE4[!N0HNB_8-0F!/ O#7L:#N(Y>Q%@.N7U'7+X=+632]#*,G9'#$MCO8DPE\43I]]X43&["WC!JAQZ; M_\4E7X/-,1(,+D G 5,C6[C7(# M-S4I 6.9UF$<6Q+&I&;34UTWZ+1SM;8VC[4B$8.XLJ/;B?JED8EERT-)UQ/H M3#J,V#M%X!G.M]IC?HA%2_"'P-< J7, M-T1A8] !]'U@GW*KO?AX@NG'$83"BP_%KM"D/!60T^&-*$,H4:5\! A%R*&E M ;([7\9.A2,H,<+4 D1BA/%=:X&N3"(4:]:A08K5C#OH$S(C#F)Q//183$?. M<"_7Q<"WJ]^3B<.:-2PZ??95\ X7"9.EFM:EST0\PGX5V#/_<[Z;?[-OGW&< M=)J%*=D%JHC# V0&[D:[P#^L,B?*AAC8K3\=>]XW[/^6@Z(IR&4LQ;0^0!%- M!VTU$U4F2&8,KUN3ZUA;^XXD3@+#F4L0L=%;GKQR=O2C%OYARB<(QHD$4S/U M4W/*,E07"1A3CDD:^H,(WIDDBW*/D6=$>+19R3Z=!$Y&0MB?J\A\9?,S,6 )\ M&3HFF.,;PP,J] M? Y@+*%T=1V*3$H*[._6-&BG!7%]5Q%,EITE:Z3X:/%D2?VZ@HI ( MQMZ?T\26)A<1B ],%30P478?-0Z#?M=OR>!74^4BY^AHPWP3;RZ0\< M&FPEEQL"H3A>@/>%!5>F&SZ@_Q9\\P=02P,$% @ 2DL(61B4=-;E @ M6 8 !D !X;"]W;W)K&ULE57;CMHP$'WG*T9I M5;42)?? 4D ">I=60LNV?:CZ8)*!1"1V:IO+_GW'#K"L!$B5D#.V9\ZRKDJNADVM=]UU7I3E63'5$C9QVED)63--4KEQ52V29#:I*-_"\ MQ*U8P9W1P*[-Y&@@-KHL.,XDJ$U5,?DTP5+LAH[O'!<>BE6NS8([&M1LA7/4 M/^J9I)E[0LF*"KDJ! >)RZ$S]ON3R/A;AY\%[M29#::2A1!K,_F6#1W/$,(2 M4VT0&'VV.,6R-$!$X^\!TSFE-('G]A']LZV=:EDPA5-1_BHRG0^=G@,9+MFF MU ]B]Q4/]<0&+Q6ELB/L&M\H="#=*"VJ0S QJ K>?-G^< YG 3WO2D!P" @L M[R:19?F1:38:2+$#:;P)S1BV5!M-Y IN+F6N)>T6%*='D"8-4G %*8%[P76NX!//,'L9[Q*K$[7@2&T2W 3\ON$= M"+TV!%X0W< +3Z6&%B^\5FK.)!Y*G;$G>ED:QE(ROD)K_QXOE);T3/Y<*K[! MCBYCF];IJYJE.'2H-Q3*+3JC-Z_\Q/MP@WET8A[=0O^O2[J)=)FG'W>@2;&P M*=*S%,W&RR7<&QN!) &0I3G4* N1P8XIH-]2E-3JJM]ZS"4B5,VK0/,J@.X4 M[9W.B_WEG=;;@H/.Q48QGJEW]O+-$#Y;K:E0&L221&&+?(/P&H+(HS'T$QJC MV(Q^VP^#U@/5R"11)#!JUBV)4&TO^RX$WX_![T80)E%K3K)0\)5U(W%:HS8S MWZ>$71_\N =)'+>^($?)2NO%,NK&PCP8(RO0"WL0M(/$H]$/$XC;7<]O/0I- M[NKZ$1J>02\V%;3ODJ#Y4IFOH=ONQ0%<>CSN6;=7*%=6TQ3A;[AN&O^T>I+- M<:,6S^Z-YMXSN2JX@A*7%.IUNK$#LM&Q9J)%;;5C(30ID35SDGZ4QH'VET+H MX\0D./V9C/X!4$L#!!0 ( $I+"%GNA1T+C08 !@0 9 >&PO=V]R M:W-H965T[R>"ET T;KZTAQ^5%MIR]?'TB^^.&'S1O_<$U220K:S_)S55QD4T%$->< M!_&@\+/A-US7X@@P?MW[S(8CQ?#PNO?^+L:.6%;*\QM;_ZB+4%UD+S(JN%1= M'3[:[;]Y'\^I^,MM[>-?VJ:]"VS..Q]LLS<&@D:;]*L^[_-P8/!B^H#!?&\P MC[C301'E6Q74Y;FS6W*R&][D(H8:K0%.&RG*37!XJF$7+C]RK0(7=*UW)_6ZE;U[Z5N5\ MD:$Q/+L-9Y=/G\S.IJ\> 7TR@#YYS/L NHV@PQ]4Z'%?L[,Q/>SO,".@8:AH MN3-JO+RB]^_?T)6A=[QR'5I7ZC$?T9:)S1JM6]S:^$QY]'B>L_?6D3;X%QAY M"10L7#BSY0H4288?6G8J8-\;V[3*[,3#EF$+T^C9!_Q5KJ#0SXK>JT],'PQ+3D8X$\Y@OR-5 MEKK6T3IFXAC"H*+5&-Z*WVN1,]CR2YWR1!>22>:'<4/H"&?6K&?VA;>[#$P(;OR83< M).0?#-UP&Y Y0DIFBRA!BT3YSYSO:PA:0Y)CW<54G&)B8I5$!'0N'%P[3N7? M?VG'Z*?OHF^=[=I$#[$$EQ+1 M4BOAC#_3;F/"?(OVH<*!":C^#!9$,6<1^+.WB_?A"O@H[E!WR3 M9CAHZX$SMX45E&*]4:NZ%R*U2S<_,E5JPT<"<&M[N)7NDVC_%AMB'R]F?1&" M10]*/KZB^?CL**+I^%\/1@1YHK(+G1.^@JX:IC28@_9XE/2PYW_W:X:=;[ !A6T'=@F9_G(R_08OI :U[HI\^2@O)MMWKP6P\.TK3_!$]."Z+V9-\ M@U,QT&S4_=+9YHB#0U46=^3G],&J8!3)T%9U?(,!VN, TF XQ!.#^A-,D7GH M*[N5,4S_M8'IZQ%EUXY;I8M#]L>FD@F&MZK@,U(KO'/).=D/]X&Y1>AL3,M2 M)N*@P%'SV[;6^3 XCV-"AH=$]JF-)80,Q7)-AVS=+@8V53JO)+(T/F))(C]! MZB1L>R$>][[@^@5,I7B^Y^WM2YBT+W7^$7FQ_>]_T\. MOM;0,.OX32HR!GCIPVU8'3Y[E^EK[\OV],W\G7)KC1?WFDN8HMM/,W+I.S3= M!-O&;[^5#>C.>%GATYV=;,#STJ+N^QLY8/C/@,O? 5!+ P04 " !*2PA9 MQV'1G)H# !?" &0 'AL+W=OKVJI7H:77>ZCZ8!)#K'7LU':6O7_?L1-R M<&5W^P!X[)G/W\QGCUD>M7FP%><.GFJI["JJG&MNXM@6%:^9'>N&*US9:U,S MAZ8YQ+8QG)4AJ)8Q39(\KIE0T7H9YC9FO=2MDT+QC0';UC4SG^^XU,=5E$:G MB7MQJ)R?B-?+AAWXEKN/S<:@%0\HI:BYLD(K,'R_BF[3F[N)]P\.?PI^M&=C M\)GLM'[PQB_E*DH\(2YYX3P"PY]'_HY+Z8&0QC\]9C1LZ0//QR?TGT+NF,N. M6?Y.RT^B=-4JFD=0\CUKI;O7QY]YG\_4XQ5:VO -Q\XW2R(H6NMTW0B^4%(-40C.:&\*%MG<%5@ MG%O_CKK_IJV%#3>PK9CAR]@AKE^-BQ[CKL.@SV#D\$$K5UEXKTI>7L;'R&<@ M14^D[NB+@+^V:@Q90H F=/("7C8DF06\[!F\]\PHH0YG2<)?MSOK#)Z)OZ_E MV\%-KL/Y>W)C&U;P5807P7+SR*/U=]^D>?+#"V0G ]G)2^C_4Y$7,:XS3&=C M\.#2@S<(;CWXZ(_*< YUIR#W"@+6GX?Z;\73]9615\;+D\$P&@W@;X0"5^G6 M,E7:M_ MO(&4$CI)H3<2,DDGO4%3DJ3T9%"2SG)X._H4KA/NR!ZYP>[0D;6 M?<4ZA$4Y 5L2%$P6K63.VW@[10&X"*60K0^^3!5)Y B?$CJ;0XJ,\GQ!Z"+' M^2F9ISE)Y@ER6Y \HR3+\M'=:X">//R.^$/;U$S&Z/0<]WY8_ M!7HE[(VN+Z0;O"]K<#/:]KGNA^2=+AY 6-NRG>30(@G33^HF-/I&,G59'51S MGJ/2&>1DFDQ1W_GKP W./7(;Z*'7_?:CQ4-#IGA>\]D4%B2E$Y+.%Z/-J=A? MZ7.9[4ED]9\;^*40&)MF9)',R"+'$XI$Z8+,Z0RNM97XK.G7W!S"TV:10ZM< MU_^'V>'UO.T>C2_NW=/[@9F#P)I)OL?09#R;1F"ZYZPSG&["$[+3#A^D,*SP M'P WW@'7]QIKT!M^@^$_Q?I?4$L#!!0 ( $I+"%FL9&PO=V]R:W-H965T@&%4E*;21SM#55;!N#K A&4L1IDES$ MDG$5+>?A;&N6<]TZP15N#=A62F8.:Q2Z6T33Z.G@GE>U\P?Q.G3U:@X\DT_K!;SX6BRCQA%!@[CP" MH]\>-RB$!R(:WP;,:'3I#8_73^@W(7:*)6,6-UK\S0M7+Z++" HL62OYN M<8CGCOG<>.8+TP MS@>(=0^1O@)Q 7=:N=K"M2JP^-X^)CHCI_2)TSH]"?BI51,X3\X@3=+9";SS M,<;S@'?^LS'"OZO,.D,WXK^7PNW19B^C^2ZYL@W+<1%1&U@T>XR6O_XRO4C^ M.,%U-G*=G4(_YHJOUN,DQ,L$IY<3^ $;/BOXU(H#3-_VR3Z##H$D:+ KIP& MI@!E(_1!>C-6&<2PZKBKX1^F%*P-4X4#TLTPUQ)!MP:VY)@7P405L*DYEG#] MB'GK>Q ^ER7/T009 XDRHXTN@^5:,U/XS7MNJ'.UL6? A L2PP=#,QZ\:JM MJ#M@^JYG/H$[,QFXD$&%,)M2-*3;.]]H*='DG(G1.X'<"'S\@ JVNJ.#W<$Z ME!8^JGP"OT6#,/H=2J,E_*GW/5%REP;JS^@W7#'U&GBPOL',M#3UO/446N6X M^!YQ K<(5*\]UZVEDH2Z%3"Z^#%[Y.*OEN:6W@RO=\?, SJNJL!HVV:"YW"/@ODQ M;4,>N*6:6[I]- *-\?A9N!;/5\4[VP5ZUX$Y%:V@^V X6EA9JZD8'FX"+_5D M?#0OB7 57@5+@5+*^M$YGHX/SZJ?M\_J_:M%P51<61!8DFDR>?LF M._!/W& MZ29,WTP[FN5A65,BT'@%DI=:NZ>-=S ^Q\O_ 5!+ P04 " !*2PA9%"DR MW?,S !GIP &0 'AL+W=ORU64+,EV$CN)JV3%[LZ;+'Y6\C)54_,'1%R2B$& P2*:^?1S?F>Y M"PA2MKN[JJLC$\!=SCW[=K_=-NW[;N5K)HVG7>TS_;Y>-NT[J\X(_6U>.KBXLO'Z_SLCYY^2W_]K9]^6TS]%59 MN[=MU@WK==[N7KFJV7YW/SQ^^>TF7[I;U_^V>=O2OQ[[48IR M[>JN;.JL=8OO3JXO7[RZ?(X/^(W_*=VVB_[.L)6[IGF/?_Q0?'=R@16YRLU[ M#)'3?^[=C:LJC$3K^%,'/?%SXL/X;QO]#6^>-G.7=^ZFJ7XOBW[UW^:[3^<;N@9QILW5N;M7Y,*UB7M?PW_Z" B#[X M^N+ !U?ZP16O6R;B57Z?]_G+;]MFF[5XFT;#'[Q5_IH65]8XE=N^I:_ MO)73R)I%UI7+NER4\[SN"5CS9JC[LEYFFZ8JYZ7KLM.W^M>C;Q_W-#4&>#S7 M:5[)-%<'IODR^ZFI^U67O:X+5Z3?/Z8E^W5?V;I?71T=\+^&^CQ[[\F!\:[#AFV;V?^]ONOZEO#F_TUM6,9[.CT>B.E%M\GG[KL3 MHI;.M??NY.5__L?EEQ??'%GM4[_:I\=&?_DJ[\H.9\9CUWTN&%X7]$-9S\M- MY?CQO*D[VDW!SZW-0W6 M#7==691YBR/$&ZO\WF5WSM78QB9OZ9VRYA6V!4WKB.+Z58+Q87-+5[LVQ^#T MW&UZ^19K^*WF'=UBP;RPZ[5KB7BRT__\CZ^OKBZ^^>W\]CS[^_7U6_[WY3>/ M,N*A]'5/KZVGM\R0'=IN GV30:^DUU>G/TW/[EN^W)>.?H!T[USRZ$2@-^> M_9_S[ =95K,I:_Q&;ZSSFO@J1IYEM(4L+_X@?B(ST>,\J\'6*@+N?&A;;+S. M^Z%U$<#6.1] 3@R!?L>9E84# &LW=UT'QH%-Y=DB+]NP$PS?#&VTR4W3E8(\ M/#=1K_/4.^/=?4\CKN]LULC"'<" M8((F"26B@+99QZ@-G+G\ZAM"B4 Y#]#+W=!G14.X6#>])QZ<>U%V\ZKIZ&0[ M N>?0XD#O-O]RS#^//M%3H8&LN/Z] ,B_,+"#;%*6D!9%S0\I+81O@W/*+G. M=P3$S'W8D(0'5'3.G=9S>N[4GWH2>B(1F#C($N=,8;XE/Q$*4-TV,B]+RN!SK-R7,]QK0\ MCXF6VZS+OH]0JG/'F4[,/UAOLKK):/MNNQ8 M53O%>\H#;U_?&/=CJB&-JVG=3)?U>7*A6S5#5>#DH87JD?PQU*+E,5AZH<\' M!I(M5OR"G,3X?,;$>"W'],YMFI:87.T9]/_>0SXWP=&R4S">$_XS&>J$H/,[ M+9G8,*T,DHP)"@='L]"Y#AU)YH[V[I;"SS$5\?=A0>@Z,.]F&B,U@U07^A?4 MN::BI4!_>4]KZ'8=[;L[/Z)\///*Q[.C6L&/)?$0.K?=E$+QD9]BNXRR!'+L MF@Y^6#.RT6]$-QV=!NUYSB\0%S*RXF_R;%628BQ:*_-Q,C>4E0/I@Z XSZZG MY,T6DQ?9%W1TYU^35EU5*C)EL)J>UL6,GC]Y% ?#.\TW9T_%A2?EF MTS8?2J)]1R?W1?;ET_/G\3>M@W&D7^5S;#Z_S\LJOR-9#K19#"QUNURU*99. M1$_T.>UR_I[HA,0$_WS]ZT_$#YIEFZ\A6\CZ**'R,,-QW;PM[X#L0TOH 54C M^YG0.J,-GT0?GA#I$*R4'FE1-6BI)B;4$;MBWL+L=0L>0^*#'O)2B3V0,84] MTP:*@L4Y"&J5MT?7#51-UET7Z6S$9O*6N35>)5%$OV'^53E?'5Q%-]!#F5MD M.I;U$ C'2U$)0I/QK"I71,@PNPW;+,IJ8"RD!6!T]X%0$&OF\4G_I/$)W7ZI M ]E?79DBL\4FYXXE/7$:-K)X,$97:!,_YUV1_TFR%8O]*6_?D_+PXX\W7IF4 MYUZ3] ?D5&PR%UQOJC+(!I&7+.Y9)Z.% Q%96N4P)O]48'PCF1&]NSILXO3_-'IY:,9076> M#YTH[Y-33+'7Y,2VK"(1HNZMAHGFR05S>!)'S#(\ARSR7/3J\?S3Q "31]R0)[26,#6C1WV118]^77-#&A65T0<\5D076#J,$K M\0F3$MMF4+(JX4&7SXT'T7$ \0\K%P M[.8@'-IYG6<&*< $!GDR)@W6>A:.F;#?BT+K[U5#&I(AI"H(^NQ&>: \9-3G M+5Y=1FSV"-KK, DJ,R^]5UTN3PB0 ']&\-:CB.#JZ>WRJPBV<[!4K#9 $-R2 M[/IZOIM2I1[$#Q;1; 9Y,>WN\VH0Q1>*MC*>9B,J$_0Z.9F](];)HC,5E9E0 MFD8;" "5K,..&IS*='HGAXQ):81[XCM.C[*C20@[RD6PSV;@;I7+NQYV(R,L M00/*2K,/.1*7=,HD7+.^7+O9/J[8^GAS0"H':7D0*2*VV^W6=TV5G;SY]>:' M$R+0!=8%GHV9B-"A%^XO:'2"4YP=W 7:: ^,R.\(>[(O)OA%X'A@/JX^S#UF MMA>6.\!'LGFS;0NMND[QV'!7M!*EP@EZ)H >)6B&!XU#5G3USS"&K!!=D&>D MW9%6O46=NV^J>RSNAOY9]MD;4H4J*$.G)Z-?'L&D8R-UJ(=.U9N5\CHV<<@B MJO(YGNQK=Z))*YYBQ4JD+F8FS09J]U"+)0.1?L=R4>T$[(XH85IKS'ETN 6A MP#=W5;F,L&'.QHF>"0,58O=],KMICSQ.>3=X"VO8X/4OLE@KI1^NJ\TJ)]W MN8HE\9;5L$[']2A1$?8Q$R*+CLPR4 4SVO'GAS5%4E5.7M/*Z536KE\U,(3N MG?B,O-JHCB::K Z,FU9IR+N&XP,88.OR/@=;%^-7J9XH1=F;$VGA/455 M87BF&"K;-5G,6_LO,H'@A+HT=M$DA_:,#TVU/+\,?R*B[F_R'=..67"U@SK8 M+ @C\U[.QS1/\*NA7M#)N")AWC/H!/-!;$GH2GXO:DGFR]:I[(;LH?^MX7MA ME :.?I@[>OF+IY&YX;]<@AWT3MQ.ZZ;CKWA)L(UJID#3:$O2J$0VX 38/>"9 M&TA(#"?B7]!NF)8P1SCEK,\_9'.AQ].3'WZ].1&WI1B3< TM=Y@,[* SX42# MP?:B3PF6)(Z8H!8+*(PT>JGK6+@"CB4LNB&6CXF(N=T)$X [*INK+X5.&/O* MEZ8IEF!)M.\[]D?3&\ERU+3-E"?@,=O!3D7J>DWCP?8G9B) _*%>J.OTG2L& M<1Q(;-A@Z;**^LB7I_O4E\6[8(/F385'ZP?M4VPW(5](>KBR=7 M&1O&A=NH?TVE?]6H1&2_\B:'IWK &G0T[ZFW\\86Z(N.!(^=.NV-E3XR90D_ M2,;,F4$"HBFI84+:1HPF,&);=D3=N7Z+C9%]\+]XL&?TQ[D<87"8 $GA(A$R MG2O (&^;6GQ#;%=MX?M;E@KS>967:^S(4"8YM(ZINNI=6XL70[5E6BE!G00Y M+U]\I,&M)DR'D!I8Q)86Y+Y"9 X>/B,Q+ 8POH6 JLJ_%(68=IGBE5 ZEXP> MBT%X2E42,F(7D!;PE# D:K=5("3(M ^Q$:!([1_:F'^4XJ>).;P$$1(Q)IH' M\PV5D2J ;>L!ZSO6 M;,NZ,.\UPL5TY"7[9_G=I5A;,<'R[%6SA,XU!RBA5HM;*P?UYD LD7)-(1*' M39"YRV%F<4Q:1.6&3(6R&;H*JAY[HT@W[EE'+C=R4+3VF@^$'S?L*B!A"VP+ M+^4=\^+.%NW?T\71T2WS6E1%.I6S6:V96S0@[J#2#'\L*_'R*._FW3T;";");CHF$617KBG M29).7/:J)>R="9\4H_6D\HD)X1"A9=S3H=-!'$2A+33T;=[2K[VH*[ HUW0. M/,KH;3X,0@BO7E9D\_&)OW%W+6M'@#F&N44X1UQ3YI8BW5/9B;G"SX#\.S:/ M"&S"<]HU,^R!M680;(G0('M"";]AL7L$P@KI%UB?&B,@%L.A$7'F^MWG.(I8 MQR-@D%0E=D=#S-GT]3">L:G#OW7-HM^".ULS&&Z:9G!.M&/+[Y)T&"@0Z<:0H]J79X7 QP9MX8T/(3)"SQ#FV;)_-4\Y[MKX@] H:0ILE( MGQZ'563=\#"][(69B3(U)I>&#R=@2=A'@B^"&S1D1\R+8U&-Q> [6Z="SEOV MW; 0)QV;18L!9LJK=A8!-O=I:,@Y_F!M#ULJ%7%(REWLNO MLHUD)ME^I&=VYAR+*=+SI&!E&<^'IWMS,8<%4S%&=(DBMF?LA\63<)19R6*I&K;SNZ < M!F\KQJU7\B&.E?/N@'2+!;.H+B!SZI2H\J$F=JB.R>N!/F/2_@><(;<]4JX&A:1M566W@@N:%%91@DF-KI0DH<7R M7G_F4) E/>%C3JRH[:D0?^Z.A%X@S1!;Y\Y ,LA<(B#(! M;TEL%:0D=&3]%\'M>WIR?0O'R-7%L[.GQ#C_WK!?LZ$AVCH(OV!NT1&)/<]' MI:E4PH4$*,QMX44*&59C]X\Y6]H<%D,L4XMFN.OA^A[$[Q;9V)X!LB:\;%2Q MQSIYLYI?P$(P7_0JH0I36#\E+0.[*KMN0!CJ)Y]Y9C(L>(TN24,AE 0-F86S)0U"P)6]"P_&>!W@7 M!GS=!->8!=AO/H\$,/?^C';IPM=;QJ/("K/0F&>LLB(O52W7:4]WTR0'[&J! M@&P76TS'M,!4JQQKDWLF^1)Y(2++R=Z2;$O3$<,R?1[=./N(3$3!#T80@JV 5!%XKA ,B/%K(EEC MIE'Q?TM&QDQ4%L6X4;:B]Z)Y>MN+&X-Z3'9](O613%N5E8L83%XA.VH'T;F3 MY5:;O<\]92AW^M(T6D;FX!D)@;Y&-TL5I9_MS270$3ID, M1\O\AJT0HT(R(.=SV$11_D @3<"!$=;G\ZOO./ 4I5IUT\8>K=CCI4DO0ZW$ M.F4."0^/!.0^(7H>41#Y[[I(9)>29%C76GS G)$8/-3XC=@O*YCP2Q>\MKI/ MEL/*PH$)[!@SWQ\'ISATRLF9C+&BZHLL4]UV%IP;['E-)+/ILEX$)59X"97' M<4ZD^5*-?W!0(AX)8[-G-40$Y(0+AX3#ACE%:@FS5P(DBZ8P!LSCM$/E= M^XN7H+.O29AK+B"'%-BC!&\ 85;=C[T_8/F+DMW6BJ4YI)\(1?%@6B0O]OM_ MC^S+WK*:;R2:X"3+\9;QZZ9LY\,:$AS?_A"/1$H"8TVW0;29+0M"GKZT6:Z' M#_2DNZQ(K9U757YK4,B81Z-2(<_"ASG^O-P-HM M5T2X;_![D?W(SORW8D9:>.7TY+MSES.\**,Q9#LT-M+EU;:KUCCR!4X6C9T=PDMFA,FBB_)T:C7P\=9P:!05;5 M*%"E?"^$UV(.* =NT7L[E1>2G -) M8"6$7-5-U2QW$IB,1A ]?W+KLBOFQ_5 [ AN#X^YY@G7T"SP8.A!.9%:0:9[ M%3/]=3YO&Z2+-&N2&.;3,J4J#6.4%CL5%<$G'3";QE[!]+&..(KA$45REZ*D M.6/ -/F">'J(*_SVOD58P4O'G\JBH#-^34QI9D4*4Z(,[Q+KJGJVRH.R!,]) MV6NNQ6G8NXKTN[Q^WPZ;?FZI[>%+B$2$,]5)9'DLQBM)7,D!88@TJUR@I@HN MZQ.LW;1J;S13!&)CN5OHL;#=\?_@+^X\T4]BF4(;$;Q MX/"+,NN1J4S3&D3MDU@#V+?, M9=I-99Q_V@B0(R30?;3ZTRK2&$V;=@W(C HPU$/;1657/M,DS,[*'?'6M?%F MKJUBHE#3!$X;X(?:1@BH@^NJ]5;ZZ)1@>B@ST M#_R"S+$LJ0L;P"PQ\40G/L]>A[UR I1*3,N/L==53DAQH<8$%-=2CV02C^9R M*1NB8^],!8,**>%:QZ1"39RE!;U=($TK<0WZE*U.8FVLK:Y%R?8V*;+PY@VI MKG^)3:C[G]EA:M)GLY7Z(=ZC!*&U?('U&'I^MI;P#$N).]J%Y5G$";72@:12!2^_@:M(3;3CPR2]SP2'QH+)=&TXHKY # MCK;"F)",%(+ZG(,@Z9]K'+QZ7-FC,;-(Y2[%,W!03?AA0/3LLLT_N,3:0.A> M>!B M3/'ZJ!W%UIA)2YQLV&LAW+6=[-%$JJ-GEH+@ MF'**$W_^:-F;1$ZW@\:3 7:O6U:[D(@:%0&+- I#=^.Q<5C$&-925,C^*O-U M,ZF+(PX'R6@EYB<\Z+Y<@K_QI8+,^ U7#B@8O'+-ZE,ZX/J_CF,SRF0D#V+* MU5 WGHMT74/#]^K<5,]*Q*4*3@W\79W\?=.\5[\HQ)7C?7#!&3,T4-@,K)+E$ MF4ZJ%4%NP7)2\Q?(QP90X/@6\2N:).)C@'@ B[)_FXDD=+4S'AUG=4RM/@X( MJ5Q W"M&,5'>]TIW]Q%,A&)2]&MRE8ZJMM_"= %OY>!",:Y8_D5V#14N)]Y[ MGOWXF,N:85+XKN6Q=WGOT$9_$>,(2RQMZU61+I MB\)XKEZ6B#UR(@>2'09-6U=E./CVK.SI]5M?/^JSKF&:,'E)P@A_?#>453&= M%,E(T.\VFO/:PD*&K,DZU.3"@+KC0%]\QJO<=\#0X@%UYI,JI,PK@HYD1&A: MLMF",+J@GYB)X<^_3UXG]#_&J;_VG/KKX[S5F!K3-4CAGB-VDPKS9PZE_@:. M3W&YRZI,!!.8*2J"D*HXG M#X76AH3CU5EU#!G'<%9+CA+IACLS$N%JT;-5JSP0%W*&X8\5-T47BIPEHH7% M+8><$[)&;JLEDA-J<1"TDN*J.@K_VPNS/%*,-&4.7!X6,RDK*K>(1:[7Q%7 MH8F[.%$8+.G$[ZQO$(]%_>JSJ-0T[R?Z%7R173Y)W]FO2M:2>$!$F5!33\ W M38_QYKZD<\]">-M;#$BDCQT#:C6$(K1)RRNRM]BB66]:MT(7("T,/D8NSSVY M/#^*X]?[G'F&Y4Y1R^>-E/W*1O&8\\.D: N)_L.34,YC;4 !=LRJF&F"M&;, MY*T'+_.YT+Q!7[%"E" 40_30,[QOLI5YY.+LXU2555^=#4A63*^Q'5G@S.OI M-M,L]EYY\F&ZR(M[-L6T]J)3[Y=M?,*:*B/E@_U.Y<)QZ9B/'47OCR65%\4T M3Z-ZR\.CQ F2$ $8F",:6AO#K 2QK$X07V0WF7G_6M17H'OD:'NA=R#XV])'CZ=P3FR&]B5F05R; M]FOJ2"?99ZS,J(\"!OM>YX7$,>C#@.?9FXG45'6*+QI$!Z0(6IGF"%S\-@?# M=MDQQGAY$=J!71QE:#^H8X(]3 =8XO$AIEM?1>-F\=\YA^RD;JK7S.JM*F2L M<[;,%F&ZE'^QL[L\?KK>&31YKA_[L9C) )D/\:1>*M\R:N4JBYBY ML3L* (#441<(CEJZR8BG-18_F;8"TM84[&DQ@&LEG>4$27HA$9!(2*84FH0A MSU8>1"_-YEUM"Q^$8A70C*8H4\>$ Y?I,EN.=J$K:[PYQ$PJ<&2+IG" S]1/ MOYG/V@<+)H\P/KLLK^-UH=K/1QOBT)YFC-+;Q%W*3J+%193'(]9QV:5+B:BS MZY5AXD!5[T-DMER4#.:HM1;O6LJ]#Z[.&@6HLU4EK64NAX0$[Z:8 IOY1 M4%V^UT]KJ:#DTBHH%8%*1;T82*YE/_+NGA" B.(129=B2V(R'>\E0*7L1I2K M#6I"BE&,9P\AV$QZ'EB;MM"83+\+H_)PEC+%6?9XE^RN#5?#<]L9 2A+6G$U M%A"A<"9!:JAL1N:+.)8A*"O:E501H5;4:!=Y4%J58K7N*+8D#NO[-:A)%"DP MEH$^:D2'\0CK:)DY"US5P; M&LU1D7H5F.[5 R*5F)A4$=I&#PG6SQDHV_MYS]2(MLO'F,^UFD B6I:D),9Z MJ$>1*H>07\VG(7X@\_8440C;7%/L:>-:02W5Z9NFHK62EL+:X,RG]53HS3I( M60C)8^16AK U$7;;LT+(^?\AQA1RN\.QQ8&3660&79T_R\XR='%"SAT]DN(V M"1^U.=3&,X!9=7JDH4AMFS%.F.B(U+,BP-Y*3M5RLL4\U5O3<^!&'%**TCJC MMT+J461X<8):0OOX^[WX35B[6B A\54:7T@;6;Z\N]- M4X#93.+LQWTJ*H/Q^*7]JND%0=_G8[8^ =KUPX[_<,S+>0&41LJ2D%2$](>0 M?&[24%06 S=_J@TL#5'\QDIMPN/1%4[]M&E&[K7-V&D^CLY9AJ@T T09%8O7 M5$EB.IQ6C5()"]5!I>\OB;.^2YK)B%DI%]NW"S/]\B3BNE^ MW L0>!(XC9=H"!-$HKSLHO"W-+$MY<@\[@9@L^L]@CT27NVM+1<[>28QT;$$ M\!5'W#%B#:V!+X\W[3W4P&/2%_R98P'LEI[KDG? %$,!A72\#8[ALAZ!/4XU MX?ILM&KH7%KU5R^(T!EU0%H@-I_#)*5AOG8P3=SQ6:(^'P K<4XH C)'_/F< MIS(TQP3.Q+K52G?O221)38NHO!R/03<+?AB-XVK&4D.K9L6 2P\P M2=/ZNJV9MH1 \%TCD^*T.-,JXH*HNO.Y=.#QK<0>24:?"<$F-;<2V8LB-+X* MF ?Q7.OR<\O<$#HHE M&$INQS/B>%PI=AWMAR:H)?_:G_)IJJVST04T&;?!#&4J:-W.J_(#+CYI0$V2 M3@=,=9A#.+FGR_Q;C/]H,])>8=]V/D>;*<;/J-9*K1=S#;&.+/X-82J'26VT MJ[AG.>I$)8+,'F:?N/.AU]0PX8331NO!"7WGZ. ?*GMIR3!+$,R'H0,_]'): M\T]S3]*7(H V[:IBC&<)3P:*>;8:UK%*S5%TM$OSL#A,]F1 9KH M+>(A40/P3.+7;DV<&IT,RF[D*(ZL@J !,DJR49S7V?@F ]**[$8(3#43BY\- M IBYZL\^B,;L37X(_=E&21(9\EFVK4M_W6U+"YL+""0]B4Y$DUN* M9UFK(WXA]7 A3+GVD4_O8.7-IU4E7LH2B_.SQ2F8G+6/ C:7!,VT"B;MV!$ M940JQ51J@\6U@[YQ\&26H#=CNGXHTKSN2**S.MDR5[B M(]-6!(*F5@:FJ=-<\F-!OM3#91$ALTMIZ"ZGX97N&T[( M\."UGY5=^#HB;SV%Y)AK+$9;&<:(X76P>>H089>O/\8VP1EMNR8=V@([,EIA M#^,*B32%L"C-9R3,D8)S6[95,VY=&J6Q3"U -2!N4+'8-F:T$=>+<>1D ]:N M\,[%Z6Z^HM:01!!(RT&\:SJZ04-QSF/[<;E==+["6*QC?T71SEU M2)R_/)[WSIVDI15#DK8[R;D_;ZC4I9,\L50/%OJ5-@G7(:S?HE9$0T['B;*2 M:6RU2\*6)$>FIOH7*,@ZK6;A#B=34O*W07F9M][\P_XF6R% CX"03[_EJ)!R:;A003=:9B:PS MY\UHV>.DC&.P5^7Z;Z,VW_JE%23PH9PGJ6:L[VL+\:0-, ^@S60TY>A8,^*9 M4OW^\?K!IE#C3=,NR!#CFC9V2R<^0O%?[B26);VFTA.V+/GN$!&E*NTA][1U M(N73-2/4.T99^G@4- MC$/;?$1(QQAVR+6_/)X>_VX_LV.25W_R*,CM8:7%S$Z6'(R#.O8ZQA5%RWT*$\Z-,19K%R=!Q[SDV![F5@^)9^(+9%*E5\[9D-J_;1Y^N M=L.ZA$ B"!]QIK$QGUOVF763BI6U<0S00ER'P?_+)Z\EI&"O\LZ;S%K#FQA/ M #GTPVVCME,4>Y0FI-'$V<*YJ)PTS#I^S_8K:R>4%7EQIGTLC#.P.K=49ZUJ MX68L!G,S7+!AB6?GE(U.E=[8:030-;MLV9MGIU>C50S6"4:-3C$1?/GD4I=\P ML01&)CH*O?3T4>;+;2;?\8T(/W9>[E;P[-&A\_3JB'=D2HME-HT.S,+JDQ6K MAW"RM7K_&$B^R*X//I,(I#JRK.>2K8Z9A>;.PL%KX@6N/.BVD M0$-.[^QD>NRR\95"4=F]1R;5!B,LY[0$L\,$DF:L*)L*IK0$@R9'GH5F3GX? MPO-\)W)MWP4\"2TH8MAX]-)<.F15*X=6QJ;=O]"727K.1D3''JKI35MB7KSO M6 U+]'D#NP?OM%^8@&1P%H:2K$8:TPACU .)M1-.5=+26FM5Y\,)OG$:R0(K M30J)M^$F.-^/,RKL"QHZ!(H_"3[DA9Z.?L7^FWH9(UX8>V^X-43UICI,N'$O M">5J;'WZ6$5<2ZW-,D\1!WP4LG;*<.W0>78C@W ?DS1\'\5,3*NR(LC6=]2E M%=:2$Y7$X;W[;.:]/; )YLU&&D@T[7M&S\?-./N&FP2Z/I)SZE 2+R?R!_^R MM=FJ^RB\K@>P.P;E7#M:S[T^Y9S8+N;NY=#7SD1ALZ?<54:19>N$ MX0B_\3W%@ECSF6Z'U> VKK!0QR9A9O CP7U^*L@M"@N=(32 MCAE^R58%]]8^O?:?6E6<\@\29;;TD?H]H:*/\6F_(&2TT_@@M(WZZ!@T%SJN M$U#IQ;5*27Z='EPBNLH^84(ASASB24OC%(Z>Q&G+KEI79A97$G2 M/7\DVCY2 K_@4&= HJ@$P*8VNK3RX"B[J(L-.;+?;L7EB6IHH9;^NG-A_ M?VA&AM@+$R08630^[+MM#JWT148\8+^[A;&6ICU@8/N6#MZ^QFF WH_:E^+< MTU(4*;N)*WCL \O2'/9"W37ELYMDV+UB%;9:]%BM(04=[SX5;W!KI>ZYYP' M+U%^704]ET_UZ,9]4O2>&XCO&3/M)NY#C@N+> @;6)0]\QE'G%SW5:+=$M&I MM*^5+L\[FPJU4='F(BGVJ1Z"D?,+BAY9I*5/J0'92@0VJ9I$6&W#)4+"XDB)K\G G*L(LXXLWIJ']#4[,NPDQ(1-*5"7[]3+5DZ OHW] M!"\ )^#NM$CGGM!>\D28R#6-G-$V,@6B:X\G2B'M@CYM#^81-;1ZV4UU"#FT MIS).$^&R-Z)B=K7_.A+\:86C^L&L;OW Z'%22Z?7Y)7UD,>LQOU/:7"D<0P\\+R)I[>@J9!:RVVNAH9D-F/4E;-W(DL4H]N01K+3&EXT!&S_1=W>4_#F2UC3%J60=*C? O_;XP>_C+7[RYD+Z_PC<4A0JJ2/WAYN& M68EHG-CL:\*;KC_;5$.GG7 GTD!7>5ML^?XNOL;,&MF*NP@(QWWS.9$F*@W5 M0-^!%1T3M+-/4A-NAK9QBR-09N='AKUW;_.+_N"([.^PY1MIS-I,-=681%Y\)+\+&72?&EP<(W.J846+1%95T[[W M6CU'1[AQ@^;OS.K$1Y-+U<^L=X MH88,9_OS39<]1/Y#6WO S#_""A*35GHK\-KCA! KX$Q18#)6RHN)(\FA*LW/ M(@W%DHP=N:O63^A9LOGT?P<=2YPJON3)QT)RWL\9J1 ;'*]EHFMN*3K+*C?S MK,SN3-A&MJ6=*D9%X[/Q.#B6X+0_4,FI%JV_%6*B)\K,^L;,0BNS*(067:TR$8Z:Z-M'XJ2^LVN? M0R>;J"_L@PULM'.3TYA;2!XQ"$P5CFF'1B(&Y^*;JUSE[\LP/68#B/EV0T6I M=8B2,"7-I.?2;L_GQ#;Q[1+A6O.X0OF07_BX^$]-N914R[ATQ2Y#T8H-?RF. M-8C2,);V/9L(5&B'GW;*]3/3Q?E5:(/'G?'0&\!^85R!T<)7*/R+UO_DGUS_5;S^R_.O1NM_?O[DX/IO MM&3#1O?I4Z'GH7982K(:VGP;QX)#;#*]'SGDW,_\)<-1ZZO=S!=*6'K\+"D4 M8)V)R!=I9\:,3DD9S*7MU%U3#ZS#VRW0,^TA/9VM^N@\>SL:+"I:&67IT> D M=_6"++ER7"\D=6P28O"^-^K;5IXT*C8@(28OC.M:C> MLED_@I-];U@[&G,VU1-N@T[[91%7\6M# >M>8G+8I^\I]YFZA$BD9%+*P4'@ M^^BZ1Q4SN4^4R3EBO)\22[H<([G1!5>DFD/_<(^UHYF^H5?KY?$.J^_DQHFH M,%&<1?[6(\*!NH&+5^*,=L9YT6SH4":S@O^M,R*!YV?Q2M2J"@]_=IY%"\K\+1') M;<5:SJB7.:1Q:&UG$0KR8O-#'DDWND;2,KEYB.^P@T6*LLV&GF102+#;'A<1 M].02R5SWQ4#62?[FK_6UC@AYO=_N+5SHY2\LMFXF?,4:(9;39C7LM9INW2'. MQV0XS0@S 1RNHXF!JYT9?79*M+/T%"R,E6\VE931]5H"+3N#B7@\/W!=B/@;#*ZQI+./E#M)PDU6@+B*;::)Y3D3S@W2GD-"'TLM73Z?H M);QYD$Z>GSR*X?,\8.DT>B*1,\J^@==^*?T2I5.%+]@4=-+^]S.]!(*+*AMH M#;4UV>![(;2'48Z6-(@OB&L+JE;'A>K"".1/ *]4H!%E'YUOG04WS--S/?Y%CDQG*Y1?M+W(Z)UO?+%7?Y+Q& +K3^JV37MX2\/H^8 MGN\14P!I2E>$O3_E+;%84=@Q(#?&O@U-M '*UQ8FP@UZI>3(GY[F ASI#W:S$KS:4*$PMU5^"JO$%4]P8-B5"T8(OE6R3N'O?8IH0&^( MZNSBB_C*W-K8HS)< >*XT**YRW\)<B8TL3/:&O^3M#Y6[: M"'E^$3GF=0;VIWBM1,$?W07"S@]N?Z$ B75@0Z.I%DNS.+F.VW6!]<_#M7%6 MAXMG\76DZAK?14UI9#OL%36*.ZH8AJ[DE\>;B9.:IAU8--=R4M7[Q#%\XWSA M'G+5LQJD 9RMBYJ_2&HCM__QWEY1W/GKN/\/1X):QUVNZF9TU%.=1_B$1>N' MF1!=HI?>UJE^N60ODU!^S+;)]WF?O_P6'-;=$#_F^W-J A ZX_I?P?QQ"B^N MKTX>TY?A]9??;O*E^TGO.:W<@CZ]./_JV8F$0>P??;/!D+ A^V;-?Z[XDG2\ M0,\7#>DW^@],@* 4+^_E_P=02P,$% @ 2DL(66G?MU'8 P $PD !D M !X;"]W;W)K&ULC59M;]LV$/ZN7W%0BR(&U,AZ ML:RDM@$[W; 6ZQ;$Z?IAV =:.ME$)=(CJ3C=K]^1(!IX;FJAI_[&F.UM&.IB@PW3UW*+@IY44C7,T%*M0[U5R$KGU-1A M/!QF8<.X\&<3MW>O9A/9FIH+O%>@VZ9AZML":[F;^I'_LO' UQMC-\+99,O6 MN$3S>7NO:!7V*"5O4&@N!2BLIOX\NEV,K+TS^(WC3A_,P4:RDO*K77PHI_[0 M$L(:"V,1& U/>(=U;8&(QI][3+\_TCH>SE_0?W2Q4RPKIO%.UE]X:393/_>A MQ(JUM7F0NY]P'X\C6,A:N_^PZVRSU(>BU48V>V=BT'#1C>QYGX<#AWQXQB'> M.\2.=W>08_F>&3:;*+D#9:T)S4Y5'(5AA-"2Z0 M/[%5C0$($L/5HYWKP20T=(PU#HL]Y**#C,] 9O!)"K/1\(,HL3SV#XE>SS%^ MX;B(+P)^;,4U),, XF&<7L!+^I@3AY?\5\P/!S&SRJ"">4TJ9:) (+W#G<*2 M&_A9:@V_SU?:*!+1'Z$T:SHJ0GD=M)O$?%2CS UO :XCB@]PM-TBR(1K'W M@#6SAVV9,M^.;.-@E*609SG9/*%H'9)<"_X7F1,1?"Z0"DDL5[RF<-<:HG$0 M93<09T$>)=ZOQ%X=0:9 I*1A-:11,$X3&"=!GF3>L4R*3B8UR81\KB!.8AC0 MF >CT1@&WMD[]MK"CJ*()MDHB,AH1MCW$4LY=:U'5N%Y6="C[*W41( 5A6Z3@0?F6BI#\)>_?!+..]_ M;U[E<12_\^9-5[]BP]2:8KGJDHKE (P$9$HX'1\D=\^4U)> C3&!43ZVH_=% MD>-;657ZZ$UA=7H36<7N#_WWSF%:**='";%BM^$G^?AX=4K*X4&C:I BLNV8 MHK-,NI[5[_8=?]XUNG_,N\^%3Y00+C346)'K\'I,4E5="^X61FY=VUM)0TW4 M33?TU8+*&M#S2DKSLK ']-]!L[\!4$L#!!0 ( $I+"%DL&WFPC0( ($% M 9 >&PO=V]R:W-H965TZ&W#]SS=6E=P$]G-5OC ]IO M]9TFS^]1"EZA-%Q)T+B:>XMPNDQ/6'-C@)LF4>G+.33'W D<(!>;6 M(3!:-O@)A7! 1./W#M/K6[K"0WN/?MW.3K-DS. G)7[PPI9S[]*# E>L$?9> M;;_@;IZQP\N5,.T7MEUN''F0-\:J:E=,#"HNNY4][_[#0<%E\$I!M"N(6MY= MHY;E%;,LG6FU!>VR"Y4*;1"#\7F;&:+L>O8Q-W@,EQ0">8J:E9 MCG./%&%0;]!+W[T))\''$W23GFYR"CU]( $6C4!0*S@XIF,T3P(=IWF "+DB MD1F+A6ME2X25$J16+M?3P1F7%%*-8;(P0Z SP?Y,X ISK#+4$(=M)!Y<<\GI M-A:P5JHP\!;"B]'X8D)&,HJ2R6#A@)G,70]Z&\AY7ZD-=0+"!Y49)= B\/ZH MSF -TR_2:2P,"5U0:G%^,/="=X#O'JKH56:8L2;8U2WHC4;L$VE\I M9?>.:]"_NND?4$L#!!0 ( $I+"%E(N";AX@( $X& 9 >&PO=V]R M:W-H965T%[L%R[@S'MJSF1P/ M1:7SC.-,@JJ*@LFW*>9B,W)\9W_PF*U3;0[<\;!D:YRC_E[.).WS.9K,G(\0PAS7&J#P.CSBC>8YP:( M:/S>83I-2A-XN-ZC?[;:2G(Z3F0X(I5N7X4FR^XTQ,9O*7( ME?V%3>T;=1Q85DJ+8A=,#(J,UU^VW=7A(*#GO1,0[ ("R[M.9%G>,LW&0RDV M((TWH9F%E6JCB5S&S:7,M21K1G%Z/)-8LBP!QA,0.D5)2:5$KH$IA5K!IR>V MR%%=#EU-Z4R0N]Q!3VOHX!WH&.X%UZF".YY@\F^\2S0;KL&>ZS0X"?BMXE?0 M\=H0>$%X J_3:.]8O,X'VN^V],05VAH\V!I,K/8VW.QJ\7.R4%K2"_IUK QU MEO!X%M-5 U6R)8X<:AN%\A6=\<69'WO7)S2$C8;P%/IX3EV:5#F"6$'YP5T> MXWX2_3CW#Y_,4E#/*HV)(44.L!(Y-7_&UX/6IXS3D:@41:M+H"O%YDKA%I=8 M+ BPX]N33NL9>2(DM5DI5$;0YQ"W8R^B;]2.X^Y_]DVF4YH5.3/92R;U&_CM M?C>$*/!:>^)8W[A*: L[!#]O] MN%\OO%X?CKT+]Z#'"Y1K.\E,K2NNZW9O3IMA.:EGQ%_W>M+>,[G.N((<5Q3J M774C!V0]O>J-%J6=& NA:?[894H#'Z5Q(/M*"+W?F 3-7\CX#U!+ P04 M" !*2PA9O(86][D# #H" &0 'AL+W=O*K*VLS\PMIF$@1F56 ES*5J ML*:=M=*5L+34F\ T&D7NG*HRB,-P%%1"UOY\ZI[=Z?E4M;:4-=YI,&U5"?U\ MC:7:S?S(/SRXEYO"\H-@/FW$!A=H_VSN-*V"'B67%=9&JAHTKF?^532Y'K*] M,_A+XLZ\F@-GLE3JD1>_YS,_9$)8XLHR@J"_+=Y@63(0T?BZQ_3[D.SX>GY M_^1RIUR6PN"-*O^6N2UF?NI#CFO1EO9>[7[#?3Z.X$J5QHVPZVR'0Q]6K;&J MVCL3@TK6W;]XVK^'5PYI^ V'>.\0.]Y=(,?R%V'%?*K5#C1;$QI/7*K.F\C) MFHNRL)IV)?G9^6>DE R9\&E@"Y:U@M0>X[@#B;P",X(NJ;6'@8YUC M_M8_(#(]H_C Z#H^"?A'6U]"$EY ',:#$WA)GV'B\)+3&?YSM316DPC^/99C M!S$X#L&-,3&-6.',)^4;U%OTYS_^$(W"GT\0'/0$!Z?0YXNN'T"MP7&%CT_4 M<@:/\3R)=)SG;:L!.T2@)@9%:^II+:RL-U!V;V>EJ,V,Q9Q9V((M2^I7LIAX M#X5&A*JK,G*5@6J$KD8+^71\QSN3-0&IUH@Z-^>NF#PD+S/O]BT+(F$L?"#O MD,9XE-(X"C,:!]G86Q1*VY\LZNJU=11%] L)SV%Z#\J*\BW<@$P(=,QP:90P M:)9Y]]@0'A&6]<2[84M*7.,6ZQ8Y^C!S8^BB#WD<#@$X9S8ANJZR.Z#),,*/=T#$GJ_8HU)5XZ"Y%34TM6)I]. MD&60<28)1./PN[.!$RH<]BH2>>.5D#M\M2;@0? MJN:81D_&.:[1?43=1WPG4&BZV*!>0L,.R468O53-Y+WD>BEVB>2H.3DGOZZ< M-!U"F@YX,H(D2G@RACB+>))"-!R_*4%S> 'Q!6G.^XS&3$!63=OIB+2)5*,S M4L,(SKT[SHXH;T5)DJ+([W,JI5C*4EI)_?@<:743A^'_Q.RJTX-7M4Z'>N#N6CY2VMMU%U#_MK_&K M[O9Z,>^^ ;X(O9%4VA+7Y!I>CDE+NKM7NX55C;O+ELK2S>BF!7V*H&8#VE\K M90\+#M!_W,S_ U!+ P04 " !*2PA9/,=N+^ " W!@ &0 'AL+W=O M9CYW9&9*[GJR5?C(EHH772D@S M]4IKZ[,@,'F)%3.GJD9).TNE*V9IJE>!J36RH@55(HC#, LJQJ4WF[1KG=,#=\9;]IO5.7A;,X*42/WAARZDW]J# )6N$O5?KS[CQ,W1\N1*F M_<*ZBTTI8]X8JZH-F.85E]TO>]V N-7=)6I57C'+9A.MUJ!= M-+&Y06NU19,X+MVE/%A-NYQP=C;7=+_:O@&3!>!SPVLZ<>N#I/=P_,@6 LW) M)+"4R<4'^8;UHF.-WV'-X$Y)6QJXE@46_^(#4MC+C+0I)Z$,< MQND!OJ2WG;1\R7]L^S 73-K6_?76/?P\7QBKZ<'\VF>]8T[W,[LB.C,URW'J M4948U"_HS3Y^B++PTP'=::\[/<0^>Z"B+!J!H)90[[VZ?8H/$567M E,' $23*F;S0<#6XXBMWLD1^%8_J&63RXE5U'=\W@;WC74N^87G%I0."2H.'I M:.B![MI4-[&J;EO#0EEJ-.VPI,Z.V@70_E(INYVX!/U_Q>P/4$L#!!0 ( M $I+"%GGMEK/30, *4' 9 >&PO=V]R:W-H965T)*$6Z)!4G M^_4[4K+J9;:_B.+Q[KF7AW><'Y3^:BI$"\^UD&815-;N9V%H\@IK9D9JCY). M=DK7S-)6EZ'9:V2%-ZI%F$31)*P9E\%R[F7W>CE7C15I> U2L.5!(V[1;"*9^O,Z7N%WSD> MS,D_N$RV2GUUFX_%(HA<0"@PMPZ!T?*$[U$(!T1A?.LP@]ZE,SS]/Z+_Y'.G M7+;,X'LE_N"%K1;!-( "=ZP1]K,Z_()=/C[ 7 GCOW!H=;,T@+PQ5M6=,450 M<]FN[+FKPXG!-+I@D'0&B8^[=>2CW##+EG.M#J"=-J&Y'Y^JMZ;@N'2D/%A- MIYSL[/*CM$R6?"L0F#%HS1 D704F"RB5*@Y<"+AY9'1N;N>A)8_.+LP[]'6+ MGEQ G\ G)6UEX(,LL/BO?4B1]N$FQW#7R57 7QLY@C0:0A(EXRMX:9]^ZO'2 M"W@_'W-T"9_48N5K 1MNTG4#O@K]D\%^M5M/.Q_N^60*ZH+XW% MPKFU%<)."6IP+LO9X(9+$JG&4%'-+7PPEE/[D.H7@[M&P&_4AP9N_D2FZ9@H MQ9Y2V&".]18UI+&7I(,-/M'HV).YQ;R22JCR!9)1!F_?3),X?@?I*((?(!EF M2;=FV>!1628Z62M9Y7E3-\+'P6JE+?^'^;EP0PI)-H%;_Q?%*=P.+G0%H4_& M],W&"5PA+NN)RZX31Q.V:,@'E;!O-C^FN'TYQ]Q5N//,;1I-G'B&#'^&NFU' M=.WXJO*N US!AWT(=)U -?I[;%LFF,P1#LQ073K*S6SP< GY]57PCCRKZPZ* M6=ABR:5T45(=]JBY*JC&=\,T2_V:I=/!HV;2B"-A\73LZ4HG&9%U D7>7X'$ MDQ_;]2X]2UEX,CIKU*5_(-SU;J1MIV@O[=^@53MZOZNW#]@GIBD1 P)W9!J- M[H@NW3X*[<:JO1_$6V5IK/O?BMY1U$Z!SG=*V>/&.>A?YN6_4$L#!!0 ( M $I+"%G6$7=Q. 0 &(* 9 >&PO=V]R:W-H965T,J[F[T7H[]7U5;J"AZKW8 L>3 ME9 -U;B4:U]M)=#*"C7,CX(@\QM:KW19L-?S+9T#0^@?]W>25SY TI5-\!5+3B1L)J[U^'T)C7W[87? M:MBIDSDQGBR%^&(6/U1S-S & 8-2&P2*PQ/< F,&",WXL\=T!Y5&\'1^0/_. M^HZ^+*F"6\$^UY7>S-W")16L:,OTO=A]#[T_UL!2,&6_9-?=32= 23VN4TXOKLI0M5.3C'M.L0!'**_*+WH DMZV4P#7YJ:;+FM6ZQM/+1[ID MH*YFOD;E!L(O>T4WG:+H#449^22XWBCRD5=0_5W>1Z,'RZ.#Y3?16< ?6_Z> MQ(%'HB!*SN#%0R1BBQ?_/Y'X_7JIM$12_3$6BTY5,J[*%-I4;6D)@N11*&S0)3\!;(!Q\X],&I4;JG4S]@;QN6R-">AEZ3A M"7)CG**VI<1>$J?X+=+"Z8)*7[H>>4D1XS?/,N=1:,I>7T&;(J] H L2)UZ1 M%,YG*B7E:%""J\QHNF>B"6KU]8318J0A.&D-_'M7%V0PL-(VS&,"W*&KNE U_0? MTW5W<-P&B;)11IZ'NS9MWGB]?"88D5I4Q'((R"VFCO+G;]1K-;B#+%4]\]34 M>=Q( -)T'0M,QSIR[Z'>CY^\9*LEJ>'E<>;<4$9Y"81JLH1US;E)&'K>FXI$ M#;PD-P$.(R_%Q.$D](*@WTFB[, .DXY:*4,E4U\2&JCJCI>T,F95K33@QO4> MO0@PRUX<3/";Q1.D99%&#OYX-4-IKA7^62H8$;PD21*3*QQ#+XJ3PVP2V5GD MQ7%.KIS;#>5K8Q4_(1^^&PBVAG>PQQHWL+NC^0@;IA8B34,[3GKP FOUZC18 MP*M780K3+B@!DO?5SK&(AB13"1@F4S)@2#'M:W:QT@X] D.8"GJ^$T(>%43 \*Q=_ M 5!+ P04 " !*2PA9@0^4 1*P=ZD2*MWV8=H'DQPD M(K$SVRGTW^_L4,HD0$+.V;Y[_#P^WS'<"KE1.:*&755R-7)RK>N!ZZHTQXJI M.U$CIYV5D!73-)5K5]4266:#JM(-/"]Q*U9P9SRT:W,Y'HI&EP7'N0355!63 M+U,LQ7;D^,[KPF.QSK59<,?#FJUQ@?I'/9/MEN_T]' 7TO3,!P3X@L+S;@RS+CTRS\5"*+4CC36C&L%)M-)$K MN$G*0DO:+2A.CQ=:I)M;HRN#F:@HUXK9Z[I^8LL2U2TA0S. M0";P(+C.%7SB&6;_Q[M$[\ Q>.4X#2X"?F_X'81>%P(OB"[@A0?-H<4+SVG. MF<3;J=4\9R_TQ#1,I&1\C=;^/5DJ+>F]_#DEOL6.3F.;&AJHFJ4X#SE,N$:%JGP&:9P"41+1)7!2[TSN=ZX*#SD6C M&,_4CC:&?T!C%9O2[?AAT'DD&DT21P*A, MGZG]U#:[]R'X?@Q^+X(PB3H+:@@%7ULW:DL;U&;F^W1@SP<_[D,2QYTOR%&R MTGJQC.JP,"_$-!3HAWT(ND'BT>B'"<3=GN=WGH0F=W7^"@W/H!\;!=W[)&B_ M)/,*>MU^',"IU^(>U7F%K$#LNU@[42+VG:-I=#4@ZR94]-':1QH?R6$?IV8 PY_(^-_4$L#!!0 M ( $I+"%FY :%]XP, %0) 9 >&PO=V]R:W-H965TEM?55%)F\Q(J9 MOJI1TIN-TA6S--7;R-0:6>&=*A&E<9Q%%>,R6,S\VIU>S%1C!9=XI\$T5<7T M]R4*M9L'27!8N.?;TKJ%:#&KV197:+_4=YIF48=2\ JEX4J"QLT\N$ZNEB-G M[PW^X;@S1V-PD:R5>G"3]\4\B!TA%)A;A\#H\8@W*(0#(AK?6LR@V](Y'H\/ MZ'_ZV"F6-3-XH\177MAR'DP"*'##&F'OU>XO;./Q!',EC/^'76L;!Y WQJJJ M=28&%9?[)WMJ\_ S#FGKD'K>^XT\RW?,LL5,JQUH9TUH;N!#]=Y$CDLGRLIJ M>LO)SRX^D>X?E#%PAQI6)=,(%Y_96J"YG$66-G!F4=Z"+?=@Z0_ ,OBHI"T- MW,H"BY?^$1'KV*4'=LOT+.#?C>S#( XAC=/A&;Q!%^W XPU^@'?+M.1R>QSM MO]=K8S45QW^GXMW##4_#N8:Y,C7+<1Y01QC4CQ@L?OLER>(_SI ==F2'Y] 7 M*VK HA$(:@,WJJH;RWPATW3)#,^!R0+><=%8+."]S%5%VCDM+Y_#.Q73^5T_ MEQH1JKV.Z'0$4@&]"BO^=/I-S^GC1!I -^JYTA*NM"ZX!%NJQA!A(O",H3S===DHHV29Y-3;GQWD0B(_@D3,<32(A1EDW#=)K1^BB<)%D8 M3V+B-@VS01H.!EEO^1:@HQSWD[AE'_?C:3=,QMTP)8,S]3'JZF/TT_5Q+2WW MI.B(@Q7FC>:64WYNGW+1.*4V6E6OJ^A0.TZHMG[.%LY9.J>;@4Y.J!M=*^/$ MVD#N&3AU3J@Q]OB"PF."[2S?IF# MJ]ZJC773!6]5_@#/(V M<$UKCV@\/;*Z7WTQU!KAB+HR&X]@&B;I,$PFT][=(=FO]'D9[4%D>3@*GGNE M2P3Y)H-P&H_#:49]2$33:3A)QW"J1:*CFZY"O?7WN2$.C;3[2Z];[3X9KO;Q3E MH)VX#;H/J<7_4$L#!!0 ( $I+"%EU*'8.-0H &!9 9 >&PO=V]R M:W-H965TDDP1((^NP M0 9!TTXO%G/!2+0M5 >/*"7UHC]^24FQK(-IN_/>)+;$[_DHZ15%\I5Y_9IF MW_B:L9Q\CZ.$WXS6>;[Y,!YS?\UBRB_2#4O$GF6:Q3077[/5F&\R1H,R*([& MAJ;-QC$-D]'M=;GM,;N]3HL\"A/VF!%>Q#'-MA]9E+[>C/31VX9/X6J=RPWC MV^L-7;$GEG_9/&;BVWA'"<*8)3Q,$Y*QY9R$-Y M3M-O\HL7W(PT62,6,3^7""K^O;![%D62).KQ=PT=[7+*P/W/;W2[/'AQ,,^4 ML_LT^AH&^?IF=#DB 5O2(LH_I:\NJP]H*GE^&O'R+WFMRVHCXA<\3^,Z6-0@ M#I/J/_U>GXB] /-0@%$'&)T ?7(@P*P#S&X&\T# I Z8= (,XT# M Z8=@(. M'O2L#IB=FF%>!\Q//8;+.N#RU Q7=2R=*")C^4 M"BJCQ34/$RGVISP3>T,1E]\^52(GZ9(\A:LD7(8^37)RY_MID>1ALB*/:13Z M(>/D-W(7!*&4*(V(EU0WFA3L+Q;+:1CQ7\D[,B9\33-1.DS(ER3,^7NQ47S^ MO$X+3I. 7X]S46V9?.S75;2J*AH'JFB2AS3)UYPLDH % _&V.GZFB!^+T[4[ M9\;;.?MH*($6\R^(8;PGAF:8Q*);OG?@ _6[5^/NBM4%T6KP_Q3) M!3&U,GQ"OCQ9Y)=WOZHKM#B=:+X1A\X[O&(.IF+N"=?/U-L8=<4\-?&);<0E MG%27<+AB+:69N[O3++F30]+P_2(N(IJS0+;@XC[,!RKW40F1C\L/?$-]=C,2 MST/.LA"-82V&PG ML)E28%_%T$JV9S[=A#F-AK2F!)RK-23,FO4NO&EJ/:TA4]HGI720*5TDS /! M6EJ;[[0V5S=F:1R+X8\8H_G?WI.:'Q Q,"++(B\R1D+."YKX[#UYH5'!AM2H M3'&N&I$P:]Y[-,TF5STU(E/:)Z5TD"E=),P#P5IJO-RI\?*(&A/._$+.'9'G M@HN]G)- #DY_E&/4(?%=]N_^SLF^5R8]5U)(V ()LY$P!PESD3 /!&L)]&HG MT"NE0"W&_2SH+TSWKXHN<^BL8)WE*\HP&C(A]^9J1/R@/Z-_DONI=D0>:?1-CRB() M6%;NY]OX.8W(R/Y\[XTNB+,BEI"<)?)0AEO% M]_6Q#-V_R'/O(F$>"-:Z?W6MF2O6CCUB?);D63GMR\N;.&-!F),LY*(')"Z% MW$U7@QT=-?O<&Q=*LVJ:_+=[$FH7>J>K \UIGY33@>9TH30/16NK<<^YT-5# M/9IE-,FW)&@>+(/"4V+.%AZ29D%I"RC-_AG:5R;:\/0E%$\,GM,DH%E J!@$ M97(41/+MAI'7ZK))1TFVV+*E%R%!X>?5!M&*A&G R8HE+*-1M"6B^$KV%)99 M&I.E;,GE8TDT[EM&,WY!AIIPZ*EPH30/16O?-T9SWQC*^\:+-S3,8M%2RQ9\ ME:;!:Q@-SI2H06??.4B:!:4MH#2[INV/8[MCV+K(]' 1%UHG#T5KBZXQLG2U MD_6)O3#1HR09\]-5$OZO]!_\J @J(R)@2Y:)OH387Y8;5"/4YH+2++UO_QB] MJ9*!0OJ\6\H>0DU[Y5>[IM0[-J4HW\ M4%NW']78LW4#M:]JVKS5!]0TK=?UA%I3)V9UH%G=$[-ZJ*QMF34.E:ZVJ![2 MA&W?1K:V&-J*H:(8=MZ+;LM6]D+^/#23J^:>K3.HBU73]AN5:7\N%YK3/BFG M \WI#N34S5Y2#Y6T+;'&H]+5)M53.:4AW]$+Y"S'AB6\>I.*?9>?A]4%M:V@ M-$OONTBZ<3GMJJM?RKB:&=W'WU I8])53;_4_')J=!]_4*L)16N+IC&;=+7; MY%3C(2)&580&XU1WPRZO)R87;GT6;HQ MG7=?]1F Z5>S24\P4#<(16L+IO&#=+4A=/?Y@3QFZ2JC,?GO0SGC^M>@5) . MPSV49D%I"RC-AM(<*,V%TCP4K2WDQC?2U?X$Q&=7YSA;Y5#CJ*8=L]JA2>W3 MDCK0I"Z4YJ%H[;? &SO$.&:'E+JL>G/EL(#<%?DZS>3TQI &U;QS-0BE65#: M DJSH30'2G.A-*^FM?HIFK;_0E9;JXU98JC-DH?:%E5U!-2(L^4)-4J@M 64 M9D-I#I3F0FD>BM86<>-<&&KGXK[SRLCQN3^C/Q/?F6ZZ5^<\6Z=06P)*LZ$T M!TISH30/16OKM#$[#+79X24OC.>EPY;3[_5+$L?>CU SSVY]S:&W"SJC9PN: M0[J%JHQP.E>2A:6[6-%60< ML8**Y^:MZ/KEA_+]VXP*+>%!"4-_ @6E M>2A:6\*-,66HC:D'^OWXU +4CH+2+"AM :794)H#I;E0FH>BM47]D_7PX'6PX72/!2MO91-8Y>9:KOLY &:FG.N0J$T"TI;0&GV MD?.O:X=E"ZV("Z5Y*%I;MHUS9JJ=LY\2A:6])[*^,=61JO68NR7NNG:I3#Y^+0#T'5Q+,UC5TH#^K$06FVV?]% M4G\Y*FA*%TKS4+1*JN.]U59CEJW*I7HY*1=,K99VW&W=+0=\5RZ"V]ENZ1\6 M^L!V6__@5(O]-OAJ[>$'FJW"A).(+44J[6(^'9&L6LZW^I*GFW*MU^DSB5%QW(BFSRVY7!!%)L#AA&4G5+S/&$RS5*9]W M1<8)#DNC).Y:AC'H)IBFG>%5>6W"AU;[P MB4D"8D%92EB)/9=6=D7OJ651B4);Y2LA0; MQZBXE2ECWXN3V_"Z8Q0U(C$)9(' ZL^"C$D<%R15CQ\UM+/R61AN'C_3W?+F MU'C%V1+QHK2B%0>E($IKU80T+;3[ M(+GZE2H[.71^Y%0^H83(B(6(I@LBI)*F1._0* QIH2\JR)<'&[U^]0:]4I;H<\1R@=-07'6EJEG![P9U+<95+:P]M3A%]RR5D4!. M&I*PQ=[1VP\T]EWU1%:/Q7I^+#>6%O@^CT^0=?X6689UVG8_+YFG)^C4*,U[ M+>;VX>9MWIU?\^[^FG=/;VZ30)F;>\U]O;E+IB?(N&@S;[3DZ4K@IR7O= _O M08WV81X3Q&:H%OM])?;;E=@%^G:GS-"M)(GXMZ7.-Y6/7KN/(KYY@*&E(U@6@3H!9ZK KV*"$%9.;Q?"=U1M<=1>;PMHM M9#1+."V8OFDV"[DO8CS(6_.!8(VF[:^:MJ]MVDF, YK.T23G0:3F4^@C#PEO M"X9;%3V@TYX04P_);M"0HP@N" M I8D5!:]1!7-ZL>,B_D03?($Q61!XF* SYZ?/"N?/%*S%F7!?^0$R7Q*A)I< MR0B-XBS"Z$$2913FO& 5[C/"J0H+9=]\C]-<]414A;%>X5:%1?(<%OMO*Y+( M@P@M6)PGSW6LP@E- _4B(0JRFA@1K$JIVA5.4O*H[G?)$$Z5A[AV*D[:!E#( MIO @83X0K-'+!JM>-M"JYH-ZH9MP-J,2C:3D=)I+/(U)6R_3@H[M99 P&Q+F M#':&V)YA;(VR+J1'#Q+F \$:8CI;B>GLI2&H'JJG,9U7+S@3P@/5B]6;>YNF MM+QC-57!3&,S.IX89T;CWU9$M2%KX/Q,#5S(&GB0,!\(UM#2^4I+YUHM?<8T MRC'Z0);J-93P^1/Z=D^2*>&M;Q1:UK$Z@H39D# '$N9"PCQ(F \$:^CN8J6[ MB]_PAGL!J4=(F T)*,VO:=NO[;T]07:=FS#UR8F- ME=%6*8%F(4!I-BC- :6YH#0/E.9#T9J*6Z=,S/[O"*^@^110F@U*4YH'2?"A:4V/KY(.ISSX^*X46.!WIW/A2MV<+KU7=+NX@ZO*-X2N-B5O#\+^\WK?@/&8D%:W3:+VOH]O=>CETVZ NG4-&PO=V]R:W-H965T MN& DZ !G-HFV?;7UP9"(&'S_6+CP_2$R2O=(\3 MS3)Z$S; M,W:8Z#H-]RB%]!$?4,:?;#%)(>.W9*?3 T$P*D1IHEN&X>HIC#-M/BW27LA\ MBG.6Q!EZ(8#F:0K)7PN4X--,,[5SPJ=XMVJ80MB\/M.#HO*\,AM(T1(GO\<1V\^TD08BM(5YPC[ATT=4 M56@@>"%.:/$?G,J\0TL#84X93BLQ+T$:9^4O_%8U1$/ .=T"JQ)8UP+G#8%= M">SW1G J@?/>"(-*,'BOP*T$;M'V96,5+>U!!N=3@D^ B-R<)BX*NPHU;^ X M$V_6FA'^-.8Z-G_ZO (O!.\(3,%/X"F*8F$X3,!S5KZVPOX[#S$8)_2>9_FR M]L#=AWOP <09^+S'.8591*&4OI'UTM3G>;R[7&5CN3)RU;7T]4P@)%L)8G@]J3@=03/IZ'"$44; E.6ZYTV2%E M]>UQ*F'>X.85,-K^^[ M]QB/BQ$7P)SM,8G_[ER&+*2\O@ZKA'DJ8;Y*6#"^G>(9XJ_^+K2\,XW+8M7X M3[--<,<7HW0/>='N.Y>BQNUW:C :&]=?JJ4\?E^#E-+\CDJ,K:%U4XE 5=BV M28T=!5/UDJ BMM<$-_.(I3QP;W=4TOR.*EB.<^N-HJ!M;ZR+-Y;"I4$%NUJJ MW=HBC=G;%I4TOZ(U.XUEN[>V* K:MN6R76)*U^CS\YSC7PU1NCVBE.8II?D5 MK?GJV1TCW??8^C O>Q^F?/-#R>).'J.WIRIIGMFQ"].QOE,:-%!%*TW5&WOC M*2*[XA2#\IZ69ZSZ9T[\\ASD@B^/95:0[.*, M@@1M>2CC<=)0W#!^*G?D-9@RGQ>4>P0@1D8$_WV+,SC-/\' M4$L#!!0 ( $I+"%F8&7KFW0, .<3 9 >&PO=V]R:W-H965T:>ZP>>' G]SK8 '#UG:Y>+(F-,-<-.E&9SL*."Y 6:J;HY&K9SC)M=FDN/= 9Q.RYVF2 MPP-%;)]EF/[\!"DY3C5#>[GQF&RV7-[09Y,=WL 3\"^[!RI:>LT2)QGD+"$Y MHK">:O?&73B6\47 /PD:0II)( M=.-'Q:G5DA)X>OW"'A3O+MYEA1G,2?HUB?EVJOD:BF&-]RE_),=?H7H?1_)% M)&7%+SI6L2,-17O&25:!10^R)"__\7.5AQ. 8;\","N >2G J@#6I0"[ MB7 M IP*X%P*<"N >RG JP!>85:9W<*:!>9X-J'DB*B,%FSRHO"W0 M'DEQ6XA.G MXFDB<'QV'T5DGW,FJBJ"Y(!7*7Q N1@!-^A)5'V\3P&1-:K#'D_"_A)A[Q; M<9*R]P+PY6F!WKUYC]Z@)$>?MV3/!6^&(8O(*KA5@]\>7GG^^#!Y9WO@X>7=]YLPG51 M&75YF'5YF 6?=:X\3GW':PX4W:=B%L-Y!$C,AVA.(4XX^H,PAK[=KQBG8I+Y MM\_[4M#N%Y03[QW;X0BFFIA9&= #:+.WOQCNZ&-?):@D6Z@D6ZHD"U22A8K( M&O5DU?5D#;'//E,6<>NNX=LO:0;UKK>TJ M^J[?,E:E8*"2+%1$UC#6J8UUSAA[@'Q?#%>RR9/_A,=B88?G",0D+S8%JR05 MD$VOSTXGZX9GN..6T8/ZUQK=E31=W[!:5JN4#%22A8K(&E:[M=7NH-5_\ZU8 MTL^,7;>3X/; '12YUL^N7-M+E7*!2K)0$5G#2Z_VTAM>8PG':9]_7M<_P[-; M29T/DE_K85?2LWRKM90O54H&*LE"160-'_W:1W_0Q^8&.RHWV*G88/>/3K^3 MZAO3:NU@YGYGGW,S-DVO&;7HH?(=IQ6U[.$R++\5%?1%&7YKX@C/1342.*X3 M.!Y.X"O?MGW9&WI=.S:ZDJYC>JTE)#E#*:P%_>C6$]5(RV.ELL')KCC56!'.259<;D%\7% 9()ZO">$O M#7E04I_MS?X'4$L#!!0 ( $I+"%D#,#T&PO=V]R M:W-H965TIN_2"1U]]P]=T?R--LS_DUD !)] M+W(JYE8F97EOVR+.H,#BCI5 U9>4\0)+->5;6Y0<<&*4BMSV'&=B%YA0*YR9 MM0<>SE@ERS:1>L,-9B;?P!/*Y?.!J9K'(R19K)A[)N>?$KFEJ,=@AQBJ1&P>NU@ M!7FN@90;?S685FM2*QZ.7] _&.Z*RP8+6+'\*TED-K<""R60XBJ7CVS_$1H^ M8XT7LUR8)]HWLHZ%XDI(5C3*RH."T/J-OS=Q.%!0./T*7J/@=15&KRCXC8)_ MKH51HS ZU\*X43#4[9J["5R$)0YGG.T1U](*30],](VVBA>ANDZ>)%=?B=*3 MX2*.646E0(\0 ]GA30YHD:OJP30&I'*!5AP2(M&O3 ATBR*0F.0"736#:[7V M_!2AJS?7Z TB%/V6L4I@FHB9+95_VHH=-[XL:U^\5WSQT1=&92;0FB:0].A' MP_J3 7U;Q:4-CO<2G*4W"/BYHG?(=VZ0YWBC'G]6YZO[?73^G_7U?[9^% R_ MK13?X/GG5\H-PJD$?E P::=@_EALA.3J-/BSKQQJ@Z-^@_J$O!+G%N$H,EVL"64$KH%K$4 ME< )Z]MCRQIO8O#T+;,+WWG>=&;O#H-]*N2ZP>A8*#H5"L;C#M+Z)TA'I,IN M>-^R-!6F+)NSM(_HM(?H.]?K4#V5UJVR4O3'/865^Z M]RNW9SU2777=!/\#7[?D7]0>(52@'%)ERKF;JJ3PNLVM)Y*5IH_;,*FZ0C/, MU)\!<"V@OJ>,R9>)-M#^:X1_ U!+ P04 " !*2PA9>!W#Q#L$ "B&@ M&0 'AL+W=O.. $M@93VR3MOU\;&!H20A/I2'N38#COXT/\ MYG" Z9[Q+R(B1*)O"4W%S(BDS&Y-4P012;"X81E)U9$-XPF6:LBWIL@XP6$A M2JAI6];03'"<&O-IL>^)SZ1U#O, M^33#6_)"Y*?LB:N165/"."&IB%F*.-G,C+O>K=^SM*"(^"LF>W&PC?2IK!G[ MH@J6 MRU&LY1)+/)]RMD=<1RN:WB@,4:C5$L:I]NZ+Y.IHK'1R?A<$+$^E4#X,2+S# M:TK>HU3]9SZ@NS",M;\P10]I^2_1;GN[)!+'5+Q3(9]>ENCMFW?H#8I3]#%B MN5E6H_V;6?[(+GG.&I M&D+QFG&L2Q*ZXQRG6Z)JG43*&8WQGS(B',D(IZ@I^OR'8J('21+Q3YN5R@3Z M[0GH6G\K,AR0F:&*N2!\1XSYK[_TAM9O;<:"A"TA82M(F L)\R!A/A"L85:G M-JO319\_ZTJ6JDLTRCC;Q?IZ+%0E"V@>DE"7M!]%L;6H==*O=6()&Q8PW7'L MYD/+FIJ[0X-!3K@ZG7!R/*$+.:$'"?.!8 W?]&O?]#M]U1,VAU&C0>#(Z"W-.@GC,^"O): M@GKC?C/(_TE08QT&]3H,.M?A$?^K?O]%T241+M#G1Y*L"6^]:G22KET$2-@2 M$K:"A+F0, \2Y@/!&JX;UJX;_M\MSA#2K)"P)21L!0ES(6$>),P'@C7,.JK- M.NHLD1\Y#I5)7^_RGNN&!MUC6ES"7,X2U*RD;98-!L,^L57GO-?:"A*V@H2YD# /$N8#P1JVFM2VFG3::H%%A#+\75NHM;^> MG'A(W<@<6ZASCFLM! E;0<)<2)@'"?.!8 T+]:P?CSDMR%NVBM:X.SJY.UYT MSWFMJ4!I*U":"TKS0&D^%*UTEGGP+%V_O7G$?!NG E&R47CK9J3J#"]?B)0# MR;+B\?J:2=4\%9L144T7UP'J^(8Q^3K03^SKUU+S_P!02P,$% @ 2DL( M64OW?2B& @ 8@8 !D !X;"]W;W)K&ULK55= M3]LP%/TK5H8F)@'Y;C>61H)6:$R:A"AL#],>W.2VL7#LSG9:^/>[=D(H$+H] M["7QC>\Y/N?FYB;;2G6G*P!#[FLN],2KC%F?^KXN*JBI/I%K$+BSE*JF!D.U M\O5: 2T=J.9^% 0COZ9,>'GFGEVI/).-X4S E2*ZJ6NJ'LZ!R^W$"[W'!]=L M51G[P,^S-5W!',SM^DIAY/&?AZ32U^2[A.X.MWED3ZV0A MY9T-+LN)%UA!P*$PEH'B;0-3X-P2H8S?':?7'VF!N^M']@OG';TLJ(:IY#]8 M::J)]]$C)2QIP\VUW'Z!SH\36$BNW95LV]PQ)A>--K+NP*B@9J*]T_NN#CN M,'D#$'6 Z%\!<0>(G=%6F;,UHX;FF9);HFPVLMF%JXU#HQLF[%N<&X6[#'$F MOQ0;$$8J!OJ(".R:8S+'3BD;#D0N"7O:)HQ M$'TUHKX:D>.+_U*-!S)CNN!2-PK(S[.%-@K[[=>0OY8P&2:TW^"I7M,")AY^ M9!K4!KS\_;MP%'P>['EYG)5'RE/1,6])K2_9J.^,X;:@H@.#<(AJ#XUINF%@1;#LB%UIR M,-!WZ\.0^O:$=$?7<1JF+\0/),5)."P^[<6G>\7?2$/YD*)TH)[!*'PAZ756 M_"E(7TCR=R: G;[?J%HQH0F')<*"DS&RJ':BM8&1:S<4%M+@B''+"G\"H&P" M[B^E-(^!G3/];R7_ U!+ P04 " !*2PA9%6?MNA\# "C"0 &0 'AL M+W=O&)8D@@XC+%%C\ MK6$*628S"8[?35*C[5,*N\^[[)]5\:*8)68P)=F/-.;)Q!@:*(85KC)^2S9? MH"G(E_DBDC'UBS9-K&6@J&**G ;@:L* MKG*-IX\G/JR7C5,S47[JBZUX\?2]R^5ZR M$D:U;-Z_L(G5Q1.Q_6280XQ*3/FS#K?. MZ7=([-' V\/M!_F.I:?U6UK_*.UN:D$]M71H?A_-LH,]-$V0X]MZMJ!E"][$ MQO$6M&,<]/WP]H>X'^-Y!T9XT'(-CG+-8 5BN<4H(HS+/8K"&HI*:]Z@UWW0 M&;(:41,3!'K$88LX/(JXJ"CP9P&8R7E'<:9C&_;Z'>R1]2,.3+=1RS4ZRG6C MV<%U:*/^J(F]=(^N'^3[[E /:%M_CR?K*.(=X7J[&EUWM["]43#:H]*&64[IH]IP5 &*Z&S+@:B+EK?".H&)Z4Z5)>$BR-:/2;B%@54!HCO M*T+XKB'/Z?9>%OX!4$L#!!0 ( $I+"%EE8SF:,@( &\$ 9 >&PO M=V]R:W-H965T_=>[9UX@$+XTV M?BQJHG:4)+ZLL9%^8%LTO+.PKI'$J5LFOG4HJPAJ=)*EZ5722&5$D<>UJ2MR MNR*M#$X=^%732/?G&K7=C,6YV"X\JF5-82$I\E8N<8;TU$X=9\F.I5(-&J^L M 8>+L9BX\7LQ!"=S:Y]#7*DVUZ,"MHE.G>\J7_#GN +'L%D/6 +.KN&D65MY)DD3N[ 1>JF2T$ MT6I$LSAEPD^9D>-=Q3@JI@Y;J2J0I@)+-3INZAP: ND]DH?C256I\ &EAGO3 M30%G)W!\BR25]B=P!,K @]*:UWV>$,L*Y$G92[CN)&2O2/BZ,@,8IJ>0I=D% M/,UNX?CHY%^:A%WMK&4[:UGD'?['VN<7GF"/T>*W:'$2K9W"36_UYV3NR?& M_#JDONMR<;A+.#0CW\H2QX)/A4>W1E&\?W=^E7YZP\-PYV'X%GLQJZTC('0- M&&O.E.$0/9W-43IEEOV$L"59K:4I\9#^KL-5[!#.Z+K(\F2]+RK9FY]P%!^D M6RKC0>.",>G@PZ4 UXUWEY!MXTC-+7'[&-9\(Z +!;R_L):V29C2W1U3_ 50 M2P,$% @ 2DL(6="C].1Y! )!H !D !X;"]W;W)K&ULM5EM<]HX$/XK&E_GIIU)XU<,Y("9!OONVFGF,J&]^]"Y#PHL MX(EM44E [M]7DAV#;>&2B_(%V^+99[V[XD$KC?:$/K U $>/69JSL;7F?'-E MVVR^A@RS2[*!7'RS)#3#7#S2ES+:X!7,@'_=W%+Q9%Q6[ VF@$'\GL&=']TB&8P92D_R0+OAY; PLM8(FW*;\C^S^A#*@G M^>8D9>H3[0ML.+30?,LXR4IC\099DA=7_%@FXLA \.@-O-+ :QH$)PS\TL _ MUT-0&@3G>NB5!BITNXA=)2["'$]&E.P1E6C!)F]4]I6UR%>2RXDRXU1\FP@[ M/OD,(LL,O4>S8J8@LD1J#,6/8C**Z]L(.$Y2]DZ OLXB]/;-._0&)3GZLB9; MAO,%&]EEU^O"JW?"JX]N2,[7#,7Y A8:^ZC;/NRPMT4&JC1X3VFX M]CH)/VWS2^0[%\ASO$#S/M/SS7U=."_S'O]O[[5D^-6<\!6??W)., 9P4$ =Z8BEZ5VR#YS"VA*HQH#NP)K_^XH;. M;[J.*ACHC8F=(9U3-S&!,-^A:F%V:O"['6&.5L3RM]SH-E/XBQH M>D>^7==MQ*G#-'(1M3&>$S3BU&$\?9QA%6?8&><7PG'ZDQ##EMN@%6(;X_>; MI6QC!J[?"+&-"8=#?8C]*L1^9XA3$9;\7Z&P@WP+Z-L-9/= M0+2R?1< 3%) M%IDDBPV1U"UY'YBLCDFRR"19;(BL5IUA59WAB_5@V):A7D.2ISI, M4_+:F:^B!!A/V]'K@.H=%I],9Y)U(&Z;S-1++1[&LWXE^92.Z#]XI#=V< MSYU]1MDBHVRQ*;9Z=8Y: O>U!*)D-E4CDVR14;;8%%N]1MZA1MZ+9:*DJ"U[ M&BN:J0[36%I$&HS76%K$.DQX0B8.?8C;N9">S"!-Y4)7JH1H3A] +7L[-<)H M V*4+3+*%IMBJY?FT(2XP:MI1&=_\^P:F62+C++%IMCJ-3IT4&YW"W661K1; M&K^YE-!@/+^I$6W,H-_4"(VOP0F-.+1/;G?_] ?DHA].E4;@19;D">.R/]YU M]QG=K,^>A";9(J-LL2FV>GT.O9_;?S6A,-H,&F6+C++%IMCJ-3HTA&YG1W.> M4 Q:>SS#EE!H,$%3*-H8SVEN0FA ;M]I2(5]M.N= 5VIXP8F MCFO-CLK$:K M(XT/:B._,7[M7DU=S7@DCT#4+ON!OC@_N<%TE>1,I&PI7#F7?:%IM#B2*!XX MV:@]]WO".&ULK9?QCYLV M%,?_%8M54RNE!R:$)+<$J9?3:9M:7737=IJF_># 2V+58&:;I/??[QD(EPN$ MZZ+]$C#X??WY/AO[9;:7ZIO> ACR/169GCM;8_)KU]7Q%E*FKV0.&;Y92Y4R M@TVU<76N@"5E4"I:Y6P#CV"^Y$N%+;=127@*F>8R(PK6<^<#O5Y0WP:4/;YRV.NC M>V*MK*3\9AN_)7/'LT0@(#96@N%E!PL0PBHAQS^UJ-.,:0./[P_J=Z5Y-+-B M&A92_,$3LYT[$XU/FIHQ&-SRS MT_AH%+[E&&>BCX YT.0]>:SFD<@UN2M,H8 \@%T&/-N0LA-9LB>?:.C]TI6=_TGL1:Z&3:Z&?>I1M682 M4'8=G9F^FTHB+"7L-K.+@G TDT@]ZB+NXH:'7%/)L$) M=Z_RA=RCAGOT&G?8Q3UJ<0_I\(2[5_E"[K#A#E_C'G=QARUN?TI/N'N5+^0> M-]SCU[@G7=SC%C<=C4^X>Y4OY)XTW)->[L_2X/XDRDT]KS?U+A^3=OXI]4Z, M] YUH9%I8V3::\3NS(2G>6$@P3/' YANIQ,6T[>TR \<=([UH5.J/=\#GN] M7A:%4C@1))>JK&]P_Y3-@5/-E3B<-YU'JM?>G5JKKNYTO/6.@^<9?8E^5$+0 M7O3[RP!M&:#4#\XX>#[A:>^A&"WMC"+?CHD" M^E+/H;N>\=M8T_#T;.B'^*\KS#TJ^FS%_8FI#<>*3, :Y;VK,:92545LU3 R M+^O E31859:W6RS\0=D.^'XMI3DT;&G9_)6(_@502P,$% @ 2DL(63[B M6'3E P "A0 !D !X;"]W;W)K&ULM5A=CYLX M%/TK%ENM6FDZ8" D,YL@M9FM=E:M%#73[D.U#QZX":@&4]LDG?WU:Q,&0D+< MIB(O"1_W'LZ]/C8'3[>,?Q4)@$3?,YJ+F95(6=S:MH@2R(BX9@7DZLZ*\8Q( M= M+WQ,UXG4%^QP6I U+$%^*A9%6A.V9567=$DG#*V19Q':W0]$'5FRI; M59/F>AB7DJN[J(_A6IH4:(WF%DA8*52LF-I2$=6/LZ.:U-L=*?<$J;_+ M_!IYSA5R'=?O29^;T^\@4NFX2O>ZZ;9J3],CM^F16^%Y/^C1%5I0HDK6#?BS M:<"7]RHZP_7YL/4MO14$BF%EJ&@K@&[#"WW_#@?-'7^$#@77: MX#5M\$SH)Z6RYDST#O(.+JC@]'*R"?W <:;V9K^BXR#/][PFJ,/4;YCZ1J9O MHJC,2DHDQ&I*JU9$*=&+1A_)'=)H[_FO73SR#UCV1.$ ._TT1PW-T2\U5,V] M/J:C(PZN[P<'1(^#\,0]T;X'M4XFC,;H/E.KP 8T38&^?(#L$7BO MZ(V YXI^(+!.[>.F]O$%Y_YXR#8,!-9IPZ1IPV38N3\YTJ'G30ZT>AR#1^-^ MJ=XT/&^,/-^E0#L#9-"H$>G1X;8.=1J7Y03N/UJQ:VSP,8W=GB?[YRX=K0/$"4YHVS]]),"-F.?/6Z7 M\!:X-1?8NZ2$C=;E[%8,A-9M1>M>L-F^G"_A8WLR&A]:F)X@/PA."+BU,-CL M81X84Y?69IT:(G('0N@6W7@@'E]3IH,9H*+1N*UIKA(V6XQ=T.CY>1,>> M>RC4GB@'^R>4VCH8;+8P@)&GN'HK7W-FKT+MD'PM=I M+A"%EF90LJPX3(#%P':#NKQB3SR=Z.ZC9_@O_ M!U!+ P04 " !*2PA9@D9[ J(" #E!P &0 'AL+W=OXE>I>%P"&/)9^,FPHBNX!7-7S17N_%8E9R4(S:0@"I8C;]P? MS&*+=X#O#+9Z;TUL) LI[^WF*A]Y@74(.&3&*E!\;6 *G%LA=..AT?1:DY:X MO]ZI?W&Q8RP+JF$J^0^6FV+D77HDAR5=?"1; M:R/+AHP>E$S4;_K8Y&&/@#K=A+ AA,\)\0N$J"%$K[40-X3XM1;.&X(+W:]C M=XE+J:')4,DM41:-:G;ALN_8F"\F;)W<&H5?&?),,E=8,WN?E),K41>EO=W3% QE7'] R-UM2DY//I 3P@2Y9IPC0 ]] M@[Y9"W[6^#&I_0A?\",BUU*80I.9R"'OX*?'^1='^#[FI$U,N$O,)#PJ^&TM M>B0*SD@8A'&'/]/7TZ.NR;8,#7=$,1A[V.0UJ U[R_EW_(OC)GYY/^8-KO.$]Q MAM4CYX]\/0"OJ5HQH0F')9H*>I^PK:IZJ-0;(RO7-1?28 ]VRP+G,"@+P.]+ M*/E!3)2F4F2N676)3N/3SW\)(YX'@GY'>U M!M#HGK-43;RUUIL+WU?)&CA1IV(#J?FR%)(3;89RY:N-!++(DSCSPR 8^IS0 MU)N.\W>WXXO/=+76]H4_'6_("NY ?]W< M2C/R*Y0%Y9 J*E(D83GQ+O'%+ QL0A[Q)X6=VGM&MI2Y$-_MX'HQ\0++"!@D MVD(0\[.%&3!FD0R/?TI0KYK3)NX_/Z)_S(LWQ]0%A1;O$0PE?]%NS(V\%"2*2UXF6P8<)H6O^2^%&(O 8\.)(1E0O@T M87 @(2H3HKS0@EE>UA719#J68H>DC39H]B'7)L\VU=#4+N.=EN8K-7EZ>IUJ MDJ[HG $B2H%6[U%JFH>D"[028K&CC*$3=%8?>F#CT92TR99#4V->&JIW03TI:'PI:X0%:?V3I*8J"]R@,PD%+^LR= M?@6)2<=Y>M1,]XU E4IAI5*8XT4'\#[2E&HX^60Z;H'V)+LL%/CVR<2C:PU< M_=U6:P$^: >W&_5";4@"$\_L1 5R"][TUU_P,/BMK?*>P!HZ1)4.D0N]K5M6 M4JC6!2Z0ACF2/4RVTS .@[&_W2^F+2B.JZ &R4%%9DD&<\8T6:M"!=2 MTW^)/3+:2!9(\=[\)V$8#Y^P;(L*<-1.,ZYHQEVU-#NOC63\HTC#P1.*\0\4 MXT'83G!8$1PZ"=Z8IN<91]]N@,]!MG:V$Z%K9_<$UBAV5!4[.N8.'_6I0T]@ M#1W.*AW.NG8E*$UYOILR!U.[I]M=R="UV7N":Q1+ [J__O!,1N^1.])BK[0FEKL>2!\M*9_!CHJ MNKZU:&?F:XNN+0UV.@7CD;;&Q&],A5\@6:>"B=6#L_G=>)V7_!@^!M=&!D=' M;7^G3^JL14]H32UJOX3=AJF+JRNAGK%UK5&'?!VN'1-V6R9GRZ+_T$L%1N[A7^]876E.+VL!AIR_ZN4/<#?T2Z^*&>&WUM6W#;G?U M[-9X@;MQ3]&Y'8YAYG#MYO#Y4;=&KU:O+[3FY47M]4*G?_JIK?$,M,/?N#.[ M%NWOW7'9"\8;(EY4FLBUX4S G2)Z7114_1H"EV7?ZWH[P3U;+(T5^&FRH@MX /.XNE.X\QN6 MG!4@-)."*)CWO4&W-XFMOE/XRJ#4>VMB(YE)^60WT[SO!=8AX) 9RT#QMX$1 M<&Z)T(V?-:?7F+3 _?6._9.+'6.940TCR;^QW"S[WK5'<[LO5).IJ(J3GO+IV,PE'%]ABJ/ M#V-R>G)&3@@3Y!9AJ* 3WZ"/UI*?U?X,*W_"5_R)R*T49JG)1.20M^#'A_%7 M!_ ^YJ9)4+A+T# \2/AE+3HD"LY)&(1QBS^CX^%16SC_9WWRS]:?)2-JJB5R M?-&KU8)OD EFX.(&WW=.]LIGX,J'?+]!#)D:*/2/MNNO#,3M!FQ7[.D5S:#O M8=O3H#;@I>_?=:^"CVVY?TNR\5N23=Z([-DMQQ!II!G_X!4$L#!!0 ( $I+"%F' M#+D,OP( "\' 9 >&PO=V]R:W-H965TKB1ZD$7 (8\EESHD5<8L[KT?9T64%)])E<@\,M2JI(:G*K< MURL%-'.@DOMA$,1^29GPDJ%;NU')4%:&,P$WBNBJ+*EZF@"7FY'7\[8+MRPO MC%WPD^&*YC '<[^Z43CS6Y:,E2 TDX(H6(Z\<>]R&MMX%_"#P4;OC(FM9"'E M@YU<92,OL(* 0VHL \77&J; N25"&7\:3J]-:8&[XRW[%U<[UK*@&J:2_V29 M*4;>A4 M/-V L &$^X#^*X"H 42NT%J9*VMV&2FZ(LM'(9@?.&X?&:IBPNS@W"K\R MQ)GD2A@J^@:EVH1^VLB:U++"5V3%Y%H*4VCR6620 MO<3[6&);9[BM)/Q>B3,2!2R%X;T6T/ZA]B3">54I'@(#5E SH1@(K?';06*R:RK])HO=GRV M5ZV3\VB >[/>+:DC:!!=M$$OI Y:J8.#4N\4%9I3VX6Z=-7@P4[*T]Y%?T]7 M1U 4#[IUQ:VN^*T6 IZJ@^;%__K2BS_NB>P*.H_V1/H[O:<$E;N6K$DJ*V'J MW[-=;;O^V#6[O?4)W@9U\WZFJ:^2:ZKP1&C"88F4P=DY^J;J]EQ/C%RY#K>0 M!ONE&Q9XHX&R ?A]*:793FR"]HY,_@)02P,$% @ 2DL(6=.@&A^- @ MO@< !D !X;"]W;W)K&ULK55M:]LP$/XKPBNC MA2UV;#WG!'UJ4R!C]-:KR& M>U /]:W0.[]3*4@%3!+.D(#5Q+L>CN>QP5O -P);>;!&)I(EYX]FLR@F7F N M!!1R912P_FU@!I0:(7V-7ZVFU[DTQ,/U7OV3C5W'LL029IQ^)X4J)]Z5API8 MX8:J.[[]#&T\ET8OYU3:+]HZ["CV4-Y(Q:N6K&]0$>;^>-?FX8"@=?H)84L( MGQ*>\Q"UA.BE'N*6$+_4PV5+L*'[+G:;N PKG":";Y$P:*UF%C;[EJWS19AY M)_=*Z%.B>2K-8*G0>W1=%,04#E.T8.[UF3*>9Z PH?)"0Q[N,W1^=H'.$&'H MAE"J 3+QE;Z$D?+SUN'4.0R?<1BA&\Y4*=&<%5#T\+/3_-$)OJ^#[S(0[C,P M#4\*?FG8 $7!.Q0&8=QSG]G+Z5%?./_G??[/WH^2$77/(;)ZT:GGL&!2B48W M X5^?-4 M%!0R9]]M79J<;^:Z7%C6>,<)IYN8A+$!KST[9OA*/C8E^C7%,M> M4VS^2F)')8F[DL2GU-,%4Z!5%8*='@X2^LK@%*ZL@ID,FS08#!-_<.4>XR=M1LVU[;'/K%/A^/9L,>> MZ>'D9LE?>3?9;K!8$R81A95V%0P^Z'XIW+1P&\5KVPZ77.GF:I>E'K @#$"? MKSA7^XUQT(WL] ]02P,$% @ 2DL(6;__"4[S P G \ !D !X;"]W M;W)K&ULK9=M;]LV$,>_"J$50PNDT?.#,]M 8J?8 MAFX+XG9]4>P%+=,V48ET2KC_Z7Y'\G@<[KCX)M>$ M*+3/,R9'UEJIS8UMRW1-+/D(L<*;L7*EAM!\,*(\LSV'">R+HC&=^-+-7Q^\?S#P #/'DDQX]H4NU'ID)19:D"4N M,O7(=[^3"BC4_E*>2?.+=I6M8Z&TD(KGE1@BR"DK__&^2L21P/=>$'B5P&L( MW. %@5\)_',%024(3&9*%).'*59X/!1\AX2V!F_ZPB33J &?,CWN,R7@+06= M&M^FJ2C( I$]S"1)),)L@;A:$P%?%X(PA3**YS2CBL+;]V@&,V]19 3Q)3J( M[X_%_QCQI!)_/!*_G1*%:2;?@9O/LREZ^^8=>H,H0Y_6O)"@E4-; 9..S$ZK M^._*^+T7XO^S8-?(=ZZ0YWA!AWS2+Y^2%.2ND?L=\NGY7V_(;1B(>C2\>C0\ MX\__P6B8*&>H-*>G8#2;7B$%H5Q []M MXP:AVZ#OC>]"^K"F#\\<\%PO*JRWFR[8L 7B!W[8H.TP2L*D0=L;SX6T44T; M]=*6Q0(WJGH7;]1"\8*D,6TG'49Q%#5X>R.ZD#>N>>->WD]PLWKB-XB6M M 6Y;^4$2-$>X-Z8+B9.:..DE_H*%P P6%#18NXSB00,U:96W M.!X\K^\3A$&-,.A%..QE&RY,\P=5"!I9 4N3K5!&H(VKFXZG+KI!*Z:D59<& M;;B@4;JGO5%>.(RN\]QY.?U+M4;^J)&OZJW]Z>JPVU^AF8+2G>MD09(^4(99 M2F'"/W!)3>J^WN^5[L+GT)'=LR(W+CGK; A^$$^YE%[L_3J;JUZ//]L6O):W MT_$XZH3=7OZ_.7N_) O(8(84WB,^S^C*9+.[+W7;L["Q[TTJFY/=T6VNL/ZP M+L5^;CG=WG;K@F&_JSR>H$,'W(3OL'+]9BGMC^YGZ>VCDY ^M_Z%Q8HR"45E M">Z=ZQB&0I1'P?)&\8TY',VY@J.6N5S#\9D(;0#OEYRKPXT^;]4'\O'_4$L# M!!0 ( $I+"%E#XE1E;00 -03 9 >&PO=V]R:W-H965TGU[M^7E+1:6^8JJN,76Z3.G.$<#D1 MV!<%YD]SR-EA:KG6<\@100ZIU!18_3W O)<,ZEQ_%N3 M6HU/;7C\_,R>E,&K8%98P(+E7T@FMU-K:*$,UGB?RT_L\"O4 86:+V6Y*'_1 MH<8Z%DKW0K*B-E8C* BM_O%C+<21@>(Q&WBU@=\G56Z+LY.PV M3?D>,@2/*E<%"(1IAIC< E?>.06'8L&Y0&^7(#')Q3N%_'R_1&_?O$-O$*'HSRW;"\4M)K94P];.[;0>XKP: MHO?*$'WT@5&Y%2BF&60&^V6W?=1A;RNY&LV\9\WF7B?A[WOZ'OG.S\ASO, P MGD5_<]\4SO=YC[_/>])MOH14F;LF\Q,M_2;__)+/_T;^QC'I-<2A@(S@ZO.=J<*'LCW7^JJUU2%PY2H\"G?HN"UYSS&N[XQ: MZAI D=\"Q><@;QBV9B#IC/Y";:-&VZA36[6SDKE2DDJAOKH9]!,Q.@OK)@C\ MEHH&D.OY04M&(VK43E(#RO/]5L(GG:%>*.2@$7+0*>1BB^E&9RAM]A-/2&V, MD?)U X]$2"WKH4EEDZP#@ZQNV)+5 K#5@8O#:!16_K8 !I&3DO3SJ@OU'38 M:#KL6SY!K?B?1$=*#L^7HW,NG@'E.<.V>KVXXEY<26>$%^HW:O0;]=I[--O8 M52THAQWC4KTA=&P2QDHEWGY93C="Z5CZ^=:(S' M$>U"H/"Q-J,&JOE5Y<<2^NI$9%)UR#EV_JJ39')T"WAS:4T9N^^KAG MH_7==HU=&%"!-W+:^O3ABGMQ)=UQ7IICWHN.WO\IQYW[V)HJ^D8]-L$,!;D? M6]R/+3'!3C;&E3[VT:5# 7Q37@\)E+(]E=7YK^EMKJ!NRXN75O_<'2]<0__2 M'U>:R8E*PH'[>@MF]< M ]3[-6/RN:$=-!=YL_\ 4$L#!!0 ( $I+"%G"[4R65@, +T- 9 M>&PO=V]R:W-H965T EMXU%8A?;63=^/==)&MHMRSK(2QL[]YQKG^/8UZ.-D#]5 M J#);99R-;82K==#VU91 AE5)V(-'-\LA&PY9D"00J0- M \6_&YA!FAHB',:OBM.J4QK@[O.6?5','>=R317,1/J-Q3H96V\M$L.2YJG^ M+#8?H)I/W_!%(E7%+]F4L0/?(E&NM,@J,(X@8[S\I[>5#CL Y&D&>!7 NP_H M/0+P*X!_:(9>!>@=FJ%? ?J' H(*$!3:EV(52H=4T\E(B@V1)AK9S$-A5X%& M@1DW"^M22WS+$*4-.XY@9QVE*SGBY;(W_1R%HRE)UC"%7 MER$Y>GE,7A+&R9=$Y(KR6(ULC:,QG'9499Z6F;U',OOD7'"=*#+G,<0-^+ = M'[3@;52AEL+;2C'U6@D_YOR$^,YKXCE>KV$\L\/A?M-T_B_[_/^R+]KA(40( M=YO@>UKZ];+R"S[_R65%9N@2XRO@T1WY_@GCR)F&3/UH6C$E::^9U.RQ0[6F M$8PMW$05R!NP)J]>N('SOLFN+LG"+LGF79(M.B+;L[E7V]QK8]_:K-%FN,6S M3@$YN@8.2Z:/F_PMV8*"S1QY-Y.@/[)O=EU[&/+&];S]H/!A4+^W'S)_&/)N M/V+1.K5_%*Y?"]=O%>Y24YUK(>^(I!J:I&K%/_=3Z)(L+,E<9T=:Y\1S[^G? M9=HD&1X($8)Q6W,G'HYEQ")%6>_(2X6?[7F&T_!5O;G M&MDE61@\^$2<>R9VF6[1$=F>B8/:Q,&A&Q7CZ"^:YP6 M)?:]_JD[G+D-_:$[G)=7B;_TY<7FG,H5XXJDL,14SLD =P)97A;*AA;KHKB] M%AI+Y>(QP?L52!. [Y="Z&W#)*AO;),_4$L#!!0 ( $I+"%G9+L:"T , M .L+ 9 >&PO=V]R:W-H965TM M&UK BV3Y+T>/G?/'7/3G=(?38YHX7,AI)D%N;7E=1B:),>"F0M5HJ2=3.F"69KJ36A* MC2SU1H4(XR@:AP7C,IA/_=I*SZ>JLH)+7&DP55$PO5^@4+M9T \."P]\DUNW M$,ZG)=O@(]IWY4K3+&Q14EZ@-%Q)T)C-@IO^]:+O#?R)OSGNS,D8G"MKI3ZZ MR5TZ"R+'" 4FUD$P^FQQB4(X).+QJ0$-VCN=X>GX@/Z;=YZ<63.#2R7>\]3F ML^ R@!0S5@G[H':_8^/0R.$E2AC_"[OF;!1 4AFKBL:8&!1=<7>9:WS++Y5*L=:'>:T-S N^JMB1R73I5'JVF7DYV=+U51<$MAM@:8 M3&&II.5R@S+A:.!GN$E3[L+'!-S).@E<,%_?HF5WG*VYH+3Z,-;.@MW%@OS MS[D(U,##\\"N[JY-R1*9892 0SAF<\\7J>(]T->R>A9-KRI!),]V"Y6%&!)5A:3$%5&DIE?-Z MS9FE'X3'I@X'4;]E083BT8^@-$PNW#?S)[=,5'B8%*B3G%*+&^Q1N=%KE%)^ M@D/V(,\\Z0$SL*,B=U]G3U+QM"I*9^02/%&5M!1CREZWE%:6$KT'%/DMIR06 M>S(T2'\I5)21VH/\J?F&NQJX&ES!C=]W)0-,(TA%W[(41& ML+EV[[>4='#' M/:O QTR@J>.B:ER+KHB6.0T[%!^UBH_^B^+.,>?-URO?#?],^?^_M&=$.BH[ MCD>G@M(+YY<-*Y BQPR1,9:YK&9KM45ZG6U.&Z8DEYV>[O!#$^&GR=H$^L8G:-+2G+S4RSEY M =J7+>W+SN@NE;$N55D;X7,,:XRQQW MT'8>1_UH&F[/W'S5WGS5?3.]ID== M3:>PG4C?&*%^=.P>HI>2MD'^SLQ/^I[^=U"W 7DB[^7PN;SA2?]%C]K&=YFF M?H_J5JQ=;3O9F[I_.QZOV^![IND_@@&!&9E&%Q-ZC'7=6=83JTK?S:V5I=[0 M#W/JQE&[ [2?*64/$W=!V]_/_P502P,$% @ 2DL(61,A35!5! @1D M !D !X;"]W;W)K&ULQ9EM;]LV$,>_"J$50PLD MD:@G.YEM(+:TK<4"!,FZO2CV@K;.MA!)]$C:3O?I2U**;,F*D&0$\B:1J+L? M>;SSWSYJM*?L@:\!!'K,LX*/K;40FRO;YHLUY(1?T T4\LF2LIP(>C#9D!?<@OFYNF;RS:TJ2YE#PE!:(P7)L7>.K&(?*05O\E<*>'UTC%NQ-;10 DNRS<0=W?\.54"!XBUHQO5?M*]L'0LMMES0O'*6*\C3HOQ/ M'JN-.'*0G&X'MW)PVP[^,PY>Y>"]= :_C0[3)VO7$1$60R8G2/ MF+*6-'6A=U][R_U*"U4H]X+)IZGT$Y-[01 /D8@2)KQ3]+LZWV$/G[XA#Z@M$!_KNF6DR+A(UO(U:DY[$6UDFFY M$O>9E7CHAA9BS5%<))!T^$?]_F&/ORUWI=X:]VEKIFXO\,NVN$">(+N7WV@Z*+:!O-Y#/@75682_IM55H$A:9A,6&8(UTA'4ZPG>6DM!D$DW" M(I.PV!"LD<1!G<2!<2DIB<&Q /A.2TE.;3P+M]94"Y- M)M$D+#()BPW!&DG$SJ$3<8Q+2H4\_IQ?>BU)Z;#!N/4+)NHR&K1_G'08>:'? M+2KXJ /#_7'++CDM5KHX9;/^ $+=]6E*/_"U]6B4%AFEQ:9HS=2XA]2X[ZPL MU0),I=(D+3)*BTW1FJD\]*^XM[-ZF[IX'3HW" M('A&7@X]'^YO^GZ# AC)=(62)$^+E M&U/%VN,T:;6*"TR2HM-T9JI/#2VN+?E>IO&A"O1^GW!M3XE;XU/\=4,=XQ' MZOV"/L(^X,N7$S>$K=*"HPR6;M0$]5N7R0]02P,$% @ 2DL(67/S]Y*C!0 SBD !D !X M;"]W;W)K&ULM9I=;YM(%(;_RLA;K5II-P9L;">; M6$K,QV:5JE'3=B^JO9C B8T",RPSMA-I?_P.F&!C)E-;/;FQ 7.>%W@/\W$\ MYVM>/(H%@"1/6EX=NRVFYWPITX3!;4'$,LMH\7P%*5]?].S>RX'/R7PARP/] MZ7E.YW '\FM^6ZB]?D.)DPR82#@C!3Q<]"[ML]"QRH#JC&\)K,7.-BEOY9[S MQW+G.K[H6>4500J1+!%4?:U@!FE:DM1U_%M#>XUF&;B[_4(/JIM7-W-/!B99"\JP.5E>0)6SS M39_J![$3H#CZ *<.< X-&-0!@_V X2L!PSI@>*B"6P>XARJ,ZH#1H0'C.F!< MF;5YNI4U'I5T>E[P-2G*LQ6MW*C\K:*5(PDK4_%.%NK71,7)Z6=(J828Y+20 MST06E E:)8D@OY/+.$[*;9J2:[9)^S)]WGL@:9)^4&=\O?/(^W"LEB<]Z6ZM%*@']67<;6Y#.>5R[#)1\[D0A"?Q1!KXF?F^,&/XGUS_,@0 MWU>/M'FNSLMSO7*,P #N3X@S^8TXEN/H[L<<_M>2G9"!584/->'>X>$#W=/X M.?7@Y]1#<[@'D0JW=>$M*P9-B@\JWN '*7Y;I?B7;8J3[S?J5'(M(1/_Z')V MPQWJN64G<29R&L%%3_4" HH5]*:__F*/K#]TAF/"/$R8CPD+,&$A$JR5-L,F M;88F^E[+6$ $R8K>IZ!MW8RH8S-E QM5L'(HL9HZ[DB]AZO=#,!4] ]1## 5 MPZ[B9#1I!%N&N8UA[A&&T2@JEFHOXD(2_J ,7 %;@LX\(_98\S8P=^?&1NYX MSSM,0?\ P0!3,.P*VD/7UGLW:KP;&;V[C"*^9%(H\Y[+ETQGDY%PK$VC[DV, MW8FU9Q2FI'^09( I&78EQZ?C4[U5X\:JL=FJ-%]0$!9BP$ G62I))DR23-QIS33#3!A/F8<)\3%B "0N18*VT.6W2 MYA1OS&5$'9LIIYV6TAE9^]T!IJ)_B&* J1AV%4]W!%N&V=:V?F"]S:C+S#W6 MOYK6ZNHZ_J%*^H=(!JB2H4;2=E_U<*<&9!L]_ 8LY@7Q(.!*!( \%S\C. M.$YKN!%]M.%.Y^$/)EW#,37]@S0#5,U0H^F^_H)N*UBVL=)QT/3(C#C:L$%G M@JY>T(YAJ'6H@S0#5,U0H_F:6]O"D6VN'-WQI5R0&_H(Y),:Z][E!:BT$(O6SIEM[4VY;OQ'+;K>W,K'MT M/J 6U%!I 2HMQ**U\V%;H[/-1;IV<_+2^Y#_2 %6\."^&Q.Y^J$3SD45*K! M_XQG.67//^ZM4.MZJ#0/E>:CT@)46HA%:Z?7MKIGOU5YST:M[Z'2/%2:CTH+ M4&DA%JV=/MLJGVTN\X7 5*N3$M5A$1IG"4N$5*V0FJ02>,J!"?T$![7@ATKS M:MKN-,+=G[GXJ)*!1M(>[FN&6)KM13#;ZJ!CK@[.J%B4D]8,F+ZN9(X_UE14 MFE?36G]2=TQ%E0PTDG:G2!5B:6Y,[>^L'LN@F%<+ P6I*@Z;53;-T6;QX66U MY&[O^,P^\VS-<=\^"S9+"[?XS4K'C[28)TR0%!Z4E'4R5J/H8K-X<+,C>5ZM M7;OG4O*LVEP C:$H3U"_/W N7W9*@68)Y_1_4$L#!!0 ( $I+"%F!H2%E MT@, &,0 9 >&PO=V]R:W-H965TQ(T2B+T5.Q=3:2;F_LVVQWI$"BUNV)Q3>;!@OL(0A MW]IBSPE.-:C(;<]Q0KO &;5F$SWWS&<35LH\H^29(U$6!>9?'TC.CE/+M4X3 M'[/M3JH)>S;9XRU9$OFR?^8PLAN6-"L(%1FCB)/-U+IW[YYB9:\-?L_(49P] M([62%6.?U."G=&HY*B"2D[54#!A^#N21Y+DB@C ^UYQ6XU(!SY]/[(E>.ZQE MA05Y9/D?62IW4RNV4$HVN,SE1W;\D=3K&2F^-M+X:#8ID5%7B4G)XFP%.SGZ%8O^%"8&>"4?+ M'>8$W: EU'M:Y@2Q#7IDQ;Z46-<-#!^PR-8(TQ3-L[R4)&VCW\Z)Q%DNW@'/ MRW*.WKYYA]X@&PGU5J",HA>:2?$>)N'YMQTK!;")B2UA-2HF>UU'_E!%[EV) MW$=X@2&>QV[X M!\P![EZ%S_M[]PWP17_O)GCR_];^])^#OY#";ZK:UWS^%;X%YC2CV_.Z_/-^ M)22'D^\O4ZE5=(&93MT&=V*/UV1JP7$O"#\0:_;]=V[H_>4BR^9!DBR') MDB')G@8BNZB6H*F6H(M=GX$YG&*FPJB0H4:J6_TPNW$]+W G]N%<N[<,;L%O./;&84N2(=TFIM6.8K".G99V!DMG'/J>[U^1+VSD"SOE M.UW>0PD8]A:P,Z[7"FAP>T7 (=TFIM6:!318=@L8-0)&/?:?.K70'O32*IF$ MJ5CB\]WOW+9/KTY7K]6D(AM?>G3&+3V&=)D87;I12PMC*CRS#'$C0]QK'_V[ M$'$?(3J=O5:(N)<00[I,C"[_(80Q%6TA[+.>IB!\J]M5 :=2267U(=C,-AWQ MO6X$6_,/[MW"-_?]%7[#=_"VXP*E),-N')N(]B_O&IIJX%D>]U1 MK9B$_DP_[@A."5<&\'[#F#P-E(/F_PJS;U!+ P04 " !*2PA918EG9T8# M !:# &0 'AL+W=O!2_UW-L:4YW[OLZW(*@^DQ64^&8ME: &AVKC MZTH!+5R2X'X4!*DO*"N];.;FEBJ;R=IP5L)2$5T+0=672^!R-_="[VGBEFVV MQD[XV:RB&UB!^50M%8[\#J5@ DK-9$D4K.?>17B^" .;X"+^8K#3>\_$2KF3 M\MX.KHNY%UA&P"$W%H+BUP,L@'.+A#S^;4&];DV;N/_\A/ZG$X]B[JB&A>1_ ML\)LY][$(P6L:28C;A-@);9@Y65?4T&RFY(XH&XUH]L%YX[)1#2OM-JZ, MPK<,\TSV 2OEO=2:+$&1U98J(*_)"HNEJ#D0N287I6$%X[5UFZP@KQ4S##1Y M\YCSNH""K)449"%%51OJ=@:3KFP"OK/HUV4N!>SA_W8%AC*N?\>5M)W1,]^@ M%$O(SUO:EPWMZ!G:*;F1I=DBC1(Y]/-]M*#S(7KRX3(Z"OBN+L]('+PB41"- M!O@L_GMZ?(1.W&U+[/#B9_#^E^MOJ"I9N=G?R\_O$9A<&Q#ZGR&7&Q:C81;V M"CG7%]?!&FP1]#%IT(K&?8J#-L= P]6TH#Z!GE!*M-H!]- M91'H&5:T=5EB77);]14ZY2*'S&E63-R*]CI\R,)X&HRGZ63F/^P+'PA,TF@Z MB<9=8$]4THE*CHI:&9G?DX^5W6!-/M^ N ,UN(]'<7YT'T\$UI.<=I+37Z+P MTU,:=B*PGF'CSK#Q3R_\\7?U',43+.CXH.Z_CTN3($GCR7#93SI)DZ.2;D$; MQ7++MSD!%SNJBN,'X"CBC^[GB=^.DO<0"FIS3L1& ]P\+@6PL3_/0C MT"[9N]/#) K3<7)P" 8BIV$T"B?3@U/@[W5I M3&-:\:.=>E:1J5;K9KD"]< M6W@P?VD;9]?]?8-INNX;JC8,?RHXK!$R.!LC*]4TLLW R,KU@G?28&?I'K?8 M_(.R ?A^+='+=F 7Z/Y.9%\!4$L#!!0 ( $I+"%G[@>>?_0, %88 9 M >&PO=V]R:W-H965T"_J6"02D87"IP2X&;CVXQ M'/E8SJFDDQ%G!\)UM*+I@]P0N5H-891JZ[Y*KJY&2B[45 MY&8:AI'V%8W)8UH\'*IU2V[F(&D4BUORB7QYG9.;#[?D XE2\GG+,D'34(Q, MJ;JDP690IG\HTMMGTD]W_(Y8SD=B6W:W03YKE_^>I7?$L<[*Y^WR)ZJR.YVS M\D6[? Y!)7<:Y-[EG6^2+R_O?)/4B^_J&0Y%%"(OYN[&C 8P-5<,%\#T8DU]_Z?2MWYI\A0F;8\(6F# /$[;$A/E(L)I7 MGU /6IP&N;W>3T'>:5#'<7\*6C8$==QN/BVCL,3 M_4?]_K/\+0=$+3!A'B9LB0GSD6 UU_4JU_7^ MYS=5#].KF+ Y)FR!"?,P84M,F(\$JWFU7WFUWUHA/W,: ID& :!Q_@;S.$M(O9 V6;)_4KX=R[6L>I&?M7;F6J]APA:8, \3ML2$^4BP MFM<&E=<&K5[S:,3)GL89$+8F7'_LI:KTJ:_#:*>+7Y.M"F*O-K^P3VS5FO=: M6V'"%I@P#Q.VQ(3Y2+":K=S*5B[F9-L]<90[/#%4:\9K#84)6V#"/$S8$A/F M(\%JAAI6AAJV&FI&Q9;LB@E9DX.&IU]/UHF#6E-'%*G;1D&R7KXFNF%13IOQP"VJJQ76 MNKYF3+XW]#)K]5?"Y%]02P,$% @ 2DL(60;:2;HH P :!( T !X M;"]S='EL97,N>&ULW5AM;]HP$/XK4;I.K30U0$9*5D#:D"I-VJ9*[8=]JPQQ M@B7'SAS3P7[]?'8(+_4AU@];61"-?8_ON<=WESIB6.L5I_=S2G6P++FH1^%< MZ^I#%-6S.2U)?24K*@R22U42;::JB.I*49+5X%3RJ-?I)%%)F C'0[$H;TM= M!S.Y$'H4]EM3X&Z?LU'83=Z'@:.;R(R.PL>+MS\64M^\"=S][-W96>?Q\F;? M?F&!RS#RDO:/(+WJF MEMBA&GQQ%?X ;([X^3O7BT!D,+REI\$3X*)P0SJ:*@5=.2L97SMP#PTQRJ0)M6L8$ZH*E M_N7@KIM!-S4\)1-2V=@N@OL[;9;O >L9"&2M>_Y#O"L#8NS@[J2J^^LA9(4KJ-G]TP/&0 MK/V"N53LEXD&K3(S!JK"X(DJS6;;EI^*5 ]TJ=?MM,QQS;T3U/QW\UQ0017A MVZ)-[[_F++]8<7S]KR3;_RK[@KT:F_/SM8OLGX+(Y!1$GD1/#EZER*@Y&[<. MX)WCM[4&\)HS"K_!ZQ+?! VF"\8U$\ULSK*,BF>GL*'79&I>HW?XS?J,YF3! M]4,+CL+-^"O-V*),VU5WD(AFU6;\!;;73=IW+!.+B8PN:39IIJJ8VF%@!B9J M-/E_G;@2=&A(E@6FD7)TZ(=I7\=Q_:0T^FO8R*T>EOH^7%H M5 J.W&,EC'%BM/XU@LD/['X 4$L#!!0 ( $I+"%D6E8R,)P4 "LI / M >&PO=V]R:V)O;VLN>&ULQ9I;;QHY%(#_BL535]HL82ZTC4HEFLLN4K:- M0M37RLP8L#)CL[:')/WU/9X)S9E CO;E)$^ Y\*'+^<[/LRG.^MN%];>BONZ M,GXR6(>P.1D.?;%6M?1_V8TR<&1I72T#?'2KH=\X)4N_5BK4U3 Y/AX/:ZG- MX/.GW;VNW!!_L$$505L#C;'ANU9W_NEX_"BVVNN%KG1XF S:]Y4:B%H;7>N? MJIP,C@?"K^W=/];IG]8$6W])3!N%9SQ.$=*4XMP$Z"0Q M,]VMX-SX2^&K9V7WJP/@HCYT)QH.N%G9@O-!GEI3*N-5*>"=MY4N@:,47V0E M3:$$@DP(R.0-(7\D"#(E(-,W@9Q''+@4068$9/:&D+V>S G(_"TA4P0Y)B#' MO)!7\D%LO;A2KKT\+I8S[8O*^L8IA/B>0'S/BWBF?.'T)K8+NQ2+QFNCO$=P M'PBX#[QP\Z:NI7N(8%ZOC(;+9(R516$;B)4(\B,!^9$7\OR_)D;M6H6U+84V M6^5#O 3'[F,J>!_S\LV,UZ5RXL;)$C0GILY)LXKA)N!A'I&"83;,].9? ;G$ MRLD:(U$Z&3'[9-I-,B^<*I3>2OCV/X51O6&E3#)B5LD,)IH)D#,IO\=%R6/$ M;(\KIS92EVU"8\,:)E[1.->F.-[W,2E]C)C]<:FD5[WY3WEBQ"T*!U<[B"*Q MUQ0$E$V\8&]<*4^,F$4Q@\S&5MB3$I8XR8E7&F%KTNH\0P M8C8#A!#70%)R?K^)J8IO.^M;NR9.84W@O)D21,(NB,+62MS(^]Z"2"@A).Q; MCKK6K4:[7H,D+X"\E"ET'Y+<<3 K8AYL<7OT1799:!T'^?FN+:$4D3 KXCHV M MN5C*$%_ ]\[6:]UX.4+!)F67R%^UY:WZ;(8KZ6O:PXH?R0,/MAWBP\!.+H MK?/MLU0IH521,*N"S(E[N[.$TD7"K(N7TB?Q[D:V)$^8E"X29ET\SZ(>\?P? M&)!R2,+L$#*=ZIDS [ITJE#O9=2&DF9-4+D59$58U(B29E%0N96_4$F MBU?,/B'SF3XF)96462J=EA=[6MX//2EEF)39,/ON.[A\*->DK^>:.7)-%]M[ M1;:4)4LHU*;-K4)'CD2R>(JO'@C_&I(R3\N]:#IO[ M2,SA]KA&31DG8S;.;\SKWYAB6E7VKBVS7F!,RD 9=V7KY=Y\-C MY4'=8)<-]"JL?HQ)&2AC-A"=#>& E)%_H+QE#>Q'AC$I V6O4@.+0_T4Y]NV MSO 8D[)0QFRA0Y@736A F-=PB4&*_TG+)0SEX[HS#Q2L\I"^7,%J(Q8E(7&K86&NX?S2K741I5?X2L\M!>R M*JX@PL%+]PQ!EL<_ 9=-59U"VS=S:66Y>]9O]YSBYU]02P,$% @ 2DL( M67=+<84& @ \20 !H !X;"]?;7/2Y;)-X^V,YOGI=N;B]7/(_S.QWVSVZ_RS7_\^YM/TC\'I M3S^^EUW.4[-X[<9MGE9-^CA<3Y=T.7*S>'E;->/+FS2I=I!"D-8/,@BR M^D$.05X_*" HZ@>U$-36#[J'H/OZ00\0]% _Z!&"'NL'R1)E7!(DS; FT%J0 M:R'P6A!L(1!;D&PA,%L0;2%06Y!M(7!;$&XAD%N0;B&P6Q!O(=!;46\ET%M1 M;R706VBOJK01Z*^JM!'HKZJT$>BOJK01Z*^JM!'H; MZFT$>AOJ;01Z&^IM!'K;;+.$0&]#O8U ;T.]C4!O0[V-0&]#O8U ;T.]C4!O M0[V-0&]'O9U ;T>]G4!O1[V=0&]'O9U ;Y]M=A/H[:BW$^CMJ+<3Z.VHMQ/H M[:BW$^CMJ+<3Z!VH=Q#H':AW$.@=J'<0Z!VH=Q#H':AW$.@=LY^5!'H'ZAT$ M>@?J'01Z!^H=!'H'ZAT$>K>H=TN@=XMZMP1ZMZAW^YUZE^GSD,NUYVN-S_]. MJJ?SO?GZ^,ORZ^3LO5QP3K<5Y?DO4$L#!!0 ( $I+"%G_)Z=UXP$ &PD M 3 6T-O;G1E;G1?5'EP97-=+GAM;,W:74_",!0&X+]"=FM8Z=?\B'"C MWJH7_H&Z'61A6YNV(/Q[NP$F&B4:3'QO6*#M><]ZDN>*ZZ>MHS#:M$T7IMDB M1G?%6"@7U)J06T==6IE;WYJ8OOH7YDRY-"_$Q&12L-)VD;HXCGV-;'9]2W.S M:N+H;I-^#K7MIIFG)F2CF]W&/FN:&>>:NC0QK;-U5WU*&>\3\G1RV!,6M0MG M:4/&ODSH5[X/V)][6)/W=46C1^/CO6G3+K9I6(C;AD)^O,07/=KYO"ZILN6J M34?RX#R9*BR(8MODNZ)GQY-CNF':??*3\X00V/$Z_XX\S?J__RSX$2!\2 MI \%TH<&Z:, Z>,&UL4$L! A0#% @ 2DL( M6<*23Y?N *P( !$ ( !KP &1O8U!R;W!S+V-O&UL4$L! A0#% @ 2DL(69E&PO=V]R:W-H965T&UL4$L! A0#% @ 2DL(6?3%B4>1!@ EAL !@ ("! M30X 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ M2DL(6=60B;MU# M'L !@ ("!EB 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 2DL( M64)]&'7=! &@L !D ("!@7D 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 2DL(67E&UL4$L! A0#% @ 2DL(6:RK/))D P $0@ !D M ("![Y, 'AL+W=O&PO=V]R:W-H965T M:: !X;"]W;W)K&UL4$L! A0# M% @ 2DL(67E?'D8V P QP< !D ("!QI\ 'AL+W=O M&PO=V]R:W-H965T&UL4$L! A0#% @ 2DL(6>Z% M'0N-!@ &! !D ("!2J\ 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 2DL(610I,MWS,P 9Z< !D M ("!FKT 'AL+W=O&PO M=V]R:W-H965T&UL4$L! A0#% @ 2DL(64BX)N'B @ 3@8 !D ("! ME_@ 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% M @ 2DL(6>>V6L]- P I0< !D ("!MP(! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 2DL(60"O8YM8! >QH !D M ("!=2,! 'AL+W=O&PO=V]R M:W-H965T&UL M4$L! A0#% @ 2DL(67@=P\0[! HAH !D ("!TR\! M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ M2DL(665C.9HR @ ;P0 !D ("!6#H! 'AL+W=O&PO=V]R:W-H965T@, %8, 9 " @7%! 0!X;"]W M;W)K&UL4$L! A0#% @ 2DL(63[B6'3E P M"A0 !D ("!(D4! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 2DL(67ZWV1RJ @ ] < !D M ("!)5 ! 'AL+W=O&PO=V]R:W-H M965T&UL4$L! M A0#% @ 2DL(6;__"4[S P G \ !D ("!P%@! 'AL M+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 2DL( M6=DNQH+0 P ZPL !D ("!&V4! 'AL+W=O&PO=V]R:W-H965T2HP4 ,XI 9 " @:YM 0!X;"]W;W)K M&UL4$L! A0#% @ 2DL(68&A(672 P 8Q M !D ("!B',! 'AL+W=O&PO=V]R:W-H965T>? M_0, %88 9 " @0Y[ 0!X;"]W;W)K&UL4$L! A0#% @ 2DL(60;:2;HH P :!( T M ( !0G\! 'AL+W-T>6QE&PO=V]R:V)O;VLN M>&UL4$L! A0#% @ 2DL(67=+<84& @ \20 !H ( ! MTH@! 'AL+U]R96QS+W=O
XML 72 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 73 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 75 FilingSummary.xml IDEA: XBRL DOCUMENT 3.24.2.u1 html 139 289 1 false 33 0 false 5 false false R1.htm 100000 - Document - Document and Entity Information Sheet http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation Document and Entity Information Cover 1 false false R2.htm 100010 - Statement - Condensed Consolidated Balance Sheets (Unaudited) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited Condensed Consolidated Balance Sheets (Unaudited) Statements 2 false false R3.htm 100030 - Statement - Condensed Consolidated Balance Sheets (Parenthetical) (Unaudited) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParentheticalUnaudited Condensed Consolidated Balance Sheets (Parenthetical) (Unaudited) Statements 3 false false R4.htm 100040 - Statement - Condensed Consolidated Statements of Comprehensive Loss (Unaudited) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited Condensed Consolidated Statements of Comprehensive Loss (Unaudited) Statements 4 false false R5.htm 100050 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Deficit) (Unaudited) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited Condensed Consolidated Statements of Stockholders' Equity (Deficit) (Unaudited) Statements 5 false false R6.htm 100060 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited Condensed Consolidated Statements of Cash Flows (Unaudited) Statements 6 false false R7.htm 995410 - Disclosure - Pay vs Performance Disclosure Sheet http://xbrl.sec.gov/ecd/role/PvpDisclosure Pay vs Performance Disclosure Notes 7 false false R8.htm 995420 - Disclosure - Description of business Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDescriptionOfBusiness1 Description of business Notes 8 false false R9.htm 995430 - Disclosure - Summary of significant accounting policies Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPolicies1 Summary of significant accounting policies Notes 9 false false R10.htm 995440 - Disclosure - Equity method investment Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureEquityMethodInvestment Equity method investment Notes 10 false false R11.htm 995445 - Disclosure - Insider Trading Arrangements Sheet http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements Insider Trading Arrangements Notes 11 false false R12.htm 995450 - Disclosure - ATM Program Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAtmProgram ATM Program Notes 12 false false R13.htm 995460 - Disclosure - Accounts receivable, net Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNet Accounts receivable, net Notes 13 false false R14.htm 995470 - Disclosure - Inventories, net Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureInventoriesNet Inventories, net Notes 14 false false R15.htm 995490 - Disclosure - Prepaid and other current assets Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssets Prepaid and other current assets Notes 15 false false R16.htm 995500 - Disclosure - Leases Sheet http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureLeases Leases Notes 16 false false R17.htm 995510 - Disclosure - Property and equipment, net Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNet Property and equipment, net Notes 17 false false R18.htm 995520 - Disclosure - Intangible assets, net and goodwill Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwill1 Intangible assets, net and goodwill Notes 18 false false R19.htm 995530 - Disclosure - Debt Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebt1 Debt Notes 19 false false R20.htm 995540 - Disclosure - Accrued Expenses and Other Current Liabilities Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilities Accrued Expenses and Other Current Liabilities Notes 20 false false R21.htm 995560 - Disclosure - Income Taxes Sheet http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxes Income Taxes Notes 21 false false R22.htm 995570 - Disclosure - Commitments and Contingencies Sheet http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingencies Commitments and Contingencies Notes 22 false false R23.htm 995580 - Disclosure - Stock-Based Compensation Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensation Stock-Based Compensation Notes 23 false false R24.htm 995590 - Disclosure - Related Party Transactions Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactions1 Related Party Transactions Notes 24 false false R25.htm 995600 - Disclosure - Net Loss Per Share Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShare1 Net Loss Per Share Notes 25 false false R26.htm 995610 - Disclosure - Subsequent Events Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEvents Subsequent Events Notes 26 false false R27.htm 995620 - Disclosure - Summary of significant accounting policies (Policies) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies Summary of significant accounting policies (Policies) Policies 27 false false R28.htm 995660 - Disclosure - Accounts receivable, net (Tables) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetTables Accounts receivable, net (Tables) Tables http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNet 28 false false R29.htm 995670 - Disclosure - Inventories, net (Tables) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureInventoriesNetTables Inventories, net (Tables) Tables http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureInventoriesNet 29 false false R30.htm 995680 - Disclosure - Prepaid and other current assets (Tables) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsTables Prepaid and other current assets (Tables) Tables http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssets 30 false false R31.htm 995690 - Disclosure - Leases (Tables) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureLeasesTables Leases (Tables) Tables http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureLeases 31 false false R32.htm 995700 - Disclosure - Property and equipment, net (Tables) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNetTables Property and equipment, net (Tables) Tables http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNet 32 false false R33.htm 995710 - Disclosure - Intangible assets, net and goodwill (Tables) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillTables Intangible assets, net and goodwill (Tables) Tables http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwill1 33 false false R34.htm 995720 - Disclosure - Accrued Expenses and Other Current Liabilities (Tables) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesTables Accrued Expenses and Other Current Liabilities (Tables) Tables http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilities 34 false false R35.htm 995740 - Disclosure - Stock-based Compensation (Tables) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationTables Stock-based Compensation (Tables) Tables 35 false false R36.htm 995750 - Disclosure - Net Loss Per Share (Tables) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShareTables Net Loss Per Share (Tables) Tables http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShare1 36 false false R37.htm 995770 - Disclosure - Summary of Significant Accounting Policies - Additional Information (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails Summary of Significant Accounting Policies - Additional Information (Details) Details 37 false false R38.htm 995780 - Disclosure - Equity method investment - Additional Information (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails Equity method investment - Additional Information (Details) Details 38 false false R39.htm 995790 - Disclosure - ATM Program - Additional Information (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails ATM Program - Additional Information (Details) Details 39 false false R40.htm 995800 - Disclosure - Accounts receivable, net - Schedule of Accounts Receivable, Net (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails Accounts receivable, net - Schedule of Accounts Receivable, Net (Details) Details 40 false false R41.htm 995810 - Disclosure - Accounts Receivable Allowance For Credit Loss - Details (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableAllowanceForCreditLossDetailsDetails Accounts Receivable Allowance For Credit Loss - Details (Details) Details 41 false false R42.htm 995820 - Disclosure - Accounts receivable, net - Additional Information (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails Accounts receivable, net - Additional Information (Details) Details 42 false false R43.htm 995840 - Disclosure - Inventories, net - Schedule of inventories (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureInventoriesNetScheduleOfInventoriesDetails Inventories, net - Schedule of inventories (Details) Details 43 false false R44.htm 995850 - Disclosure - Prepaid and other current assets - Schedule of Prepaid and other current assets (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails Prepaid and other current assets - Schedule of Prepaid and other current assets (Details) Details 44 false false R45.htm 995860 - Disclosure - Prepaid and other current assets (Additional Information) (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsAdditionalInformationDetails Prepaid and other current assets (Additional Information) (Details) Details http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsTables 45 false false R46.htm 995870 - Disclosure - Leases - Summary of Lease Expense (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails Leases - Summary of Lease Expense (Details) Details 46 false false R47.htm 995880 - Disclosure - Leases - Summary of Future Remaining Lease Payments Obligations (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails Leases - Summary of Future Remaining Lease Payments Obligations (Details) Details 47 false false R48.htm 995890 - Disclosure - Property and equipment, net - Schedule of property and equipment (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails Property and equipment, net - Schedule of property and equipment (Details) Details 48 false false R49.htm 995900 - Disclosure - Property and equipment, net - Additional Information (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNetAdditionalInformationDetails Property and equipment, net - Additional Information (Details) Details 49 false false R50.htm 995910 - Disclosure - Intangible assets, net and goodwill - Summary of intangible assets (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails Intangible assets, net and goodwill - Summary of intangible assets (Details) Details 50 false false R51.htm 995920 - Disclosure - Intangible assets, net and goodwill - Additional Information (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails Intangible assets, net and goodwill - Additional Information (Details) Details 51 false false R52.htm 995930 - Disclosure - Intangible assets, net and goodwill - Summary of goodwill activity (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfGoodwillActivityDetails Intangible assets, net and goodwill - Summary of goodwill activity (Details) Details 52 false false R53.htm 995940 - Disclosure - Debt - Additional Information (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebtAdditionalInformationDetails Debt - Additional Information (Details) Details 53 false false R54.htm 995950 - Disclosure - Accrued expenses and other current liabilities - Schedule of Accrued Expenses and Other Current Liabilities (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails Accrued expenses and other current liabilities - Schedule of Accrued Expenses and Other Current Liabilities (Details) Details 54 false false R55.htm 995970 - Disclosure - Accrued expenses and other current liabilities - Schedule of warranty accruals (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfWarrantyAccrualsDetails Accrued expenses and other current liabilities - Schedule of warranty accruals (Details) Details 55 false false R56.htm 995980 - Disclosure - Income Taxes - Additional Information (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails Income Taxes - Additional Information (Details) Details 56 false false R57.htm 995990 - Disclosure - Commitments and Contingencies - Additional Information (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails Commitments and Contingencies - Additional Information (Details) Details 57 false false R58.htm 996020 - Disclosure - Stock-Based Compensation - Stock compensation expense (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationStockCompensationExpenseDetails Stock-Based Compensation - Stock compensation expense (Details) Details 58 false false R59.htm 996030 - Disclosure - Related party transactions - Additional Information (Detail) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail Related party transactions - Additional Information (Detail) Details 59 false false R60.htm 996050 - Disclosure - Net Loss Per Share - Schedule of Computation of Basic and Diluted Loss Per Share (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShareScheduleOfComputationOfBasicAndDilutedLossPerShareDetails Net Loss Per Share - Schedule of Computation of Basic and Diluted Loss Per Share (Details) Details 60 false false R61.htm 996060 - Disclosure - Net Loss Per Share - Schedule of Antidilutive Securities Excluded from Computation of Diluted Net Income Per Share (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShareScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfDilutedNetIncomePerShareDetails Net Loss Per Share - Schedule of Antidilutive Securities Excluded from Computation of Diluted Net Income Per Share (Details) Details 61 false false R62.htm 996070 - Disclosure - Subsequent Events (Additional Information) (Details) Sheet http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails Subsequent Events (Additional Information) (Details) Details http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEvents 62 false false All Reports Book All Reports ftci-20240630.htm ftci-20240630.xsd img146221020_0.jpg http://fasb.org/us-gaap/2024 http://xbrl.sec.gov/dei/2024 http://xbrl.sec.gov/ecd/2024 false false JSON 78 MetaLinks.json IDEA: XBRL DOCUMENT { "version": "2.2", "instance": { "ftci-20240630.htm": { "nsprefix": "ftci", "nsuri": "http://www.ftcsolar.com/20240630", "dts": { "inline": { "local": [ "ftci-20240630.htm" ] }, "schema": { "local": [ "ftci-20240630.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/reference-2009-12-16.xsd", "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd", "https://www.xbrl.org/2023/calculation-1.1.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/2024/elts/srt-2024.xsd", "https://xbrl.fasb.org/srt/2024/elts/srt-roles-2024.xsd", "https://xbrl.fasb.org/srt/2024/elts/srt-types-2024.xsd", "https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd", "https://xbrl.fasb.org/us-gaap/2024/elts/us-roles-2024.xsd", "https://xbrl.fasb.org/us-gaap/2024/elts/us-types-2024.xsd", "https://xbrl.sec.gov/country/2024/country-2024.xsd", "https://xbrl.sec.gov/dei/2024/dei-2024.xsd", "https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd", "https://xbrl.sec.gov/ecd/2024/ecd-sub-2024.xsd", "https://xbrl.sec.gov/stpr/2024/stpr-2024.xsd" ] } }, "keyStandard": 237, "keyCustom": 52, "axisStandard": 12, "axisCustom": 1, "memberStandard": 22, "memberCustom": 11, "hidden": { "total": 14, "http://fasb.org/us-gaap/2024": 7, "http://xbrl.sec.gov/dei/2024": 4, "http://www.ftcsolar.com/20240630": 2, "http://xbrl.sec.gov/ecd/2024": 1 }, "contextCount": 139, "entityCount": 1, "segmentCount": 33, "elementCount": 627, "unitCount": 5, "baseTaxonomies": { "http://fasb.org/us-gaap/2024": 649, "http://xbrl.sec.gov/dei/2024": 31, "http://xbrl.sec.gov/ecd/2024": 12 }, "report": { "R1": { "role": "http://www.ftcsolar.com/20240630/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_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "dei:EntityRegistrantName", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "p", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "dei:EntityRegistrantName", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "p", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R2": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited", "longName": "100010 - Statement - Condensed Consolidated Balance Sheets (Unaudited)", "shortName": "Condensed Consolidated Balance Sheets (Unaudited)", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "2", "firstAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R3": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParentheticalUnaudited", "longName": "100030 - Statement - Condensed Consolidated Balance Sheets (Parenthetical) (Unaudited)", "shortName": "Condensed Consolidated Balance Sheets (Parenthetical) (Unaudited)", "isDefault": "false", "groupType": "statement", "subGroupType": "parenthetical", "menuCat": "Statements", "order": "3", "firstAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "us-gaap:PreferredStockParOrStatedValuePerShare", "unitRef": "U_USDollarShare", "xsiNil": "false", "lang": null, "decimals": "4", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "us-gaap:PreferredStockParOrStatedValuePerShare", "unitRef": "U_USDollarShare", "xsiNil": "false", "lang": null, "decimals": "4", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R4": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited", "longName": "100040 - Statement - Condensed Consolidated Statements of Comprehensive Loss (Unaudited)", "shortName": "Condensed Consolidated Statements of Comprehensive Loss (Unaudited)", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "4", "firstAnchor": { "contextRef": "C_31bd1544-3f13-4b65-a4b0-d46dd9ebf9f7", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_31bd1544-3f13-4b65-a4b0-d46dd9ebf9f7", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R5": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited", "longName": "100050 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Deficit) (Unaudited)", "shortName": "Condensed Consolidated Statements of Stockholders' Equity (Deficit) (Unaudited)", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "5", "firstAnchor": { "contextRef": "C_1d88607d-66b9-403f-a250-5c20f97f99bc", "name": "us-gaap:StockholdersEquity", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true }, "uniqueAnchor": { "contextRef": "C_b4585144-a90d-4202-89db-05e9a1ae5342", "name": "us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardGross", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "unique": true } }, "R6": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited", "longName": "100060 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited)", "shortName": "Condensed Consolidated Statements of Cash Flows (Unaudited)", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "6", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:NetIncomeLoss", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:ShareBasedCompensation", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "unique": true } }, "R7": { "role": "http://xbrl.sec.gov/ecd/role/PvpDisclosure", "longName": "995410 - Disclosure - Pay vs Performance Disclosure", "shortName": "Pay vs Performance Disclosure", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "7", "firstAnchor": { "contextRef": "C_31bd1544-3f13-4b65-a4b0-d46dd9ebf9f7", "name": "us-gaap:NetIncomeLoss", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true }, "uniqueAnchor": null }, "R8": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDescriptionOfBusiness1", "longName": "995420 - Disclosure - Description of business", "shortName": "Description of business", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "8", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R9": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPolicies1", "longName": "995430 - Disclosure - Summary of significant accounting policies", "shortName": "Summary of significant accounting policies", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "9", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:SignificantAccountingPoliciesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:SignificantAccountingPoliciesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R10": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureEquityMethodInvestment", "longName": "995440 - Disclosure - Equity method investment", "shortName": "Equity method investment", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "10", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:EquityMethodInvestmentsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:EquityMethodInvestmentsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R11": { "role": "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "longName": "995445 - Disclosure - Insider Trading Arrangements", "shortName": "Insider Trading Arrangements", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "11", "firstAnchor": { "contextRef": "C_31bd1544-3f13-4b65-a4b0-d46dd9ebf9f7", "name": "ecd:MtrlTermsOfTrdArrTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_31bd1544-3f13-4b65-a4b0-d46dd9ebf9f7", "name": "ecd:MtrlTermsOfTrdArrTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R12": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAtmProgram", "longName": "995450 - Disclosure - ATM Program", "shortName": "ATM Program", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "12", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "ftci:AtmProgram", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "ftci:AtmProgram", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R13": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNet", "longName": "995460 - Disclosure - Accounts receivable, net", "shortName": "Accounts receivable, net", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "13", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:AccountsAndNontradeReceivableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:AccountsAndNontradeReceivableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R14": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureInventoriesNet", "longName": "995470 - Disclosure - Inventories, net", "shortName": "Inventories, net", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "14", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:InventoryDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:InventoryDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R15": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssets", "longName": "995490 - Disclosure - Prepaid and other current assets", "shortName": "Prepaid and other current assets", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "15", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "ftci:PrepaidExpensesAndOtherCurrentAssetsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "ftci:PrepaidExpensesAndOtherCurrentAssetsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R16": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureLeases", "longName": "995500 - Disclosure - Leases", "shortName": "Leases", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "16", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:LesseeOperatingLeasesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:LesseeOperatingLeasesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R17": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNet", "longName": "995510 - Disclosure - Property and equipment, net", "shortName": "Property and equipment, net", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "17", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R18": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwill1", "longName": "995520 - Disclosure - Intangible assets, net and goodwill", "shortName": "Intangible assets, net and goodwill", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "18", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R19": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebt1", "longName": "995530 - Disclosure - Debt", "shortName": "Debt", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "19", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:DebtDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:DebtDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R20": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilities", "longName": "995540 - Disclosure - Accrued Expenses and Other Current Liabilities", "shortName": "Accrued Expenses and Other Current Liabilities", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "20", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "ftci:AccruedExpensesAndOtherCurrentLiabilitiesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "ftci:AccruedExpensesAndOtherCurrentLiabilitiesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R21": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxes", "longName": "995560 - Disclosure - Income Taxes", "shortName": "Income Taxes", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "21", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R22": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingencies", "longName": "995570 - Disclosure - Commitments and Contingencies", "shortName": "Commitments and Contingencies", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "22", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R23": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensation", "longName": "995580 - Disclosure - Stock-Based Compensation", "shortName": "Stock-Based Compensation", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "23", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R24": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactions1", "longName": "995590 - Disclosure - Related Party Transactions", "shortName": "Related Party Transactions", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "24", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R25": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShare1", "longName": "995600 - Disclosure - Net Loss Per Share", "shortName": "Net Loss Per Share", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "25", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:EarningsPerShareTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:EarningsPerShareTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R26": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEvents", "longName": "995610 - Disclosure - Subsequent Events", "shortName": "Subsequent Events", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "26", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:SubsequentEventsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:SubsequentEventsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R27": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies", "longName": "995620 - Disclosure - Summary of significant accounting policies (Policies)", "shortName": "Summary of significant accounting policies (Policies)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "policies", "menuCat": "Policies", "order": "27", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:SignificantAccountingPoliciesTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:SignificantAccountingPoliciesTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R28": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetTables", "longName": "995660 - Disclosure - Accounts receivable, net (Tables)", "shortName": "Accounts receivable, net (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "28", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:AccountsAndNontradeReceivableTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:AccountsAndNontradeReceivableTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R29": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureInventoriesNetTables", "longName": "995670 - Disclosure - Inventories, net (Tables)", "shortName": "Inventories, net (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "29", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:InventoryDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:InventoryDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R30": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsTables", "longName": "995680 - Disclosure - Prepaid and other current assets (Tables)", "shortName": "Prepaid and other current assets (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "30", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "ftci:PrepaidExpensesAndOtherCurrentAssetsTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "ftci:PrepaidExpensesAndOtherCurrentAssetsTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R31": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureLeasesTables", "longName": "995690 - Disclosure - Leases (Tables)", "shortName": "Leases (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "31", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:LeaseCostTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:LeaseCostTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R32": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNetTables", "longName": "995700 - Disclosure - Property and equipment, net (Tables)", "shortName": "Property and equipment, net (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "32", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R33": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillTables", "longName": "995710 - Disclosure - Intangible assets, net and goodwill (Tables)", "shortName": "Intangible assets, net and goodwill (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "33", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R34": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesTables", "longName": "995720 - Disclosure - Accrued Expenses and Other Current Liabilities (Tables)", "shortName": "Accrued Expenses and Other Current Liabilities (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "34", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "ftci:AccruedExpensesAndOtherCurrentLiabilitiesTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "ftci:AccruedExpensesAndOtherCurrentLiabilitiesDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "ftci:AccruedExpensesAndOtherCurrentLiabilitiesTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "ftci:AccruedExpensesAndOtherCurrentLiabilitiesDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R35": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationTables", "longName": "995740 - Disclosure - Stock-based Compensation (Tables)", "shortName": "Stock-based Compensation (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "35", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R36": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShareTables", "longName": "995750 - Disclosure - Net Loss Per Share (Tables)", "shortName": "Net Loss Per Share (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "36", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:EarningsPerShareTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:EarningsPerShareTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R37": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "longName": "995770 - Disclosure - Summary of Significant Accounting Policies - Additional Information (Details)", "shortName": "Summary of Significant Accounting Policies - Additional Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "37", "firstAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "us-gaap:RetainedEarningsAccumulatedDeficit", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true }, "uniqueAnchor": { "contextRef": "C_d49fb974-452b-4157-8da6-6c7804feafba", "name": "ftci:ConsecutiveBusinessDays", "unitRef": "U_Days", "xsiNil": "false", "lang": null, "decimals": "0", "ancestors": [ "span", "p", "ftci:AbilityToContinueAsAGoingConcern", "div", "us-gaap:SignificantAccountingPoliciesTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "unique": true } }, "R38": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails", "longName": "995780 - Disclosure - Equity method investment - Additional Information (Details)", "shortName": "Equity method investment - Additional Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "38", "firstAnchor": { "contextRef": "C_31bd1544-3f13-4b65-a4b0-d46dd9ebf9f7", "name": "us-gaap:IncomeLossFromEquityMethodInvestmentsNetOfDividendsOrDistributions", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "ftci:PlacingPurchaseOrders", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "p", "us-gaap:EquityMethodInvestmentsDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "unique": true } }, "R39": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails", "longName": "995790 - Disclosure - ATM Program - Additional Information (Details)", "shortName": "ATM Program - Additional Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "39", "firstAnchor": { "contextRef": "C_ab81be3e-36a1-4cec-97f6-eb0ad3c1b85b", "name": "us-gaap:StockIssuedDuringPeriodValueNewIssues", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true }, "uniqueAnchor": { "contextRef": "C_2260d0b6-e381-4cf1-98ec-10bd5c28c24c", "name": "us-gaap:StockIssuedDuringPeriodSharesNewIssues", "unitRef": "U_shares", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "span", "p", "ftci:AtmProgram", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "unique": true } }, "R40": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails", "longName": "995800 - Disclosure - Accounts receivable, net - Schedule of Accounts Receivable, Net (Details)", "shortName": "Accounts receivable, net - Schedule of Accounts Receivable, Net (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "40", "firstAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "ftci:TradeAccountsReceivable", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "div", "us-gaap:AccountsAndNontradeReceivableTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "ftci:TradeAccountsReceivable", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "div", "us-gaap:AccountsAndNontradeReceivableTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R41": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableAllowanceForCreditLossDetailsDetails", "longName": "995810 - Disclosure - Accounts Receivable Allowance For Credit Loss - Details (Details)", "shortName": "Accounts Receivable Allowance For Credit Loss - Details (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "41", "firstAnchor": { "contextRef": "C_a8748d1d-bd76-4cf0-a9c2-dd20e9c6ec36", "name": "us-gaap:AccountsAndFinancingReceivableAllowanceForCreditLoss", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock", "div", "us-gaap:AccountsAndNontradeReceivableTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true }, "uniqueAnchor": { "contextRef": "C_e7dd838e-3201-4975-aa6f-0fdcd5085522", "name": "ftci:ImpactOfAdoption", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock", "div", "us-gaap:AccountsAndNontradeReceivableTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "unique": true } }, "R42": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails", "longName": "995820 - Disclosure - Accounts receivable, net - Additional Information (Details)", "shortName": "Accounts receivable, net - Additional Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "42", "firstAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "ftci:RetainageProvisionsIncludedInReceivables", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "us-gaap:AccountsAndNontradeReceivableTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "ftci:RetainageProvisionsIncludedInReceivables", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "us-gaap:AccountsAndNontradeReceivableTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R43": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureInventoriesNetScheduleOfInventoriesDetails", "longName": "995840 - Disclosure - Inventories, net - Schedule of inventories (Details)", "shortName": "Inventories, net - Schedule of inventories (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "43", "firstAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "us-gaap:InventoryFinishedGoods", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "div", "us-gaap:InventoryDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "us-gaap:InventoryFinishedGoods", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "div", "us-gaap:InventoryDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R44": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails", "longName": "995850 - Disclosure - Prepaid and other current assets - Schedule of Prepaid and other current assets (Details)", "shortName": "Prepaid and other current assets - Schedule of Prepaid and other current assets (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "44", "firstAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "ftci:VendorDeposits", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "div", "ftci:PrepaidExpensesAndOtherCurrentAssetsTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "ftci:VendorDeposits", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "div", "ftci:PrepaidExpensesAndOtherCurrentAssetsTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R45": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsAdditionalInformationDetails", "longName": "995860 - Disclosure - Prepaid and other current assets (Additional Information) (Details)", "shortName": "Prepaid and other current assets (Additional Information) (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "45", "firstAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "ftci:ShortTermNonInterestBearingCustomerAdvance", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "ftci:PrepaidExpensesAndOtherCurrentAssetsTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "ftci:ShortTermNonInterestBearingCustomerAdvance", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "ftci:PrepaidExpensesAndOtherCurrentAssetsTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R46": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails", "longName": "995870 - Disclosure - Leases - Summary of Lease Expense (Details)", "shortName": "Leases - Summary of Lease Expense (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "46", "firstAnchor": { "contextRef": "C_31bd1544-3f13-4b65-a4b0-d46dd9ebf9f7", "name": "us-gaap:OperatingLeaseCost", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:LeaseCostTableTextBlock", "div", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_31bd1544-3f13-4b65-a4b0-d46dd9ebf9f7", "name": "us-gaap:OperatingLeaseCost", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:LeaseCostTableTextBlock", "div", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R47": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails", "longName": "995880 - Disclosure - Leases - Summary of Future Remaining Lease Payments Obligations (Details)", "shortName": "Leases - Summary of Future Remaining Lease Payments Obligations (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "47", "firstAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "div", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "div", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R48": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails", "longName": "995890 - Disclosure - Property and equipment, net - Schedule of property and equipment (Details)", "shortName": "Property and equipment, net - Schedule of property and equipment (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "48", "firstAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "us-gaap:PropertyPlantAndEquipmentGross", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "div", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "us-gaap:PropertyPlantAndEquipmentGross", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "div", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R49": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNetAdditionalInformationDetails", "longName": "995900 - Disclosure - Property and equipment, net - Additional Information (Details)", "shortName": "Property and equipment, net - Additional Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "49", "firstAnchor": { "contextRef": "C_31bd1544-3f13-4b65-a4b0-d46dd9ebf9f7", "name": "us-gaap:Depreciation", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_31bd1544-3f13-4b65-a4b0-d46dd9ebf9f7", "name": "us-gaap:Depreciation", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R50": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails", "longName": "995910 - Disclosure - Intangible assets, net and goodwill - Summary of intangible assets (Details)", "shortName": "Intangible assets, net and goodwill - Summary of intangible assets (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "50", "firstAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "div", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "div", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R51": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails", "longName": "995920 - Disclosure - Intangible assets, net and goodwill - Additional Information (Details)", "shortName": "Intangible assets, net and goodwill - Additional Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "51", "firstAnchor": { "contextRef": "C_31bd1544-3f13-4b65-a4b0-d46dd9ebf9f7", "name": "us-gaap:AmortizationOfIntangibleAssets", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_31bd1544-3f13-4b65-a4b0-d46dd9ebf9f7", "name": "us-gaap:AmortizationOfIntangibleAssets", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R52": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfGoodwillActivityDetails", "longName": "995930 - Disclosure - Intangible assets, net and goodwill - Summary of goodwill activity (Details)", "shortName": "Intangible assets, net and goodwill - Summary of goodwill activity (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "52", "firstAnchor": { "contextRef": "C_eedd46d9-67ab-4081-a722-5465f8934ef3", "name": "us-gaap:Goodwill", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true }, "uniqueAnchor": { "contextRef": "C_1d88607d-66b9-403f-a250-5c20f97f99bc", "name": "us-gaap:Goodwill", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfGoodwillTextBlock", "div", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "unique": true } }, "R53": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebtAdditionalInformationDetails", "longName": "995940 - Disclosure - Debt - Additional Information (Details)", "shortName": "Debt - Additional Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "53", "firstAnchor": { "contextRef": "C_31bd1544-3f13-4b65-a4b0-d46dd9ebf9f7", "name": "us-gaap:FinancingInterestExpense", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "us-gaap:DebtDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_31bd1544-3f13-4b65-a4b0-d46dd9ebf9f7", "name": "us-gaap:FinancingInterestExpense", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "us-gaap:DebtDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R54": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails", "longName": "995950 - Disclosure - Accrued expenses and other current liabilities - Schedule of Accrued Expenses and Other Current Liabilities (Details)", "shortName": "Accrued expenses and other current liabilities - Schedule of Accrued Expenses and Other Current Liabilities (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "54", "firstAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "ftci:AccruedCostOfRevenues", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "ftci:AccruedExpensesAndOtherCurrentLiabilitiesTableTextBlock", "div", "ftci:AccruedExpensesAndOtherCurrentLiabilitiesDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "ftci:AccruedCostOfRevenues", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "ftci:AccruedExpensesAndOtherCurrentLiabilitiesTableTextBlock", "div", "ftci:AccruedExpensesAndOtherCurrentLiabilitiesDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R55": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfWarrantyAccrualsDetails", "longName": "995970 - Disclosure - Accrued expenses and other current liabilities - Schedule of warranty accruals (Details)", "shortName": "Accrued expenses and other current liabilities - Schedule of warranty accruals (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "55", "firstAnchor": { "contextRef": "C_a8748d1d-bd76-4cf0-a9c2-dd20e9c6ec36", "name": "us-gaap:StandardProductWarrantyAccrual", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock", "div", "ftci:AccruedExpensesAndOtherCurrentLiabilitiesDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_a8748d1d-bd76-4cf0-a9c2-dd20e9c6ec36", "name": "us-gaap:StandardProductWarrantyAccrual", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock", "div", "ftci:AccruedExpensesAndOtherCurrentLiabilitiesDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R56": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails", "longName": "995980 - Disclosure - Income Taxes - Additional Information (Details)", "shortName": "Income Taxes - Additional Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "56", "firstAnchor": { "contextRef": "C_31bd1544-3f13-4b65-a4b0-d46dd9ebf9f7", "name": "us-gaap:IncomeTaxExpenseBenefit", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate", "unitRef": "U_pure", "xsiNil": "false", "lang": null, "decimals": "2", "ancestors": [ "span", "p", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "unique": true } }, "R57": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails", "longName": "995990 - Disclosure - Commitments and Contingencies - Additional Information (Details)", "shortName": "Commitments and Contingencies - Additional Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "57", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "ftci:DescriptionOfTariffsClassification", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "p", "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "ftci:DescriptionOfTariffsClassification", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "p", "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R58": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationStockCompensationExpenseDetails", "longName": "996020 - Disclosure - Stock-Based Compensation - Stock compensation expense (Details)", "shortName": "Stock-Based Compensation - Stock compensation expense (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "58", "firstAnchor": { "contextRef": "C_31bd1544-3f13-4b65-a4b0-d46dd9ebf9f7", "name": "us-gaap:AllocatedShareBasedCompensationExpense", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "div", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true }, "uniqueAnchor": { "contextRef": "C_54ffc540-4594-4d80-89ed-04de78a68b5f", "name": "us-gaap:AllocatedShareBasedCompensationExpense", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "div", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "unique": true } }, "R59": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "longName": "996030 - Disclosure - Related party transactions - Additional Information (Detail)", "shortName": "Related party transactions - Additional Information (Detail)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "59", "firstAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "ftci:RecievablesFromRelatedParties", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "div", "us-gaap:AccountsAndNontradeReceivableTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true }, "uniqueAnchor": { "contextRef": "C_09533f11-94a1-46ed-a837-0db0afa1c751", "name": "ftci:RecievablesFromRelatedParties", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "unique": true } }, "R60": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShareScheduleOfComputationOfBasicAndDilutedLossPerShareDetails", "longName": "996050 - Disclosure - Net Loss Per Share - Schedule of Computation of Basic and Diluted Loss Per Share (Details)", "shortName": "Net Loss Per Share - Schedule of Computation of Basic and Diluted Loss Per Share (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "60", "firstAnchor": { "contextRef": "C_31bd1544-3f13-4b65-a4b0-d46dd9ebf9f7", "name": "us-gaap:NetIncomeLoss", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true }, "uniqueAnchor": null }, "R61": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShareScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfDilutedNetIncomePerShareDetails", "longName": "996060 - Disclosure - Net Loss Per Share - Schedule of Antidilutive Securities Excluded from Computation of Diluted Net Income Per Share (Details)", "shortName": "Net Loss Per Share - Schedule of Antidilutive Securities Excluded from Computation of Diluted Net Income Per Share (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "61", "firstAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "unitRef": "U_shares", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "div", "us-gaap:EarningsPerShareTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_b6f581de-5e65-49a4-b05b-3e53be570298", "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "unitRef": "U_shares", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "div", "us-gaap:EarningsPerShareTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true, "unique": true } }, "R62": { "role": "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails", "longName": "996070 - Disclosure - Subsequent Events (Additional Information) (Details)", "shortName": "Subsequent Events (Additional Information) (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "62", "firstAnchor": { "contextRef": "C_8443b83b-25fb-4402-abcd-8cccbe442fc6", "name": "us-gaap:AccountsAndFinancingReceivableAllowanceForCreditLoss", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "div", "us-gaap:AccountsAndNontradeReceivableTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240630.htm", "first": true }, "uniqueAnchor": null } }, "tag": { "ftci_AbilityToContinueAsAGoingConcern": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "AbilityToContinueAsAGoingConcern", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "documentation": "Ability to continue as a going concern", "label": "Ability to continue as a going concern", "terseLabel": "Liquidity" } } }, "auth_ref": [] }, "us-gaap_AccountingPoliciesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountingPoliciesAbstract", "lang": { "en-us": { "role": { "label": "Accounting Policies [Abstract]" } } }, "auth_ref": [] }, "us-gaap_AccountsAndFinancingReceivableAllowanceForCreditLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsAndFinancingReceivableAllowanceForCreditLoss", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableAllowanceForCreditLossDetailsDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Accounts and Financing Receivable, Allowance for Credit Loss", "periodEndLabel": "Balance at end of period", "periodStartLabel": "Balance at beginning of period", "terseLabel": "Allowance for credit losses", "negatedLabel": "Allowance for credit losses", "documentation": "Amount of allowance for credit loss of accounts and financing receivables. Includes, but is not limited to, notes and loan receivable." } } }, "auth_ref": [ "r225" ] }, "us-gaap_AccountsAndNontradeReceivableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsAndNontradeReceivableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNet" ], "lang": { "en-us": { "role": { "label": "Accounts and Nontrade Receivable [Text Block]", "terseLabel": "Accounts receivable, net", "documentation": "The entire disclosure for accounts receivable, contract receivable, receivable held-for-sale, and nontrade receivable." } } }, "auth_ref": [ "r223", "r234" ] }, "us-gaap_AccountsAndOtherReceivablesNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsAndOtherReceivablesNetCurrent", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails" ], "lang": { "en-us": { "role": { "label": "Accounts and Other Receivables, Net, Current", "terseLabel": "Other receivables", "verboseLabel": "Receivables Collected", "documentation": "Amount, after allowance, receivable from customers, clients, or other third-parties, and receivables classified as other due within one year or the normal operating cycle, if longer." } } }, "auth_ref": [] }, "us-gaap_AccountsPayableCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsPayableCurrent", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Accounts Payable, Current", "terseLabel": "Accounts payable", "totalLabel": "Accounts Payable, Current, Total", "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r46", "r685" ] }, "us-gaap_AccountsPayableCurrentAndNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsPayableCurrentAndNoncurrent", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "label": "Accounts Payable", "terseLabel": "Total received Invoices from Alpha Steel", "totalLabel": "Accounts Payable, Total", "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." } } }, "auth_ref": [ "r102", "r918" ] }, "ftci_AccountsReceivableAllowanceForCreditLossExpenseReversal": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "AccountsReceivableAllowanceForCreditLossExpenseReversal", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableAllowanceForCreditLossDetailsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Amounts charged (credited) to earnings during the period", "documentation": "Accounts Receivable, Allowance for Credit Loss Expense (Reversal)", "label": "Accounts Receivable, Allowance for Credit Loss Expense (Reversal)" } } }, "auth_ref": [] }, "us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsReceivableAllowanceForCreditLossTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetTables" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable, Allowance for Credit Loss [Table Text Block]", "terseLabel": "Schedule of Accounts Receivable Allowance for Credit Loss", "documentation": "Tabular disclosure of allowance for credit loss on accounts receivable." } } }, "auth_ref": [ "r837" ] }, "us-gaap_AccountsReceivableNetAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsReceivableNetAbstract", "lang": { "en-us": { "role": { "label": "Accounts Receivable, after Allowance for Credit Loss [Abstract]" } } }, "auth_ref": [] }, "us-gaap_AccountsReceivableNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsReceivableNetCurrent", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable, after Allowance for Credit Loss, Current", "terseLabel": "Accounts receivable, net", "totalLabel": "Accounts receivable, net", "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current." } } }, "auth_ref": [ "r831" ] }, "us-gaap_AccruedBonusesCurrentAndNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccruedBonusesCurrentAndNoncurrent", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Accrued Bonuses", "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable for incentive compensation awarded to employees and directors or earned by them based on the terms of one or more relevant arrangements." } } }, "auth_ref": [ "r102" ] }, "ftci_AccruedCostOfRevenues": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "AccruedCostOfRevenues", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" ], "lang": { "en-us": { "role": { "documentation": "Accrued cost of revenues", "label": "Accrued cost of revenues", "terseLabel": "Accrued cost of revenue" } } }, "auth_ref": [] }, "ftci_AccruedExpensesAndOtherCurrentLiabilitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "AccruedExpensesAndOtherCurrentLiabilitiesAbstract", "lang": { "en-us": { "role": { "documentation": "Accrued Expenses and Other Current Liabilities Abstract.", "label": "Accrued Expenses and Other Current Liabilities [Abstract]" } } }, "auth_ref": [] }, "ftci_AccruedExpensesAndOtherCurrentLiabilitiesDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "AccruedExpensesAndOtherCurrentLiabilitiesDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilities" ], "lang": { "en-us": { "role": { "documentation": "Accrued Expenses and Other Current Liabilities Disclosure [Text Block]", "label": "Accrued Expenses and Other Current Liabilities Disclosure [Text Block]", "terseLabel": "Accrued Expenses and Other Current Liabilities" } } }, "auth_ref": [] }, "ftci_AccruedExpensesAndOtherCurrentLiabilitiesTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "AccruedExpensesAndOtherCurrentLiabilitiesTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesTables" ], "lang": { "en-us": { "role": { "documentation": "Accrued Expenses and Other Current Liabilities [Table Text Block]", "label": "Accrued Expenses and Other Current Liabilities [Table Text Block]", "terseLabel": "Schedule of Accrued Expenses and Other Current Liabilities" } } }, "auth_ref": [] }, "us-gaap_AccruedIncomeTaxesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccruedIncomeTaxesCurrent", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Accrued Income Taxes, Current", "terseLabel": "Non-federal tax obligations", "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all currently due domestic and foreign income tax obligations." } } }, "auth_ref": [ "r48", "r101" ] }, "us-gaap_AccruedLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccruedLiabilitiesCurrent", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Accrued Liabilities, Current", "terseLabel": "Accrued expenses", "totalLabel": "Total accrued expenses", "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r48" ] }, "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment", "periodEndLabel": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment, Ending Balance", "periodStartLabel": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment, Beginning Balance", "terseLabel": "Accumulated depreciation", "totalLabel": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment, Total", "negatedLabel": "Accumulated depreciation", "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services." } } }, "auth_ref": [ "r28", "r146", "r525" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax", "terseLabel": "Accumulated other comprehensive loss", "totalLabel": "Accumulated Other Comprehensive Income (Loss), Net of Tax, Total", "documentation": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source." } } }, "auth_ref": [ "r15", "r16", "r67", "r151", "r521", "r552", "r556" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccumulatedOtherComprehensiveIncomeMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "AOCI Attributable to Parent [Member]", "terseLabel": "Accumulated Other Comprehensive Loss", "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners." } } }, "auth_ref": [ "r2", "r9", "r16", "r442", "r445", "r484", "r547", "r548", "r806", "r807", "r808", "r819", "r820", "r821", "r822" ] }, "ecd_Additional402vDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "Additional402vDisclosureTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Additional 402(v) Disclosure [Text Block]", "terseLabel": "Additional 402(v) Disclosure" } } }, "auth_ref": [ "r740" ] }, "ftci_AdditionalCapitalContribution": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "AdditionalCapitalContribution", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Additional capital contribution", "label": "Additional capital contribution", "terseLabel": "Additional capital contributions" } } }, "auth_ref": [] }, "ftci_AdditionalCapitalContributions": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "AdditionalCapitalContributions", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Additional capital contributions", "label": "Additional Capital Contributions", "terseLabel": "Additional capital contributions" } } }, "auth_ref": [] }, "ftci_AdditionalInterestRateAbovePrime": { "xbrltype": "percentItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "AdditionalInterestRateAbovePrime", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Additional Interest Rate Above Prime", "label": "Additional Interest Rate Above Prime", "terseLabel": "Additional Interest Rate Above Prime" } } }, "auth_ref": [] }, "us-gaap_AdditionalPaidInCapital": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AdditionalPaidInCapital", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Additional Paid in Capital", "periodEndLabel": "Additional Paid in Capital, Ending Balance", "periodStartLabel": "Additional Paid in Capital, Beginning Balance", "terseLabel": "Additional paid-in capital", "totalLabel": "Additional Paid in Capital, Total", "documentation": "Amount of excess of issue price over par or stated value of stock and from other transaction involving stock or stockholder. Includes, but is not limited to, additional paid-in capital (APIC) for common and preferred stock." } } }, "auth_ref": [ "r58", "r685", "r955" ] }, "us-gaap_AdditionalPaidInCapitalMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AdditionalPaidInCapitalMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Additional Paid-in Capital [Member]", "terseLabel": "Additional Paid-in Capital", "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders." } } }, "auth_ref": [ "r567", "r819", "r820", "r821", "r822", "r898", "r956" ] }, "ecd_AdjToCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AdjToCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment to Compensation Amount", "terseLabel": "Adjustment to Compensation, Amount" } } }, "auth_ref": [ "r753" ] }, "ecd_AdjToCompAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AdjToCompAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment to Compensation [Axis]", "terseLabel": "Adjustment to Compensation:" } } }, "auth_ref": [ "r753" ] }, "ecd_AdjToNonPeoNeoCompFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AdjToNonPeoNeoCompFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment to Non-PEO NEO Compensation Footnote [Text Block]", "terseLabel": "Adjustment to Non-PEO NEO Compensation Footnote" } } }, "auth_ref": [ "r753" ] }, "ecd_AdjToPeoCompFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AdjToPeoCompFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment To PEO Compensation, Footnote [Text Block]", "terseLabel": "Adjustment To PEO Compensation, Footnote" } } }, "auth_ref": [ "r753" ] }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition", "terseLabel": "Stock-based compensation", "totalLabel": "APIC, Share-based Payment Arrangement, Increase for Cost Recognition, Total", "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement." } } }, "auth_ref": [ "r38", "r39", "r368" ] }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalStockIssuedIssuanceCosts": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AdjustmentsToAdditionalPaidInCapitalStockIssuedIssuanceCosts", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Adjustments to Additional Paid in Capital, Stock Issued, Issuance Costs", "terseLabel": "Stock issuance costs", "negatedTerseLabel": "Stock offering costs", "documentation": "Amount of decrease in additional paid in capital (APIC) resulting from direct costs associated with issuing stock. Includes, but is not limited to, legal and accounting fees and direct costs associated with stock issues under a shelf registration." } } }, "auth_ref": [ "r10", "r95" ] }, "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "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 loss to cash used in operating activities:" } } }, "auth_ref": [] }, "ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AggtChngPnsnValInSummryCompstnTblForAplblYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table [Member]", "terseLabel": "Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table" } } }, "auth_ref": [ "r786" ] }, "ecd_AggtErrCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AggtErrCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Aggregate Erroneous Compensation Amount", "terseLabel": "Aggregate Erroneous Compensation Amount" } } }, "auth_ref": [ "r712", "r722", "r732", "r764" ] }, "ecd_AggtErrCompNotYetDeterminedTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AggtErrCompNotYetDeterminedTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Aggregate Erroneous Compensation Not Yet Determined [Text Block]", "terseLabel": "Aggregate Erroneous Compensation Not Yet Determined" } } }, "auth_ref": [ "r715", "r725", "r735", "r767" ] }, "ecd_AggtPnsnAdjsSvcCstMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AggtPnsnAdjsSvcCstMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Aggregate Pension Adjustments Service Cost [Member]", "terseLabel": "Aggregate Pension Adjustments Service Cost" } } }, "auth_ref": [ "r787" ] }, "ecd_AllAdjToCompMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AllAdjToCompMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "All Adjustments to Compensation [Member]", "terseLabel": "All Adjustments to Compensation" } } }, "auth_ref": [ "r753" ] }, "ecd_AllExecutiveCategoriesMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AllExecutiveCategoriesMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "All Executive Categories [Member]", "terseLabel": "All Executive Categories" } } }, "auth_ref": [ "r760" ] }, "ecd_AllIndividualsMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AllIndividualsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure", "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure", "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "All Individuals [Member]", "terseLabel": "All Individuals" } } }, "auth_ref": [ "r716", "r726", "r736", "r760", "r768", "r772", "r780" ] }, "ecd_AllTradingArrangementsMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AllTradingArrangementsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "All Trading Arrangements [Member]", "terseLabel": "All Trading Arrangements" } } }, "auth_ref": [ "r778" ] }, "us-gaap_AllocatedShareBasedCompensationExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AllocatedShareBasedCompensationExpense", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationStockCompensationExpenseDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement, Expense", "terseLabel": "Stock based compensation expense", "verboseLabel": "Total stock compensation expense", "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized." } } }, "auth_ref": [ "r400", "r408" ] }, "us-gaap_AllowanceForDoubtfulAccountsReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AllowanceForDoubtfulAccountsReceivable", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableAllowanceForCreditLossDetails" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable, Allowance for Credit Loss", "periodEndLabel": "Accounts Receivable, Allowance for Credit Loss, Ending Balance", "periodStartLabel": "Accounts Receivable, Allowance for Credit Loss, Beginning Balance", "documentation": "Amount of allowance for credit loss on accounts receivable." } } }, "auth_ref": [ "r152", "r225", "r239", "r240", "r244", "r920" ] }, "us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AllowanceForDoubtfulAccountsReceivableRecoveries", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableAllowanceForCreditLossDetails" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable, Allowance for Credit Loss, Recovery", "terseLabel": "Additions charged to earnings during the period", "documentation": "Amount of increase in allowance for credit loss on accounts receivable, from recovery." } } }, "auth_ref": [ "r243" ] }, "us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AllowanceForDoubtfulAccountsReceivableWriteOffs", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableAllowanceForCreditLossDetailsDetails" ], "lang": { "en-us": { "role": { "negatedLabel": "Write-offs of accounts", "terseLabel": "Write-offs of accounts", "label": "Accounts Receivable, Allowance for Credit Loss, Writeoff", "documentation": "Amount of direct write-downs of accounts receivable charged against the allowance." } } }, "auth_ref": [ "r242" ] }, "ftci_AlphaSteelMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "AlphaSteelMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Alpha Steel", "label": "Alpha Steel [Member]", "terseLabel": "Alpha Steel" } } }, "auth_ref": [] }, "dei_AmendmentFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "AmendmentFlag", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Amendment Flag", "terseLabel": "Amendment Flag", "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission." } } }, "auth_ref": [] }, "us-gaap_AmortizationOfFinancingCosts": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AmortizationOfFinancingCosts", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Amortization of Debt Issuance Costs", "terseLabel": "Amortization of debt issue cost", "verboseLabel": "Amortization of debt issue costs", "documentation": "Amount of amortization expense attributable to debt issuance costs." } } }, "auth_ref": [ "r75", "r329", "r811", "r902" ] }, "us-gaap_AmortizationOfIntangibleAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AmortizationOfIntangibleAssets", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Amortization of Intangible Assets", "terseLabel": "Amortization expense", "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." } } }, "auth_ref": [ "r7", "r258", "r264", "r664" ] }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShareScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfDilutedNetIncomePerShareDetails" ], "lang": { "en-us": { "role": { "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount", "terseLabel": "Potential common shares excluded from diluted net loss per share", "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented." } } }, "auth_ref": [ "r206" ] }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShareScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfDilutedNetIncomePerShareDetails" ], "lang": { "en-us": { "role": { "label": "Antidilutive Securities [Axis]", "documentation": "Information by type of antidilutive security." } } }, "auth_ref": [ "r23" ] }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShareScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfDilutedNetIncomePerShareDetails" ], "lang": { "en-us": { "role": { "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [] }, "us-gaap_AntidilutiveSecuritiesNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AntidilutiveSecuritiesNameDomain", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShareScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfDilutedNetIncomePerShareDetails" ], "lang": { "en-us": { "role": { "label": "Antidilutive Securities, Name [Domain]", "documentation": "Incremental common shares attributable to securities that were not included in diluted earnings per share (EPS) because to do so would increase EPS amounts or decrease loss per share amounts for the period presented." } } }, "auth_ref": [ "r23" ] }, "us-gaap_ArrangementsAndNonarrangementTransactionsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ArrangementsAndNonarrangementTransactionsMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Domain]", "terseLabel": "Collaborative Arrangement and Arrangement Other than Collaborative", "documentation": "Collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations." } } }, "auth_ref": [ "r436" ] }, "ftci_AssessmentMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "AssessmentMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "939 Assessment [Member]", "label": "939 Assessment [Member]", "terseLabel": "939 Assessment [Member]" } } }, "auth_ref": [] }, "ftci_AssessmentTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "AssessmentTypeAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Assessment Type [Axis]", "label": "Assessment Type [Axis]" } } }, "auth_ref": [] }, "ftci_AssessmentTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "AssessmentTypeDomain", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Assessment Type [Domain]", "label": "Assessment Type [Domain]" } } }, "auth_ref": [] }, "us-gaap_AssetAcquisitionTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AssetAcquisitionTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAcquisitionTables" ], "lang": { "en-us": { "role": { "label": "Asset Acquisition [Table Text Block]", "terseLabel": "Schedule of allocation of the purchase price", "documentation": "Tabular disclosure of asset acquisition." } } }, "auth_ref": [ "r897" ] }, "ftci_AssetPurchaseAgreementMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "AssetPurchaseAgreementMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Asset purchase agreement.", "label": "Asset Purchase Agreement [Member]", "terseLabel": "Asset Purchase Agreement [Member]" } } }, "auth_ref": [] }, "us-gaap_Assets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "Assets", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Assets", "totalLabel": "Total assets", "documentation": "Amount of asset recognized for present right to economic benefit." } } }, "auth_ref": [ "r100", "r113", "r150", "r174", "r210", "r212", "r218", "r219", "r232", "r298", "r299", "r300", "r301", "r302", "r303", "r304", "r305", "r306", "r437", "r439", "r457", "r515", "r593", "r659", "r660", "r685", "r703", "r883", "r884", "r908" ] }, "us-gaap_AssetsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AssetsAbstract", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Assets [Abstract]", "terseLabel": "ASSETS" } } }, "auth_ref": [] }, "us-gaap_AssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AssetsCurrent", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Assets, Current", "terseLabel": "Current assets", "totalLabel": "Total current assets", "documentation": "Amount of asset recognized for present right to economic benefit, classified as current." } } }, "auth_ref": [ "r141", "r157", "r174", "r232", "r298", "r299", "r300", "r301", "r302", "r303", "r304", "r305", "r306", "r437", "r439", "r457", "r685", "r883", "r884", "r908" ] }, "us-gaap_AssetsCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AssetsCurrentAbstract", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Assets, Current [Abstract]", "terseLabel": "Current assets" } } }, "auth_ref": [] }, "ftci_AtmProgram": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "AtmProgram", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAtmProgram" ], "lang": { "en-us": { "role": { "documentation": "ATM Program", "label": "ATM Program" } } }, "auth_ref": [] }, "ftci_AtmProgramMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "AtmProgramMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "ATM Program [Member]", "label": "ATM Program [Member]" } } }, "auth_ref": [] }, "ftci_AvailableForCustomerPursuant": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "AvailableForCustomerPursuant", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Available for customer pursuant", "label": "Available For Customer Pursuant", "documentation": "Available For Customer Pursuant" } } }, "auth_ref": [] }, "ftci_AvailableLiquidityAfterConsideringFinancialCondition": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "AvailableLiquidityAfterConsideringFinancialCondition", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Available liquidity after considering financial condition", "label": "Available liquidity after considering financial condition" } } }, "auth_ref": [] }, "ecd_AwardExrcPrice": { "xbrltype": "perShareItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardExrcPrice", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Exercise Price", "terseLabel": "Exercise Price" } } }, "auth_ref": [ "r775" ] }, "ecd_AwardGrantDateFairValue": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardGrantDateFairValue", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Grant Date Fair Value", "terseLabel": "Fair Value as of Grant Date" } } }, "auth_ref": [ "r776" ] }, "ecd_AwardTmgDiscLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardTmgDiscLineItems", "lang": { "en-us": { "role": { "label": "Award Timing Disclosures [Line Items]", "terseLabel": "Award Timing Disclosures" } } }, "auth_ref": [ "r771" ] }, "ecd_AwardTmgHowMnpiCnsdrdTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardTmgHowMnpiCnsdrdTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing, How MNPI Considered [Text Block]", "terseLabel": "Award Timing, How MNPI Considered" } } }, "auth_ref": [ "r771" ] }, "ecd_AwardTmgMethodTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardTmgMethodTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing Method [Text Block]", "terseLabel": "Award Timing Method" } } }, "auth_ref": [ "r771" ] }, "ecd_AwardTmgMnpiCnsdrdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardTmgMnpiCnsdrdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing MNPI Considered [Flag]", "terseLabel": "Award Timing MNPI Considered" } } }, "auth_ref": [ "r771" ] }, "ecd_AwardTmgMnpiDiscTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardTmgMnpiDiscTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing MNPI Disclosure [Text Block]", "terseLabel": "Award Timing MNPI Disclosure" } } }, "auth_ref": [ "r771" ] }, "ecd_AwardTmgPredtrmndFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardTmgPredtrmndFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing Predetermined [Flag]", "terseLabel": "Award Timing Predetermined" } } }, "auth_ref": [ "r771" ] }, "us-gaap_AwardTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AwardTypeAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Type [Axis]", "terseLabel": "Award Type", "documentation": "Information by type of award under share-based payment arrangement." } } }, "auth_ref": [ "r371", "r372", "r373", "r375", "r376", "r377", "r378", "r379", "r380", "r381", "r382", "r383", "r384", "r385", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r395", "r396", "r397", "r398", "r399" ] }, "ecd_AwardUndrlygSecuritiesAmt": { "xbrltype": "decimalItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardUndrlygSecuritiesAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Underlying Securities Amount", "terseLabel": "Underlying Securities" } } }, "auth_ref": [ "r774" ] }, "ecd_AwardsCloseToMnpiDiscIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardsCloseToMnpiDiscIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Awards Close in Time to MNPI Disclosures, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r773" ] }, "ecd_AwardsCloseToMnpiDiscTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardsCloseToMnpiDiscTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Awards Close in Time to MNPI Disclosures [Table]", "terseLabel": "Awards Close in Time to MNPI Disclosures" } } }, "auth_ref": [ "r772" ] }, "ecd_AwardsCloseToMnpiDiscTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardsCloseToMnpiDiscTableTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Awards Close in Time to MNPI Disclosures [Table Text Block]", "terseLabel": "Awards Close in Time to MNPI Disclosures, Table" } } }, "auth_ref": [ "r772" ] }, "ftci_AynaMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "AynaMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "documentation": "Ayna", "label": "Ayna [Member]", "terseLabel": "Ayna [Member]" } } }, "auth_ref": [] }, "us-gaap_BalanceSheetLocationAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BalanceSheetLocationAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Balance Sheet Location [Axis]", "terseLabel": "Balance Sheet Location", "documentation": "Information by location in statement of financial position where disaggregated cumulative balance has been reported." } } }, "auth_ref": [ "r276", "r922", "r923" ] }, "us-gaap_BalanceSheetLocationDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BalanceSheetLocationDomain", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Balance Sheet Location [Domain]", "terseLabel": "Balance Sheet Location", "documentation": "Location in statement of financial position where disaggregated cumulative balance has been reported." } } }, "auth_ref": [ "r40", "r41", "r276", "r922", "r923" ] }, "us-gaap_BasisOfAccountingPolicyPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BasisOfAccountingPolicyPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Basis of Accounting, Policy [Policy Text Block]", "terseLabel": "Basis of presentation and principles of consolidation", "documentation": "Disclosure of accounting policy for basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS)." } } }, "auth_ref": [] }, "srt_BoardOfDirectorsChairmanMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "BoardOfDirectorsChairmanMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Board of Directors Chairman [Member]", "terseLabel": "Board of Directors and Chairman" } } }, "auth_ref": [ "r830" ] }, "us-gaap_BusinessCombinationAndAssetAcquisitionAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BusinessCombinationAndAssetAcquisitionAbstract", "lang": { "en-us": { "role": { "label": "Business Combination and Asset Acquisition [Abstract]" } } }, "auth_ref": [] }, "us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BusinessDescriptionAndBasisOfPresentationTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDescriptionOfBusiness1" ], "lang": { "en-us": { "role": { "label": "Business Description and Basis of Presentation [Text Block]", "terseLabel": "Description of business", "documentation": "The entire disclosure for the business description and basis of presentation concepts. Business description describes the nature and type of organization including but not limited to organizational structure as may be applicable to holding companies, parent and subsidiary relationships, business divisions, business units, business segments, affiliates and information about significant ownership of the reporting entity. 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)." } } }, "auth_ref": [ "r45", "r83", "r84" ] }, "ftci_CapitalContributions": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "CapitalContributions", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Capital contributions", "label": "Capital contributions", "terseLabel": "Capital Contribution" } } }, "auth_ref": [] }, "us-gaap_Cash": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "Cash", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Cash", "periodEndLabel": "Cash, Ending Balance", "periodStartLabel": "Cash, Beginning Balance", "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. Excludes cash and cash equivalents within disposal group and discontinued operation." } } }, "auth_ref": [ "r124", "r518", "r568", "r588", "r685", "r703", "r801" ] }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashAndCashEquivalentsAtCarryingValue", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Cash and Cash Equivalents, at Carrying Value", "periodEndLabel": "Cash and Cash Equivalents, at Carrying Value, Ending Balance", "periodStartLabel": "Cash and Cash Equivalents, at Carrying Value, Beginning Balance", "terseLabel": "Cash and cash equivalents", "totalLabel": "Cash and Cash Equivalents, at Carrying Value, Total", "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation." } } }, "auth_ref": [ "r20", "r144", "r646" ] }, "us-gaap_CashAndCashEquivalentsPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashAndCashEquivalentsPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Cash and Cash Equivalents, Policy [Policy Text Block]", "terseLabel": "Cash and cash equivalents", "documentation": "Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value." } } }, "auth_ref": [ "r21" ] }, "us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Cash and Cash Equivalents, Restricted Cash and Cash Equivalents, Policy [Policy Text Block]", "terseLabel": "Restricted Cash", "documentation": "Entity's cash and cash equivalents accounting policy with respect to restricted balances. Restrictions may include legally restricted deposits held as compensating balances against short-term borrowing arrangements, contracts entered into with others, or company statements of intention with regard to particular deposits; however, time deposits and short-term certificates of deposit are not generally included in legally restricted deposits." } } }, "auth_ref": [ "r21", "r99" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents", "periodEndLabel": "Cash and cash equivalents at end of period", "periodStartLabel": "Cash and cash equivalents at beginning of period", "terseLabel": "Total cash and restricted cash", "totalLabel": "Total cash and restricted cash", "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r20", "r79", "r170" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "totalLabel": "Decrease in cash and cash equivalents", "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect", "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r1", "r79" ] }, "ftci_CashPaidDuringThePeriodForThirdPartyInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "CashPaidDuringThePeriodForThirdPartyInterest", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "documentation": "Cash paid during the period for third party interest", "label": "Cash paid during the period for third party interest", "terseLabel": "Cash paid during the period for interest" } } }, "auth_ref": [] }, "ftci_CashPayments": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "CashPayments", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Cash Payments", "label": "Cash Payments", "terseLabel": "Cash payments", "verboseLabel": "Cash payment" } } }, "auth_ref": [] }, "ftci_CashRecevedForAcquireFoundation": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "CashRecevedForAcquireFoundation", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Cash receved for acquire foundation", "label": "Cash Receved for Acquire Foundation", "documentation": "Cash Receved for Acquire Foundation" } } }, "auth_ref": [] }, "ftci_CbpAssessmentsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "CbpAssessmentsMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "CBP Assessments [Member]", "label": "CBP Assessments [Member]", "terseLabel": "CBP Assessments [Member]" } } }, "auth_ref": [] }, "ecd_ChangedPeerGroupFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ChangedPeerGroupFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Changed Peer Group, Footnote [Text Block]", "terseLabel": "Changed Peer Group, Footnote" } } }, "auth_ref": [ "r751" ] }, "ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year [Member]", "terseLabel": "Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year" } } }, "auth_ref": [ "r748" ] }, "ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested [Member]", "terseLabel": "Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested" } } }, "auth_ref": [ "r746" ] }, "dei_CityAreaCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "CityAreaCode", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "City Area Code", "terseLabel": "City Area Code", "documentation": "Area code of city" } } }, "auth_ref": [] }, "ftci_ClosingBidPrice": { "xbrltype": "perShareItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "ClosingBidPrice", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Closing bid price", "label": "Closing bid price", "terseLabel": "Closing bid price" } } }, "auth_ref": [] }, "ecd_CoSelectedMeasureAmt": { "xbrltype": "decimalItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "CoSelectedMeasureAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Company Selected Measure Amount", "terseLabel": "Company Selected Measure Amount" } } }, "auth_ref": [ "r752" ] }, "ecd_CoSelectedMeasureName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "CoSelectedMeasureName", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Company Selected Measure Name", "terseLabel": "Company Selected Measure Name" } } }, "auth_ref": [ "r752" ] }, "us-gaap_CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CollaborativeArrangementsAndNoncollaborativeArrangementTransactionsLineItems", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r436" ] }, "us-gaap_CommitmentsAndContingencies": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommitmentsAndContingencies", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Commitments and Contingencies", "terseLabel": "Commitments and contingencies (Note 14)", "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur." } } }, "auth_ref": [ "r53", "r104", "r517", "r579" ] }, "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommitmentsAndContingenciesDisclosureAbstract", "lang": { "en-us": { "role": { "label": "Commitments and Contingencies Disclosure [Abstract]" } } }, "auth_ref": [] }, "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommitmentsAndContingenciesDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingencies" ], "lang": { "en-us": { "role": { "label": "Commitments and Contingencies Disclosure [Text Block]", "terseLabel": "Commitments and Contingencies", "documentation": "The entire disclosure for commitments and contingencies." } } }, "auth_ref": [ "r90", "r284", "r285", "r639", "r863", "r868" ] }, "ftci_CommonStockCapitalSharesReservedForFutureIssuanceValue": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "CommonStockCapitalSharesReservedForFutureIssuanceValue", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Common Stock, Capital Shares Reserved for Future Issuance Value", "label": "Common Stock, Capital Shares Reserved for Future Issuance Value", "terseLabel": "Common stock, reserved for future issuance, value" } } }, "auth_ref": [] }, "us-gaap_CommonStockMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Common Stock [Member]", "terseLabel": "Common Stock", "documentation": "Stock that is subordinate to all other stock of the issuer." } } }, "auth_ref": [ "r693", "r694", "r695", "r697", "r698", "r699", "r700", "r819", "r820", "r822", "r898", "r953", "r956" ] }, "us-gaap_CommonStockParOrStatedValuePerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockParOrStatedValuePerShare", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParentheticalUnaudited" ], "lang": { "en-us": { "role": { "label": "Common Stock, Par or Stated Value Per Share", "terseLabel": "Common stock, par value", "documentation": "Face amount or stated value per share of common stock." } } }, "auth_ref": [ "r56" ] }, "us-gaap_CommonStockSharesAuthorized": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockSharesAuthorized", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParentheticalUnaudited" ], "lang": { "en-us": { "role": { "label": "Common Stock, Shares Authorized", "terseLabel": "Common stock, shares authorized", "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws." } } }, "auth_ref": [ "r56", "r580" ] }, "us-gaap_CommonStockSharesIssued": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockSharesIssued", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParentheticalUnaudited" ], "lang": { "en-us": { "role": { "label": "Common Stock, Shares, Issued", "terseLabel": "Common stock, shares issued", "totalLabel": "Common Stock, Shares, Issued, Total", "verboseLabel": "Common stock issued for notes purchased", "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury." } } }, "auth_ref": [ "r56" ] }, "us-gaap_CommonStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockSharesOutstanding", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParentheticalUnaudited" ], "lang": { "en-us": { "role": { "label": "Common Stock, Shares, Outstanding", "periodEndLabel": "Common Stock, Shares, Outstanding, Ending Balance", "periodStartLabel": "Common Stock, Shares, Outstanding, Beginning Balance", "terseLabel": "Common stock, shares outstanding", "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation." } } }, "auth_ref": [ "r10", "r56", "r580", "r599", "r956", "r957" ] }, "us-gaap_CommonStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockValue", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Common stock par value of $0.0001 per share, 850,000,000 shares authorized; 127,002,580 and 125,445,325 shares issued and outstanding as of June 30, 2024 and December 31, 2023", "label": "Common Stock, Value, Issued", "periodEndLabel": "Common Stock, Value, Issued, Ending Balance", "periodStartLabel": "Common Stock, Value, Issued, Beginning Balance", "totalLabel": "Common Stock, Value, Issued, Total", "verboseLabel": "Common stock, value, issued", "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity." } } }, "auth_ref": [ "r56", "r520", "r685" ] }, "ftci_CommonStockValueAuthorized": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "CommonStockValueAuthorized", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Common stock value authorized.", "label": "Common Stock Value Authorized", "terseLabel": "Common stock, value authorized" } } }, "auth_ref": [] }, "ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "CompActuallyPaidVsCoSelectedMeasureTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Company Selected Measure [Text Block]", "terseLabel": "Compensation Actually Paid vs. Company Selected Measure" } } }, "auth_ref": [ "r757" ] }, "ecd_CompActuallyPaidVsNetIncomeTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "CompActuallyPaidVsNetIncomeTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Net Income [Text Block]", "terseLabel": "Compensation Actually Paid vs. Net Income" } } }, "auth_ref": [ "r756" ] }, "ecd_CompActuallyPaidVsOtherMeasureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "CompActuallyPaidVsOtherMeasureTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Other Measure [Text Block]", "terseLabel": "Compensation Actually Paid vs. Other Measure" } } }, "auth_ref": [ "r758" ] }, "ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "CompActuallyPaidVsTotalShareholderRtnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Total Shareholder Return [Text Block]", "terseLabel": "Compensation Actually Paid vs. Total Shareholder Return" } } }, "auth_ref": [ "r755" ] }, "us-gaap_ComprehensiveIncomeNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ComprehensiveIncomeNetOfTax", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent", "terseLabel": "Comprehensive loss", "totalLabel": "Comprehensive loss", "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners." } } }, "auth_ref": [ "r17", "r160", "r162", "r167", "r510", "r530", "r531" ] }, "us-gaap_ConcentrationRiskCreditRisk": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ConcentrationRiskCreditRisk", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Concentration Risk, Credit Risk, Policy [Policy Text Block]", "terseLabel": "Concentration of credit risk", "documentation": "Disclosure of accounting policy for credit risk." } } }, "auth_ref": [ "r44", "r128" ] }, "ftci_ConsecutiveBusinessDays": { "xbrltype": "integerItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "ConsecutiveBusinessDays", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Consecutive business days", "label": "Consecutive business days", "terseLabel": "Consecutive business days" } } }, "auth_ref": [] }, "us-gaap_ContractWithCustomerLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerLiabilityCurrent", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Contract with Customer, Liability, Current", "terseLabel": "Deferred revenue", "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current." } } }, "auth_ref": [ "r349", "r350", "r361" ] }, "ftci_CostOfAssessment": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "CostOfAssessment", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Cost of Assessment", "label": "Cost of Assessment", "terseLabel": "Cost of assessment" } } }, "auth_ref": [] }, "us-gaap_CostOfGoodsAndServicesSold": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CostOfGoodsAndServicesSold", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Cost of Goods and Services Sold", "terseLabel": "Total cost of revenue", "totalLabel": "Cost of Goods and Services Sold, Total", "verboseLabel": "Cost of Revenue", "documentation": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities." } } }, "auth_ref": [ "r70", "r71", "r504" ] }, "us-gaap_CostOfRevenueAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CostOfRevenueAbstract", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Cost of Revenue [Abstract]", "terseLabel": "Cost of revenue:" } } }, "auth_ref": [] }, "us-gaap_CostOfSalesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CostOfSalesMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationStockCompensationExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Cost of Sales [Member]", "terseLabel": "Cost of revenue [Member]", "documentation": "Primary financial statement caption encompassing cost of sales." } } }, "auth_ref": [] }, "srt_CounterpartyNameAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "CounterpartyNameAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Counterparty Name [Axis]", "terseLabel": "Counterparty Name" } } }, "auth_ref": [ "r178", "r179", "r311", "r337", "r491", "r498", "r514", "r650", "r652" ] }, "dei_CoverAbstract": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "CoverAbstract", "lang": { "en-us": { "role": { "label": "Cover [Abstract]", "documentation": "Cover page." } } }, "auth_ref": [] }, "ftci_Covid19PandemicPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "Covid19PandemicPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "documentation": "Covid-19 Pandemic Policy [Text Block]", "label": "Covid-19 Pandemic Policy [Text Block]", "terseLabel": "Covid-19 Pandemic" } } }, "auth_ref": [] }, "us-gaap_CreditFacilityAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CreditFacilityAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebtAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Credit Facility [Axis]", "terseLabel": "Credit Facility", "documentation": "Information by type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing." } } }, "auth_ref": [ "r297", "r881" ] }, "us-gaap_CreditFacilityDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CreditFacilityDomain", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebtAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Credit Facility [Domain]", "terseLabel": "Credit Facility", "documentation": "Type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing." } } }, "auth_ref": [ "r297", "r881", "r882" ] }, "dei_CurrentFiscalYearEndDate": { "xbrltype": "gMonthDayItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "CurrentFiscalYearEndDate", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Current Fiscal Year End Date", "terseLabel": "Current Fiscal Year End Date", "documentation": "End date of current fiscal year in the format --MM-DD." } } }, "auth_ref": [] }, "ftci_DayvLlcMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "DayvLlcMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "DAYV LLC", "label": "DAYV LLC [Member]", "terseLabel": "DAYV LLC [Member]" } } }, "auth_ref": [] }, "us-gaap_DebtDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtDisclosureAbstract", "lang": { "en-us": { "role": { "label": "Debt Disclosure [Abstract]" } } }, "auth_ref": [] }, "us-gaap_DebtDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebt1" ], "lang": { "en-us": { "role": { "terseLabel": "Debt", "label": "Debt Disclosure [Text Block]", "documentation": "The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants." } } }, "auth_ref": [ "r91", "r172", "r271", "r272", "r273", "r274", "r275", "r296", "r297", "r307", "r313", "r314", "r315", "r316", "r317", "r318", "r323", "r330", "r331", "r333", "r467" ] }, "us-gaap_DebtInstrumentLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtInstrumentLineItems", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Debt Instrument [Line Items]", "terseLabel": "Debt Instrument [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r180", "r308", "r309", "r310", "r311", "r312", "r314", "r319", "r320", "r321", "r322", "r324", "r325", "r326", "r327", "r328", "r329", "r332", "r665", "r666", "r667", "r668", "r669", "r683", "r814", "r901", "r903" ] }, "us-gaap_DebtInstrumentTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtInstrumentTable", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Long-Term Debt Instruments [Table]", "terseLabel": "Debt Instrument [Table]", "documentation": "Disclosure of information about long-term debt instrument or arrangement." } } }, "auth_ref": [ "r13", "r31", "r32", "r43", "r93", "r94", "r180", "r308", "r309", "r310", "r311", "r312", "r314", "r319", "r320", "r321", "r322", "r324", "r325", "r326", "r327", "r328", "r329", "r332", "r665", "r666", "r667", "r668", "r669", "r683", "r814", "r901", "r903" ] }, "us-gaap_DebtInstrumentUnusedBorrowingCapacityAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtInstrumentUnusedBorrowingCapacityAmount", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Debt Instrument, Unused Borrowing Capacity, Amount", "terseLabel": "Unused borrowing capacity", "documentation": "Amount of unused borrowing capacity under the long-term financing arrangement that is available to the entity as of the balance sheet date." } } }, "auth_ref": [ "r50", "r296" ] }, "ftci_DeferredCostOfRevenue": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "DeferredCostOfRevenue", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails" ], "lang": { "en-us": { "role": { "documentation": "Deferred cost of revenue", "label": "Deferred Cost of Revenue", "terseLabel": "Deferred cost of revenue" } } }, "auth_ref": [] }, "us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsTables" ], "lang": { "en-us": { "role": { "label": "Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Table Text Block]", "terseLabel": "Schedule of prepaid and other current assets", "documentation": "Tabular disclosure of the amounts paid in advance for capitalized costs that will be expensed with the passage of time or the occurrence of a triggering event, and will be charged against earnings within one year or the normal operating cycle, if longer; the aggregate carrying amount of current assets, not separately presented elsewhere in the balance sheet; and other deferred costs." } } }, "auth_ref": [] }, "us-gaap_DeferredCreditsAndOtherLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DeferredCreditsAndOtherLiabilitiesCurrent", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Deferred Credits and Other Liabilities, Current", "terseLabel": "Non-federal tax obligations", "documentation": "Carrying amount as of the balance sheet date of unearned revenue or income, not otherwise specified in the taxonomy, which is expected to be taken into income during the current period and current obligations not separately disclosed in the balance sheet (other liabilities, current)." } } }, "auth_ref": [] }, "us-gaap_DeferredIncomeTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DeferredIncomeTaxExpenseBenefit", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Deferred Income Tax Expense (Benefit)", "terseLabel": "Deferred income taxes", "totalLabel": "Deferred Income Tax Expense (Benefit), Total", "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations." } } }, "auth_ref": [ "r7", "r134", "r816" ] }, "ftci_DeferredIncomeTaxes": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "DeferredIncomeTaxes", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails" ], "lang": { "en-us": { "role": { "documentation": "Deferred Income Taxes", "label": "Deferred income taxes" } } }, "auth_ref": [] }, "us-gaap_DeferredRevenueRevenueRecognized1": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DeferredRevenueRevenueRecognized1", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Deferred Revenue, Revenue Recognized", "terseLabel": "Revenue recognized included in deferred revenue", "documentation": "Amount of revenue recognized that was previously reported as deferred or unearned revenue." } } }, "auth_ref": [] }, "us-gaap_Depreciation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "Depreciation", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNetAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Depreciation", "terseLabel": "Depreciation expense", "totalLabel": "Depreciation, Total", "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." } } }, "auth_ref": [ "r7", "r27" ] }, "us-gaap_DepreciationAndAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DepreciationAndAmortization", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Depreciation, Depletion and Amortization, Nonproduction", "terseLabel": "Depreciation and amortization", "totalLabel": "Depreciation, Depletion and Amortization, Nonproduction, Total", "documentation": "The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production." } } }, "auth_ref": [ "r7", "r27" ] }, "ftci_DescriptionOfBusinessLineItems": { "xbrltype": "stringItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "DescriptionOfBusinessLineItems", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Description of business.", "label": "Description Of Business [Line Items]", "terseLabel": "Description Of Business [Line Items]" } } }, "auth_ref": [] }, "ftci_DescriptionOfBusinessTable": { "xbrltype": "stringItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "DescriptionOfBusinessTable", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Description of business.", "label": "Description Of Business [Table]", "terseLabel": "Description Of Business [Table]" } } }, "auth_ref": [] }, "ftci_DescriptionOfClosingBidPricOfOurCommonStock": { "xbrltype": "stringItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "DescriptionOfClosingBidPricOfOurCommonStock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Description of closing bid pric of our common stock", "label": "Description of closing bid pric of our common stock", "terseLabel": "Description of closing bid pric of our common stock" } } }, "auth_ref": [] }, "ftci_DescriptionOfRevisedTariffsClassification": { "xbrltype": "stringItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "DescriptionOfRevisedTariffsClassification", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Description of Revised Tariffs classification", "label": "Description of Revised Tariffs Classification", "terseLabel": "Description of revised tariffs classification" } } }, "auth_ref": [] }, "ftci_DescriptionOfTariffsClassification": { "xbrltype": "stringItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "DescriptionOfTariffsClassification", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Description of Tariffs classification", "label": "Description of Tariffs Classification", "terseLabel": "Description of tariffs classification" } } }, "auth_ref": [] }, "us-gaap_DevelopedTechnologyRightsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DevelopedTechnologyRightsMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Developed Technology Rights [Member]", "terseLabel": "Developed Technology [Member]", "documentation": "Rights to developed technology, which can include the right to develop, use, market, sell, or offer for sale products, compounds, or intellectual property." } } }, "auth_ref": [ "r98", "r853", "r854", "r855", "r856", "r857", "r859", "r861", "r862" ] }, "srt_DirectorMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "DirectorMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Director [Member]", "terseLabel": "Board of Directors" } } }, "auth_ref": [ "r830", "r954" ] }, "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensation" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement [Text Block]", "terseLabel": "Stock-Based Compensation", "documentation": "The entire disclosure for share-based payment arrangement." } } }, "auth_ref": [ "r366", "r370", "r401", "r402", "r403", "r674" ] }, "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract", "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement [Abstract]" } } }, "auth_ref": [] }, "dei_DocumentFiscalPeriodFocus": { "xbrltype": "fiscalPeriodItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentFiscalPeriodFocus", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Fiscal Period Focus", "verboseLabel": "Document Fiscal Period Focus", "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY." } } }, "auth_ref": [] }, "dei_DocumentFiscalYearFocus": { "xbrltype": "gYearItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentFiscalYearFocus", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Fiscal Year Focus", "terseLabel": "Document Fiscal Year Focus", "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006." } } }, "auth_ref": [] }, "dei_DocumentPeriodEndDate": { "xbrltype": "dateItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentPeriodEndDate", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Period End Date", "terseLabel": "Document Period End Date", "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD." } } }, "auth_ref": [] }, "dei_DocumentQuarterlyReport": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentQuarterlyReport", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Quarterly Report", "terseLabel": "Document Quarterly Report", "documentation": "Boolean flag that is true only for a form used as an quarterly report." } } }, "auth_ref": [ "r707" ] }, "dei_DocumentTransitionReport": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentTransitionReport", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Transition Report", "terseLabel": "Document Transition Report", "documentation": "Boolean flag that is true only for a form used as a transition report." } } }, "auth_ref": [ "r739" ] }, "dei_DocumentType": { "xbrltype": "submissionTypeItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentType", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Type", "terseLabel": "Document Type", "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'." } } }, "auth_ref": [] }, "ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year [Member]", "terseLabel": "Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year" } } }, "auth_ref": [ "r750" ] }, "us-gaap_EarningsPerShareAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EarningsPerShareAbstract", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share [Abstract]", "terseLabel": "Net loss per share:", "verboseLabel": "Note 11. Net loss per share" } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareBasic": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EarningsPerShareBasic", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShareScheduleOfComputationOfBasicAndDilutedLossPerShareDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share, Basic", "terseLabel": "Basic", "totalLabel": "Earnings Per Share, Basic, Total", "verboseLabel": "Basic loss per share", "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period." } } }, "auth_ref": [ "r168", "r186", "r187", "r189", "r190", "r191", "r193", "r199", "r201", "r203", "r204", "r205", "r209", "r432", "r435", "r450", "r451", "r511", "r532", "r656" ] }, "us-gaap_EarningsPerShareDiluted": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EarningsPerShareDiluted", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShareScheduleOfComputationOfBasicAndDilutedLossPerShareDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share, Diluted", "terseLabel": "Diluted", "totalLabel": "Earnings Per Share, Diluted, Total", "verboseLabel": "Diluted loss per share", "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period." } } }, "auth_ref": [ "r168", "r186", "r187", "r189", "r190", "r191", "r193", "r201", "r203", "r204", "r205", "r209", "r432", "r435", "r450", "r451", "r511", "r532", "r656" ] }, "us-gaap_EarningsPerShareTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EarningsPerShareTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShare1" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share [Text Block]", "terseLabel": "Net Loss Per Share", "documentation": "The entire disclosure for earnings per share." } } }, "auth_ref": [ "r198", "r206", "r207", "r208" ] }, "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Effect of exchange rate changes on cash and cash equivalents", "label": "Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Continuing Operations", "documentation": "Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies. Excludes amounts for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r458" ] }, "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent", "terseLabel": "Statutory rate", "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss)." } } }, "auth_ref": [ "r175", "r413", "r422", "r676" ] }, "us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsInvestment": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EffectiveIncomeTaxRateReconciliationTaxCreditsInvestment", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Effective Income Tax Rate Reconciliation, Tax Credit, Investment, Percent", "terseLabel": "Investment tax credit, percentage", "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to investment tax credit." } } }, "auth_ref": [ "r817", "r887", "r888" ] }, "us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationStockCompensationExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]", "terseLabel": "Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [] }, "us-gaap_EmployeeStockOptionMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EmployeeStockOptionMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShareScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfDilutedNetIncomePerShareDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Employee Stock Option [Member]", "terseLabel": "Employee Stock Option", "verboseLabel": "Stock Options [Member]", "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time." } } }, "auth_ref": [] }, "dei_EntityAddressAddressLine1": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityAddressAddressLine1", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, Address Line One", "terseLabel": "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/2024", "localname": "EntityAddressAddressLine2", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, Address Line Two", "terseLabel": "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/2024", "localname": "EntityAddressCityOrTown", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, City or Town", "terseLabel": "Entity Address, City or Town", "documentation": "Name of the City or Town" } } }, "auth_ref": [] }, "dei_EntityAddressPostalZipCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityAddressPostalZipCode", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, Postal Zip Code", "terseLabel": "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/2024", "localname": "EntityAddressStateOrProvince", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, State or Province", "terseLabel": "Entity Address, State or Province", "documentation": "Name of the state or province." } } }, "auth_ref": [] }, "dei_EntityCentralIndexKey": { "xbrltype": "centralIndexKeyItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityCentralIndexKey", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Central Index Key", "terseLabel": "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": [ "r705" ] }, "dei_EntityCommonStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityCommonStockSharesOutstanding", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Common Stock, Shares Outstanding", "terseLabel": "Entity Common Stock, Shares Outstanding", "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument." } } }, "auth_ref": [] }, "dei_EntityCurrentReportingStatus": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityCurrentReportingStatus", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Current Reporting Status", "terseLabel": "Entity Current Reporting Status", "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure." } } }, "auth_ref": [] }, "dei_EntityEmergingGrowthCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityEmergingGrowthCompany", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Emerging Growth Company", "terseLabel": "Entity Emerging Growth Company", "documentation": "Indicate if registrant meets the emerging growth company criteria." } } }, "auth_ref": [ "r705" ] }, "dei_EntityExTransitionPeriod": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityExTransitionPeriod", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Ex Transition Period", "terseLabel": "Entity Ex Transition Period", "documentation": "Indicate if an emerging growth company has elected not to use the extended transition period for complying with any new or revised financial accounting standards." } } }, "auth_ref": [ "r790" ] }, "dei_EntityFileNumber": { "xbrltype": "fileNumberItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityFileNumber", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Securities Act File Number", "terseLabel": "Entity File Number", "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen." } } }, "auth_ref": [] }, "dei_EntityFilerCategory": { "xbrltype": "filerCategoryItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityFilerCategory", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Filer Category", "terseLabel": "Entity Filer Category", "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure." } } }, "auth_ref": [ "r705" ] }, "dei_EntityIncorporationStateCountryCode": { "xbrltype": "edgarStateCountryItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityIncorporationStateCountryCode", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Incorporation, State or Country Code", "terseLabel": "Entity Incorporation, State or Country Code", "documentation": "Two-character EDGAR code representing the state or country of incorporation." } } }, "auth_ref": [] }, "dei_EntityInteractiveDataCurrent": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityInteractiveDataCurrent", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Interactive Data Current", "terseLabel": "Entity Interactive Data Current", "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files)." } } }, "auth_ref": [ "r789" ] }, "dei_EntityRegistrantName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityRegistrantName", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Registrant Name", "terseLabel": "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": [ "r705" ] }, "dei_EntityShellCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityShellCompany", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Shell Company", "terseLabel": "Entity Shell Company", "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act." } } }, "auth_ref": [ "r705" ] }, "dei_EntitySmallBusiness": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntitySmallBusiness", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Small Business", "terseLabel": "Entity Small Business", "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)." } } }, "auth_ref": [ "r705" ] }, "dei_EntityTaxIdentificationNumber": { "xbrltype": "employerIdItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityTaxIdentificationNumber", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Tax Identification Number", "terseLabel": "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": [ "r705" ] }, "ecd_EqtyAwrdsAdjFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "EqtyAwrdsAdjFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Equity Awards Adjustments, Footnote [Text Block]", "terseLabel": "Equity Awards Adjustments, Footnote" } } }, "auth_ref": [ "r744" ] }, "ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Equity Awards Adjustments, Excluding Value Reported in the Compensation Table [Member]", "terseLabel": "Equity Awards Adjustments, Excluding Value Reported in Compensation Table" } } }, "auth_ref": [ "r785" ] }, "ecd_EqtyAwrdsAdjsMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "EqtyAwrdsAdjsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Equity Awards Adjustments [Member]", "terseLabel": "Equity Awards Adjustments" } } }, "auth_ref": [ "r785" ] }, "ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "EqtyAwrdsInSummryCompstnTblForAplblYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table [Member]", "terseLabel": "Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table" } } }, "auth_ref": [ "r785" ] }, "us-gaap_EquipmentMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EquipmentMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Equipment [Member]", "terseLabel": "Field Equipment [Member]", "documentation": "Tangible personal property used to produce goods and services." } } }, "auth_ref": [] }, "us-gaap_EquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EquityAbstract", "lang": { "en-us": { "role": { "label": "Equity [Abstract]" } } }, "auth_ref": [] }, "us-gaap_EquityComponentDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EquityComponentDomain", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Equity Component [Domain]", "terseLabel": "Equity Component", "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc." } } }, "auth_ref": [ "r10", "r138", "r163", "r164", "r165", "r181", "r182", "r183", "r185", "r191", "r194", "r196", "r211", "r235", "r238", "r269", "r348", "r420", "r421", "r429", "r430", "r431", "r433", "r434", "r435", "r441", "r442", "r443", "r444", "r445", "r446", "r449", "r459", "r461", "r462", "r463", "r464", "r465", "r469", "r472", "r484", "r529", "r547", "r548", "r549", "r567", "r623" ] }, "srt_EquityMethodInvesteeNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "EquityMethodInvesteeNameDomain", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Investment, Name [Domain]", "terseLabel": "Investment, Name" } } }, "auth_ref": [ "r228", "r229", "r231", "r428", "r791", "r792", "r793", "r893", "r894", "r895", "r896" ] }, "us-gaap_EquityMethodInvestmentOwnershipPercentage": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EquityMethodInvestmentOwnershipPercentage", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Equity Method Investment, Ownership Percentage", "terseLabel": "Ownership percentage", "documentation": "The percentage of ownership of common stock or equity participation in the investee accounted for under the equity method of accounting." } } }, "auth_ref": [ "r228" ] }, "us-gaap_EquityMethodInvestmentRealizedGainLossOnDisposal": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EquityMethodInvestmentRealizedGainLossOnDisposal", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Equity Method Investment, Realized Gain (Loss) on Disposal", "terseLabel": "Gain from disposal of investment in unconsolidated subsidiary", "totalLabel": "Equity Method Investment, Realized Gain (Loss) on Disposal, Total", "negatedLabel": "Gain from disposal of investment in unconsolidated subsidiary", "documentation": "Amount of gain (loss) on sale or disposal of an equity method investment." } } }, "auth_ref": [ "r809", "r810", "r811" ] }, "us-gaap_EquityMethodInvestments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EquityMethodInvestments", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Equity Method Investments", "terseLabel": "Equity method investment", "documentation": "This item represents the carrying amount on the entity's balance sheet of its investment in common stock of an equity method investee. This is not an indicator of the fair value of the investment, rather it is the initial cost adjusted for the entity's share of earnings and losses of the investee, adjusted for any distributions (dividends) and other than temporary impairment (OTTI) losses recognized." } } }, "auth_ref": [ "r210", "r216", "r219", "r226", "r802", "r835" ] }, "us-gaap_EquityMethodInvestmentsAndJointVenturesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EquityMethodInvestmentsAndJointVenturesAbstract", "lang": { "en-us": { "role": { "label": "Equity Method Investments and Joint Ventures [Abstract]" } } }, "auth_ref": [] }, "us-gaap_EquityMethodInvestmentsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EquityMethodInvestmentsDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureEquityMethodInvestment" ], "lang": { "en-us": { "role": { "label": "Equity Method Investments and Joint Ventures Disclosure [Text Block]", "terseLabel": "Equity method investment", "documentation": "The entire disclosure for equity method investments and joint ventures. Equity method investments are investments that give the investor the ability to exercise significant influence over the operating and financial policies of an investee. Joint ventures are entities owned and operated by a small group of businesses as a separate and specific business or project for the mutual benefit of the members of the group." } } }, "auth_ref": [ "r136", "r230", "r233", "r793" ] }, "ftci_EquityMethodInvestmentsFinancialInformationTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "EquityMethodInvestmentsFinancialInformationTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSalesOfEquityMethodInvestmentsTables" ], "lang": { "en-us": { "role": { "documentation": "Equity method investments financial information.", "label": "Equity Method Investments Financial Information [Table Text Block]", "terseLabel": "Summary of Equity Method Investments Financial Information" } } }, "auth_ref": [] }, "us-gaap_EquityMethodInvestmentsPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EquityMethodInvestmentsPolicy", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Equity Method Investments [Policy Text Block]", "terseLabel": "Equity method investments", "documentation": "Disclosure of accounting policy for equity method of accounting for investments and other interests. Investment includes, but is not limited to, unconsolidated subsidiary, corporate joint venture, noncontrolling interest in real estate venture, limited partnership, and limited liability company. Information includes, but is not limited to, ownership percentage, reason equity method is or is not considered appropriate, and accounting policy election for distribution received." } } }, "auth_ref": [ "r5", "r42", "r229" ] }, "us-gaap_EquityMethodInvestmentsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EquityMethodInvestmentsTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSalesOfEquityMethodInvestmentsTables" ], "lang": { "en-us": { "role": { "label": "Equity Method Investments [Table Text Block]", "terseLabel": "Summary of Equity Method Investments", "documentation": "Tabular disclosure of equity method investments including, but not limited to, name of each investee or group of investments, percentage ownership, difference between recorded amount of an investment and the value of the underlying equity in the net assets, and summarized financial information." } } }, "auth_ref": [ "r227" ] }, "ecd_EquityValuationAssumptionDifferenceFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "EquityValuationAssumptionDifferenceFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Equity Valuation Assumption Difference, Footnote [Text Block]", "terseLabel": "Equity Valuation Assumption Difference, Footnote" } } }, "auth_ref": [ "r754" ] }, "ecd_ErrCompAnalysisTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ErrCompAnalysisTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Erroneous Compensation Analysis [Text Block]", "terseLabel": "Erroneous Compensation Analysis" } } }, "auth_ref": [ "r712", "r722", "r732", "r764" ] }, "ecd_ErrCompRecoveryTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ErrCompRecoveryTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Erroneously Awarded Compensation Recovery [Table]", "terseLabel": "Erroneously Awarded Compensation Recovery" } } }, "auth_ref": [ "r709", "r719", "r729", "r761" ] }, "ecd_ExecutiveCategoryAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ExecutiveCategoryAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Executive Category [Axis]", "terseLabel": "Executive Category:" } } }, "auth_ref": [ "r760" ] }, "us-gaap_FairValueMeasurementPolicyPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueMeasurementPolicyPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Fair Value Measurement, Policy [Policy Text Block]", "terseLabel": "Fair Value of Financial Instruments", "documentation": "Disclosure of accounting policy for fair value measurements of financial and non-financial assets, liabilities and instruments classified in shareholders' equity. Disclosures include, but are not limited to, how an entity that manages a group of financial assets and liabilities on the basis of its net exposure measures the fair value of those assets and liabilities." } } }, "auth_ref": [] }, "ftci_FairValueOfRetainedEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "FairValueOfRetainedEquipment", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Fair Value Of Retained Equipment", "label": "Fair Value Of Retained Equipment", "terseLabel": "Fair value of retained equipment" } } }, "auth_ref": [] }, "ftci_FcxSolarLlcMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "FcxSolarLlcMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Fcx Solar Llc [Member]", "label": "Fcx Solar Llc [Member]", "terseLabel": "Fcx Solar Llc [Member]" } } }, "auth_ref": [] }, "ftci_FernwehEngagedOperatorCompanyLlcMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "FernwehEngagedOperatorCompanyLlcMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "documentation": "Fernweh Engaged Operator Company LLC [Member]", "label": "Fernweh Engaged Operator Company LLC [Member]", "terseLabel": "Fernweh Engaged Operator Company LLC [Member]" } } }, "auth_ref": [] }, "us-gaap_FinancingInterestExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinancingInterestExpense", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Financing Interest Expense", "terseLabel": "Interest expense", "documentation": "This element represents interest incurred for borrowed money which was used to produce goods or render services." } } }, "auth_ref": [ "r72" ] }, "us-gaap_FiniteLivedIntangibleAssetUsefulLife": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetUsefulLife", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Asset, Useful Life", "terseLabel": "Intangible assets, estimated useful life", "documentation": "Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [] }, "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Accumulated Amortization", "terseLabel": "Accumulated amortization", "negatedLabel": "Accumulated amortization", "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r148", "r250", "r263", "r664" ] }, "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets by Major Class [Axis]", "documentation": "Information by major type or class of finite-lived intangible assets." } } }, "auth_ref": [ "r257", "r259", "r260", "r261", "r262", "r263", "r266", "r267", "r505", "r506", "r642" ] }, "us-gaap_FiniteLivedIntangibleAssetsGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsGross", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Gross", "terseLabel": "Intangible assets, gross", "totalLabel": "Finite-Lived Intangible Assets, Gross, Total", "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r250", "r263", "r506", "r664" ] }, "us-gaap_FiniteLivedIntangibleAssetsLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsLineItems", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r257", "r263", "r266", "r267", "r268", "r505", "r642", "r664" ] }, "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]", "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company." } } }, "auth_ref": [ "r257", "r259", "r260", "r261", "r262", "r263", "r266", "r267", "r642" ] }, "us-gaap_FiniteLivedIntangibleAssetsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsNet", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Net", "periodEndLabel": "Finite-Lived Intangible Assets, Net, Ending Balance", "periodStartLabel": "Finite-Lived Intangible Assets, Net, Beginning Balance", "terseLabel": "Intangible assets, net", "totalLabel": "Intangible assets, net", "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r505", "r859" ] }, "us-gaap_FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Remaining Amortization Period", "terseLabel": "Amortized period", "documentation": "Remaining amortization period of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r505" ] }, "ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery due to Disqualification of Tax Benefits, Amount", "terseLabel": "Forgone Recovery due to Disqualification of Tax Benefits, Amount" } } }, "auth_ref": [ "r716", "r726", "r736", "r768" ] }, "ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ForgoneRecoveryDueToExpenseOfEnforcementAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery due to Expense of Enforcement, Amount", "terseLabel": "Forgone Recovery due to Expense of Enforcement, Amount" } } }, "auth_ref": [ "r716", "r726", "r736", "r768" ] }, "ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ForgoneRecoveryDueToViolationOfHomeCountryLawAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery due to Violation of Home Country Law, Amount", "terseLabel": "Forgone Recovery due to Violation of Home Country Law, Amount" } } }, "auth_ref": [ "r716", "r726", "r736", "r768" ] }, "ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ForgoneRecoveryExplanationOfImpracticabilityTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery, Explanation of Impracticability [Text Block]", "terseLabel": "Forgone Recovery, Explanation of Impracticability" } } }, "auth_ref": [ "r716", "r726", "r736", "r768" ] }, "ecd_ForgoneRecoveryIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ForgoneRecoveryIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r716", "r726", "r736", "r768" ] }, "ftci_ForwardStockSplit": { "xbrltype": "pureItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "ForwardStockSplit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShareAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Forward stock split", "label": "Forward stock split", "verboseLabel": "Forward stock split" } } }, "auth_ref": [] }, "ftci_ForwardStockSplitTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "ForwardStockSplitTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "documentation": "Forward stock split.", "label": "Corporate Conversion And Stock Split Policy [Text Block]", "terseLabel": "Forward Stock Split" } } }, "auth_ref": [] }, "ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year [Member]", "terseLabel": "Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year" } } }, "auth_ref": [ "r749" ] }, "us-gaap_GeneralAndAdministrativeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GeneralAndAdministrativeExpense", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "General and Administrative Expense", "terseLabel": "General and administrative", "totalLabel": "General and Administrative Expense, Total", "verboseLabel": "General and administrative expense", "documentation": "The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line." } } }, "auth_ref": [ "r74", "r603" ] }, "us-gaap_GeneralAndAdministrativeExpenseMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GeneralAndAdministrativeExpenseMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationStockCompensationExpenseDetails" ], "lang": { "en-us": { "role": { "label": "General and Administrative Expense [Member]", "terseLabel": "General and administrative [Member]", "documentation": "Primary financial statement caption encompassing general and administrative expense." } } }, "auth_ref": [ "r74" ] }, "us-gaap_Goodwill": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "Goodwill", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfGoodwillActivityDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Goodwill", "periodEndLabel": "Balance at end of period", "periodStartLabel": "Balance at beginning of period", "terseLabel": "Goodwill", "totalLabel": "Goodwill, Total", "documentation": "Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized." } } }, "auth_ref": [ "r147", "r252", "r507", "r660", "r663", "r677", "r685", "r842", "r849" ] }, "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract", "lang": { "en-us": { "role": { "label": "Goodwill and Intangible Assets Disclosure [Abstract]" } } }, "auth_ref": [] }, "us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GoodwillAndIntangibleAssetsDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwill1" ], "lang": { "en-us": { "role": { "label": "Goodwill and Intangible Assets Disclosure [Text Block]", "terseLabel": "Intangible assets, net and goodwill", "documentation": "The entire disclosure for goodwill and intangible assets." } } }, "auth_ref": [ "r840", "r852" ] }, "us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GoodwillAndIntangibleAssetsGoodwillPolicy", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]", "verboseLabel": "Goodwill", "documentation": "Disclosure of accounting policy for goodwill. This accounting policy also may address how an entity assesses and measures impairment of goodwill, how reporting units are determined, how goodwill is allocated to such units, and how the fair values of the reporting units are determined." } } }, "auth_ref": [ "r251", "r256", "r663" ] }, "us-gaap_GoodwillForeignCurrencyTranslationGainLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GoodwillForeignCurrencyTranslationGainLoss", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfGoodwillActivityDetails" ], "lang": { "en-us": { "role": { "label": "Goodwill, Foreign Currency Translation Gain (Loss)", "terseLabel": "Translation", "documentation": "Amount of foreign currency translation gain (loss) which increases (decreases) asset representing future economic benefit from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized." } } }, "auth_ref": [ "r255" ] }, "us-gaap_GoodwillImpairmentLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GoodwillImpairmentLoss", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Goodwill, Impairment Loss", "terseLabel": "Impairment of goodwill", "documentation": "Amount of impairment loss from asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized." } } }, "auth_ref": [ "r7", "r253", "r254", "r256", "r663", "r677" ] }, "us-gaap_GrossProfit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GrossProfit", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Gross Profit", "terseLabel": "Gross loss", "totalLabel": "Gross profit (loss)", "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity." } } }, "auth_ref": [ "r68", "r72", "r112", "r174", "r232", "r298", "r299", "r300", "r301", "r302", "r303", "r304", "r305", "r306", "r457", "r658", "r659", "r824", "r825", "r826", "r827", "r828", "r883" ] }, "ftci_HxTrackerMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "HxTrackerMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "HX Tracker [Member]", "label": "HX Tracker [Member]", "terseLabel": "HX Tracker" } } }, "auth_ref": [] }, "us-gaap_IPOMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IPOMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "IPO [Member]", "documentation": "First sale of stock by a private company to the public." } } }, "auth_ref": [] }, "ftci_ImpactOfAdoption": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "ImpactOfAdoption", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableAllowanceForCreditLossDetailsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Impact of adoption of ASU 2016-13, effective January 1, 2023", "label": "Impact Of Adoption", "documentation": "Impact of adoption." } } }, "auth_ref": [] }, "ftci_ImpactOfStockSplit": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "ImpactOfStockSplit", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "documentation": "Impact of stock split.", "label": "Impact of Stock Split" } } }, "auth_ref": [] }, "us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ImpairedFinancingReceivableUnpaidPrincipalBalance", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Unpaid receivable balance totaling", "label": "Impaired Financing Receivable, Unpaid Principal Balance", "documentation": "Amount of unpaid principal balance of impaired financing receivables with related allowance for credit losses and without related allowance for credit losses." } } }, "auth_ref": [ "r115" ] }, "us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Impairment or Disposal of Long-Lived Assets, Policy [Policy Text Block]", "terseLabel": "Impairment", "documentation": "Disclosure of accounting policy for recognizing and measuring the impairment of long-lived assets. An entity also may disclose its accounting policy for long-lived assets to be sold. This policy excludes goodwill and intangible assets." } } }, "auth_ref": [ "r0", "r89" ] }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest", "terseLabel": "Pre-tax income (loss) from company's operations", "totalLabel": "Loss before income taxes", "verboseLabel": "Loss before income taxes", "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest." } } }, "auth_ref": [ "r69", "r107", "r112", "r512", "r527", "r658", "r659", "r824", "r825", "r826", "r827", "r828" ] }, "us-gaap_IncomeLossFromEquityMethodInvestmentsNetOfDividendsOrDistributions": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeLossFromEquityMethodInvestmentsNetOfDividendsOrDistributions", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Income (Loss) from Equity Method Investments, Net of Dividends or Distributions", "terseLabel": "Loss from unconsolidated subsidiary", "totalLabel": "Income (Loss) from Equity Method Investments, Net of Dividends or Distributions, Total", "negatedLabel": "Loss from unconsolidated subsidiary", "documentation": "This element represents the undistributed income (or loss) of equity method investments, net of dividends or other distributions received from unconsolidated subsidiaries, certain corporate joint ventures, and certain noncontrolled corporations; such investments are accounted for under the equity method of accounting. This element excludes distributions that constitute a return of investment, which are classified as investing activities." } } }, "auth_ref": [ "r7" ] }, "us-gaap_IncomeStatementAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeStatementAbstract", "lang": { "en-us": { "role": { "label": "Income Statement [Abstract]", "terseLabel": "Statement of operations" } } }, "auth_ref": [] }, "us-gaap_IncomeStatementLocationAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeStatementLocationAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationStockCompensationExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Income Statement Location [Axis]", "documentation": "Information by location in statement of income where disaggregated amount has been reported." } } }, "auth_ref": [ "r270", "r276", "r279", "r453", "r454", "r455", "r544", "r546", "r608", "r642", "r678", "r924" ] }, "us-gaap_IncomeStatementLocationDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeStatementLocationDomain", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationStockCompensationExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Income Statement Location [Domain]", "documentation": "Location in statement of income where disaggregated amount has been reported." } } }, "auth_ref": [ "r276", "r279", "r453", "r454", "r455", "r544", "r546", "r608", "r642", "r678", "r924" ] }, "us-gaap_IncomeTaxContingencyLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeTaxContingencyLineItems", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Income Tax Contingency [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [] }, "us-gaap_IncomeTaxContingencyTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeTaxContingencyTable", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Income Tax Contingency [Table]", "documentation": "Disclosure of information about tax positions taken in the tax returns filed or to be filed for which it is more likely than not that the tax position will not be sustained upon examination by taxing authorities and other income tax contingencies. Includes, but is not limited to, interest and penalties, reconciliation of unrecognized tax benefits, unrecognized tax benefits that would affect the effective tax rate, tax years that remain subject to examination by tax jurisdictions, and information about positions for which it is reasonably possible that amounts unrecognized will significantly change within 12 months." } } }, "auth_ref": [ "r889" ] }, "us-gaap_IncomeTaxDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeTaxDisclosureAbstract", "lang": { "en-us": { "role": { "label": "Income Tax Disclosure [Abstract]" } } }, "auth_ref": [] }, "us-gaap_IncomeTaxDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeTaxDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxes" ], "lang": { "en-us": { "role": { "label": "Income Tax Disclosure [Text Block]", "terseLabel": "Income Taxes", "documentation": "The entire disclosure for income tax." } } }, "auth_ref": [ "r175", "r411", "r413", "r414", "r415", "r416", "r418", "r419", "r423", "r425", "r426", "r427", "r563", "r676" ] }, "us-gaap_IncomeTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeTaxExpenseBenefit", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Income Tax Expense (Benefit)", "terseLabel": "(Benefit from) income taxes", "totalLabel": "Income Tax Expense (Benefit), Total", "verboseLabel": "Income tax expense (benefit)", "negatedLabel": "(Provision for) benefit from income taxes", "negatedTerseLabel": "Income tax expense (benefit)", "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations." } } }, "auth_ref": [ "r123", "r135", "r195", "r196", "r210", "r215", "r219", "r412", "r413", "r424", "r533", "r676" ] }, "us-gaap_IncomeTaxesPaid": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeTaxesPaid", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Income Taxes Paid", "terseLabel": "Cash paid during the period for taxes, net of refunds", "documentation": "Amount, before refund, of cash paid to foreign, federal, state, and local jurisdictions as income tax." } } }, "auth_ref": [ "r22", "r81", "r812", "r891", "r892" ] }, "us-gaap_IncreaseDecreaseInAccountsPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInAccountsPayable", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Accounts Payable", "terseLabel": "Accounts payable", "totalLabel": "Increase (Decrease) in Accounts Payable, Total", "documentation": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business." } } }, "auth_ref": [ "r6" ] }, "us-gaap_IncreaseDecreaseInAccountsReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInAccountsReceivable", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Accounts Receivable", "negatedLabel": "Accounts receivable", "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services." } } }, "auth_ref": [ "r6" ] }, "us-gaap_IncreaseDecreaseInDeferredRevenue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInDeferredRevenue", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Deferred Revenue", "terseLabel": "Deferred revenue", "documentation": "Amount of increase (decrease) in deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable." } } }, "auth_ref": [ "r643" ] }, "us-gaap_IncreaseDecreaseInInventories": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInInventories", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Inventories", "totalLabel": "Increase (Decrease) in Inventories, Total", "negatedLabel": "Inventories", "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities." } } }, "auth_ref": [ "r6" ] }, "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInOperatingCapitalAbstract", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Operating Capital [Abstract]", "terseLabel": "Impact on cash from changes in operating assets and liabilities:" } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Other Accounts Payable and Accrued Liabilities", "terseLabel": "Accruals and other current liabilities", "documentation": "The increase (decrease) during the reporting period in other obligations or expenses incurred but not yet paid." } } }, "auth_ref": [ "r6" ] }, "us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInOtherNoncurrentLiabilities", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Other Noncurrent Liabilities", "terseLabel": "Other non-current liabilities", "documentation": "Amount of increase (decrease) in noncurrent operating liabilities classified as other." } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInOtherOperatingAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInOtherOperatingAssets", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Other Operating Assets", "totalLabel": "Increase (Decrease) in Other Operating Assets, Total", "negatedLabel": "Other assets", "documentation": "Amount of increase (decrease) in operating assets classified as other." } } }, "auth_ref": [ "r6" ] }, "us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInOtherOperatingCapitalNet", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Other Operating Assets and Liabilities, Net", "totalLabel": "Increase (Decrease) in Other Operating Assets and Liabilities, Net, Total", "negatedLabel": "Lease payments and other, net", "documentation": "Amount of increase (decrease) in operating assets after deduction of operating liabilities classified as other." } } }, "auth_ref": [ "r6" ] }, "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Prepaid Expense and Other Assets", "totalLabel": "Increase (Decrease) in Prepaid Expense and Other Assets, Total", "negatedLabel": "Prepaid and other current assets", "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other." } } }, "auth_ref": [ "r6" ] }, "ftci_IncreaseInCommonStockIssuedAndOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "IncreaseInCommonStockIssuedAndOutstanding", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Increase in common stock issued and outstanding.", "label": "Increase in Common stock Issued and Outstanding", "terseLabel": "Increase in common stock issued and outstanding" } } }, "auth_ref": [] }, "us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IndefiniteLivedIntangibleAssetsByMajorClassLineItems", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Indefinite-Lived Intangible Assets [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r257", "r265", "r268", "r664" ] }, "ecd_IndividualAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "IndividualAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure", "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure", "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Individual [Axis]", "terseLabel": "Individual:" } } }, "auth_ref": [ "r716", "r726", "r736", "r760", "r768", "r772", "r780" ] }, "ecd_InsiderTradingArrLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "InsiderTradingArrLineItems", "lang": { "en-us": { "role": { "label": "Insider Trading Arrangements [Line Items]", "terseLabel": "Insider Trading Arrangements:" } } }, "auth_ref": [ "r778" ] }, "ecd_InsiderTradingPoliciesProcLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "InsiderTradingPoliciesProcLineItems", "lang": { "en-us": { "role": { "label": "Insider Trading Policies and Procedures [Line Items]", "terseLabel": "Insider Trading Policies and Procedures:" } } }, "auth_ref": [ "r708", "r784" ] }, "ecd_InsiderTrdPoliciesProcAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "InsiderTrdPoliciesProcAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" ], "lang": { "en-us": { "role": { "label": "Insider Trading Policies and Procedures Adopted [Flag]", "terseLabel": "Insider Trading Policies and Procedures Adopted" } } }, "auth_ref": [ "r708", "r784" ] }, "ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "InsiderTrdPoliciesProcNotAdoptedTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" ], "lang": { "en-us": { "role": { "label": "Insider Trading Policies and Procedures Not Adopted [Text Block]", "terseLabel": "Insider Trading Policies and Procedures Not Adopted" } } }, "auth_ref": [ "r708", "r784" ] }, "us-gaap_IntangibleAssetsFiniteLivedPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IntangibleAssetsFiniteLivedPolicy", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Intangible Assets, Finite-Lived, Policy [Policy Text Block]", "terseLabel": "Intangible assets, net", "documentation": "Disclosure of accounting policy for finite-lived intangible assets. This accounting policy also might address: (1) the amortization method used; (2) the useful lives of such assets; and (3) how the entity assesses and measures impairment of such assets." } } }, "auth_ref": [ "r501", "r502", "r503", "r505", "r653", "r852" ] }, "us-gaap_IntangibleAssetsNetExcludingGoodwill": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IntangibleAssetsNetExcludingGoodwill", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Intangible Assets, Net (Excluding Goodwill)", "terseLabel": "Intangible assets, net", "totalLabel": "Intangible Assets, Net (Excluding Goodwill), Total", "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." } } }, "auth_ref": [ "r257", "r859", "r860" ] }, "us-gaap_InterestIncomeExpenseNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InterestIncomeExpenseNet", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Interest income (expense), net", "label": "Interest Income (Expense), Net", "totalLabel": "Interest Income (Expense), Net, Total", "negatedLabel": "Interest expense", "documentation": "Amount of interest income (expense) classified as operating." } } }, "auth_ref": [ "r508", "r825" ] }, "us-gaap_InventoryDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InventoryDisclosureAbstract", "lang": { "en-us": { "role": { "label": "Inventory Disclosure [Abstract]" } } }, "auth_ref": [] }, "us-gaap_InventoryDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InventoryDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureInventoriesNet" ], "lang": { "en-us": { "role": { "terseLabel": "Inventories", "label": "Inventory Disclosure [Text Block]", "documentation": "The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory." } } }, "auth_ref": [ "r245" ] }, "us-gaap_InventoryFinishedGoods": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InventoryFinishedGoods", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureInventoriesNetScheduleOfInventoriesDetails" ], "lang": { "en-us": { "role": { "label": "Inventory, Finished Goods, Gross", "terseLabel": "Finished goods", "totalLabel": "Inventory, Finished Goods, Gross, Total", "documentation": "Amount before valuation and LIFO reserves of completed merchandise or goods expected to be sold within one year or operating cycle, if longer." } } }, "auth_ref": [ "r803" ] }, "us-gaap_InventoryImpairmentPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InventoryImpairmentPolicy", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Inventory Impairment, Policy [Policy Text Block]", "terseLabel": "Impairment", "documentation": "Disclosure of accounting policy for recognizing inventory losses, including, but not limited to, substantial and unusual losses resulting from the subsequent measurement of inventory due to physical deterioration, obsolescence, or changes in price levels." } } }, "auth_ref": [ "r838" ] }, "us-gaap_InventoryNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InventoryNet", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureInventoriesNetScheduleOfInventoriesDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Inventory, Net", "terseLabel": "Inventories", "totalLabel": "Total", "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer." } } }, "auth_ref": [ "r154", "r647", "r685" ] }, "us-gaap_InventoryPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InventoryPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Inventory, Policy [Policy Text Block]", "terseLabel": "Inventories, net", "documentation": "Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost." } } }, "auth_ref": [ "r125", "r143", "r153", "r245", "r246", "r247", "r500", "r654" ] }, "us-gaap_InventoryValuationReserves": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InventoryValuationReserves", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureInventoriesNetScheduleOfInventoriesDetails" ], "lang": { "en-us": { "role": { "label": "Inventory Valuation Reserves", "periodEndLabel": "Inventory Valuation Reserves, Ending Balance", "periodStartLabel": "Inventory Valuation Reserves, Beginning Balance", "terseLabel": "Allowance for slow-moving and obsolete inventory", "negatedLabel": "Allowance for slow-moving and obsolete inventory", "documentation": "Amount of valuation reserve for inventory." } } }, "auth_ref": [ "r86", "r804" ] }, "ftci_InvestmentToAcquireOwnershipInterest": { "xbrltype": "percentItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "InvestmentToAcquireOwnershipInterest", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Investment to acquire ownership interest", "label": "Investment to acquire ownership interest", "terseLabel": "Investment to acquire ownership interest" } } }, "auth_ref": [] }, "ftci_JobsActAccountingElectionPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "JobsActAccountingElectionPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "documentation": "Jobs act accounting election policy text block.", "label": "Jobs Act Accounting Election Policy [Text Block]", "terseLabel": "JOBS Act Accounting Election" } } }, "auth_ref": [] }, "us-gaap_LeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LeaseCost", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Lease, Cost", "terseLabel": "Total lease cost", "totalLabel": "Total lease cost", "negatedTotalLabel": "Total lease cost", "documentation": "Amount of lease cost recognized by lessee for lease contract." } } }, "auth_ref": [ "r477", "r684" ] }, "us-gaap_LeaseCostTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LeaseCostTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "label": "Lease, Cost [Table Text Block]", "terseLabel": "Summary of Lease Expense", "documentation": "Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income." } } }, "auth_ref": [ "r904" ] }, "us-gaap_LeaseholdImprovementsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LeaseholdImprovementsMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Leasehold Improvements [Member]", "documentation": "Additions or improvements to assets held under a lease arrangement." } } }, "auth_ref": [ "r88", "r481" ] }, "us-gaap_LeasesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LeasesAbstract", "lang": { "en-us": { "role": { "label": "Leases [Abstract]" } } }, "auth_ref": [] }, "us-gaap_LesseeLeaseDescriptionLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeLeaseDescriptionLineItems", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Lease, Description [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r476", "r482" ] }, "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block]", "terseLabel": "Summary of Future Remaining Lease Payments Obligations", "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position." } } }, "auth_ref": [ "r905" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityPaymentsDue", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, to be Paid", "totalLabel": "Total lease payments", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease." } } }, "auth_ref": [ "r480" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, to be Paid, after Year Five", "terseLabel": "Thereafter", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r480" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, to be Paid, Year One", "terseLabel": "Remainder of 2024", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r480" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, to be Paid, Year Five", "terseLabel": "2028", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r480" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, to be Paid, Year Four", "terseLabel": "2027", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r480" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, to be Paid, Year Three", "terseLabel": "2026", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r480" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, to be Paid, Year Two", "terseLabel": "2025", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r480" ] }, "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, Undiscounted Excess Amount", "terseLabel": "Less imputed interest", "negatedLabel": "Less imputed interest", "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease." } } }, "auth_ref": [ "r480" ] }, "us-gaap_LesseeOperatingLeasesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeasesTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureLeases" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Leases [Text Block]", "terseLabel": "Leases", "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." } } }, "auth_ref": [ "r471" ] }, "us-gaap_LetterOfCreditMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LetterOfCreditMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Letter of Credit [Member]", "terseLabel": "Letter of Credit", "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)." } } }, "auth_ref": [] }, "us-gaap_Liabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "Liabilities", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Liabilities", "totalLabel": "Total liabilities", "documentation": "Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others." } } }, "auth_ref": [ "r13", "r47", "r48", "r49", "r51", "r52", "r53", "r54", "r174", "r232", "r298", "r299", "r300", "r301", "r302", "r303", "r304", "r305", "r306", "r438", "r439", "r440", "r457", "r578", "r657", "r703", "r883", "r908", "r909" ] }, "us-gaap_LiabilitiesAndStockholdersEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LiabilitiesAndStockholdersEquity", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Liabilities and Equity", "totalLabel": "Total liabilities and stockholders' equity", "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any." } } }, "auth_ref": [ "r62", "r105", "r523", "r685", "r815", "r836", "r900" ] }, "us-gaap_LiabilitiesAndStockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LiabilitiesAndStockholdersEquityAbstract", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Liabilities and Equity [Abstract]", "terseLabel": "LIABILITIES AND STOCKHOLDERS' EQUITY" } } }, "auth_ref": [] }, "us-gaap_LiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LiabilitiesCurrent", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Liabilities, Current", "terseLabel": "Current liabilities", "totalLabel": "Total current liabilities", "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer." } } }, "auth_ref": [ "r49", "r142", "r174", "r232", "r298", "r299", "r300", "r301", "r302", "r303", "r304", "r305", "r306", "r438", "r439", "r440", "r457", "r685", "r883", "r908", "r909" ] }, "us-gaap_LiabilitiesCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LiabilitiesCurrentAbstract", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Liabilities, Current [Abstract]", "terseLabel": "Current liabilities" } } }, "auth_ref": [] }, "us-gaap_LiabilityForUnpaidClaimsAndClaimsAdjustmentExpenseNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LiabilityForUnpaidClaimsAndClaimsAdjustmentExpenseNet", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Liability for Unpaid Claims and Claims Adjustment Expense, Net", "periodEndLabel": "Liability for Unpaid Claims and Claims Adjustment Expense, Net, Ending Balance", "periodStartLabel": "Liability for Unpaid Claims and Claims Adjustment Expense, Net, Beginning Balance", "terseLabel": "Liability For Unpaid Claims And Claims Adjustment Expense", "documentation": "Liability as of the balance sheet date for amounts representing estimated cost of settling unpaid claims under the terms of the underlying insurance policies, less estimated reinsurance recoveries on such claims. This includes an estimate for claims which have been incurred but not reported. Claim adjustment expenses represent the costs estimated to be incurred in the settlement of unpaid claims." } } }, "auth_ref": [ "r540", "r541", "r917" ] }, "us-gaap_LineOfCreditFacilityCommitmentFeePercentage": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LineOfCreditFacilityCommitmentFeePercentage", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Line of Credit Facility, Commitment Fee Percentage", "terseLabel": "Commitment fees rate", "documentation": "The fee, expressed as a percentage of the line of credit facility, for the line of credit facility regardless of whether the facility has been used." } } }, "auth_ref": [] }, "us-gaap_LineOfCreditFacilityFairValueOfAmountOutstanding": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LineOfCreditFacilityFairValueOfAmountOutstanding", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Line of Credit Facility, Fair Value of Amount Outstanding", "terseLabel": "Credit Facility amount", "documentation": "Fair value of the amount outstanding under the credit facility." } } }, "auth_ref": [ "r456" ] }, "ftci_LiquidityPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "LiquidityPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "documentation": "Liquidity Policy [Text Block]", "label": "Liquidity Policy [Text Block]", "terseLabel": "Liquidity" } } }, "auth_ref": [] }, "ftci_LiquidityRatioAmountMinimumLimit": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "LiquidityRatioAmountMinimumLimit", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Liquidity Ratio Amount, Minimum Limit", "label": "Liquidity Ratio Amount, Minimum Limit", "terseLabel": "Liquidity ratio amount, minimum limit" } } }, "auth_ref": [] }, "dei_LocalPhoneNumber": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "LocalPhoneNumber", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Local Phone Number", "terseLabel": "Local Phone Number", "documentation": "Local phone number for entity." } } }, "auth_ref": [] }, "us-gaap_LossContingencyDamagesSoughtValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LossContingencyDamagesSoughtValue", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Loss Contingency, Damages Sought, Value", "terseLabel": "Damages sought value", "documentation": "The value (monetary amount) of the award the plaintiff seeks in the legal matter." } } }, "auth_ref": [ "r869", "r870", "r871" ] }, "srt_MajorCustomersAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "MajorCustomersAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Customer [Axis]" } } }, "auth_ref": [ "r222", "r672", "r687", "r690", "r886", "r921", "r925", "r926", "r928", "r929", "r930", "r931", "r932", "r933", "r934", "r935", "r936", "r937", "r938", "r939", "r940", "r941", "r942", "r943", "r944", "r945", "r946", "r947", "r948", "r949", "r950", "r951", "r952" ] }, "ftci_MajorCustomersMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "MajorCustomersMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Major Customers [Member]", "label": "Major Customers [Member]" } } }, "auth_ref": [] }, "us-gaap_MalpracticeLossContingencyLettersOfCreditAndSuretyBonds": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "MalpracticeLossContingencyLettersOfCreditAndSuretyBonds", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Outstanding surety and performance bonds", "label": "Malpractice Loss Contingency, Letters of Credit and Surety Bonds", "documentation": "Amount of letters of credit and other surety bonds that are available for the future payment of malpractice claims." } } }, "auth_ref": [ "r109" ] }, "ftci_MasterProjectSupplyAgreementsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "MasterProjectSupplyAgreementsMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Master project supply agreements [Member]", "label": "Master Project Supply Agreements [Member]", "documentation": "Master Project Supply Agreements [Member]" } } }, "auth_ref": [] }, "srt_MaximumMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "MaximumMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Maximum [Member]", "terseLabel": "Maximum [Member]", "verboseLabel": "Maximum [Member]" } } }, "auth_ref": [ "r286", "r287", "r288", "r289", "r365", "r409", "r452", "r499", "r543", "r545", "r557", "r570", "r571", "r631", "r632", "r633", "r634", "r635", "r640", "r641", "r661", "r670", "r673", "r679", "r680", "r681", "r682", "r688", "r885", "r910", "r911", "r912", "r913", "r914", "r915" ] }, "ecd_MeasureAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "MeasureAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Measure [Axis]", "terseLabel": "Measure:" } } }, "auth_ref": [ "r752" ] }, "ecd_MeasureName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "MeasureName", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Measure Name", "terseLabel": "Name" } } }, "auth_ref": [ "r752" ] }, "srt_MinimumMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "MinimumMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Minimum [Member]", "terseLabel": "Minimum [Member]" } } }, "auth_ref": [ "r286", "r287", "r288", "r289", "r365", "r409", "r452", "r499", "r543", "r545", "r557", "r570", "r571", "r631", "r632", "r633", "r634", "r635", "r640", "r641", "r661", "r670", "r673", "r679", "r680", "r681", "r688", "r885", "r910", "r911", "r912", "r913", "r914", "r915" ] }, "ecd_MnpiDiscTimedForCompValFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "MnpiDiscTimedForCompValFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "MNPI Disclosure Timed for Compensation Value [Flag]", "terseLabel": "MNPI Disclosure Timed for Compensation Value" } } }, "auth_ref": [ "r771" ] }, "us-gaap_MoneyMarketFundsAtCarryingValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "MoneyMarketFundsAtCarryingValue", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Money Market Funds, at Carrying Value", "terseLabel": "Carrying value of money market fund", "documentation": "Investment in short-term money-market instruments (such as commercial paper, banker's acceptances, repurchase agreements, government securities, certificates of deposit, and so forth) which are highly liquid (that is, readily convertible to known amounts of cash) and so near their maturity that they present an insignificant risk of changes in value because of changes in interest rates. Generally, only investments with original maturities of three months or less qualify as cash equivalents by definition. Original maturity means an original maturity to the entity holding the investment. For example, both a three-month US Treasury bill and a three-year Treasury note purchased three months from maturity qualify as cash equivalents. However, a Treasury note purchased three-years ago does not become a cash equivalent when its remaining maturity is three months." } } }, "auth_ref": [] }, "ecd_MtrlTermsOfTrdArrTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "MtrlTermsOfTrdArrTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Material Terms of Trading Arrangement [Text Block]", "terseLabel": "Material Terms of Trading Arrangement" } } }, "auth_ref": [ "r779" ] }, "srt_NameOfMajorCustomerDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "NameOfMajorCustomerDomain", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Customer [Domain]" } } }, "auth_ref": [ "r222", "r672", "r687", "r690", "r886", "r921", "r925", "r926", "r928", "r929", "r930", "r931", "r932", "r933", "r934", "r935", "r936", "r937", "r938", "r939", "r940", "r941", "r942", "r943", "r944", "r945", "r946", "r947", "r948", "r949", "r950", "r951", "r952" ] }, "ecd_NamedExecutiveOfficersFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NamedExecutiveOfficersFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Named Executive Officers, Footnote [Text Block]", "terseLabel": "Named Executive Officers, Footnote" } } }, "auth_ref": [ "r753" ] }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInFinancingActivities", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Financing Activities", "totalLabel": "Net cash provided by financing activities", "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit." } } }, "auth_ref": [ "r169" ] }, "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Financing Activities [Abstract]", "terseLabel": "Cash flows from financing activities:" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInInvestingActivities", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Investing Activities", "totalLabel": "Net cash provided by (used in) investing activities", "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets." } } }, "auth_ref": [ "r169" ] }, "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Investing Activities [Abstract]", "terseLabel": "Cash flows from investing activities:" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInOperatingActivities", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Operating Activities", "terseLabel": "Net cash used in operating activities", "totalLabel": "Net cash used in operating activities", "negatedLabel": "Net cash used in operating activities", "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities." } } }, "auth_ref": [ "r79", "r80", "r82" ] }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]", "terseLabel": "Cash flows from operating activities" } } }, "auth_ref": [] }, "us-gaap_NetIncomeLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetIncomeLoss", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShareScheduleOfComputationOfBasicAndDilutedLossPerShareDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited", "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Net Income (Loss)", "terseLabel": "Net Income (Loss)", "totalLabel": "Net loss", "verboseLabel": "Net loss", "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent." } } }, "auth_ref": [ "r73", "r82", "r108", "r140", "r158", "r161", "r165", "r174", "r184", "r186", "r187", "r189", "r190", "r191", "r195", "r196", "r202", "r232", "r298", "r299", "r300", "r301", "r302", "r303", "r304", "r305", "r306", "r432", "r435", "r451", "r457", "r528", "r601", "r621", "r622", "r701", "r883" ] }, "ftci_NetProfitAttributable": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "NetProfitAttributable", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Net profit attributable", "label": "Net profit attributable", "terseLabel": "Net Profit Attributable" } } }, "auth_ref": [] }, "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "terseLabel": "Recent accounting and regulatory pronouncements not yet adopted", "label": "New Accounting Pronouncements, Policy [Policy Text Block]", "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact." } } }, "auth_ref": [] }, "ecd_NonGaapMeasureDescriptionTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonGaapMeasureDescriptionTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-GAAP Measure Description [Text Block]", "terseLabel": "Non-GAAP Measure Description" } } }, "auth_ref": [ "r752" ] }, "ecd_NonNeosMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonNeosMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-NEOs [Member]", "terseLabel": "Non-NEOs" } } }, "auth_ref": [ "r716", "r726", "r736", "r760", "r768" ] }, "ecd_NonPeoNeoAvgCompActuallyPaidAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonPeoNeoAvgCompActuallyPaidAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-PEO NEO Average Compensation Actually Paid Amount", "terseLabel": "Non-PEO NEO Average Compensation Actually Paid Amount" } } }, "auth_ref": [ "r743" ] }, "ecd_NonPeoNeoAvgTotalCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonPeoNeoAvgTotalCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-PEO NEO Average Total Compensation Amount", "terseLabel": "Non-PEO NEO Average Total Compensation Amount" } } }, "auth_ref": [ "r742" ] }, "ecd_NonPeoNeoMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonPeoNeoMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-PEO NEO [Member]", "terseLabel": "Non-PEO NEO" } } }, "auth_ref": [ "r760" ] }, "ecd_NonRule10b51ArrAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonRule10b51ArrAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Non-Rule 10b5-1 Arrangement Adopted [Flag]", "terseLabel": "Non-Rule 10b5-1 Arrangement Adopted" } } }, "auth_ref": [ "r779" ] }, "ecd_NonRule10b51ArrTrmntdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonRule10b51ArrTrmntdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Non-Rule 10b5-1 Arrangement Terminated [Flag]", "terseLabel": "Non-Rule 10b5-1 Arrangement Terminated" } } }, "auth_ref": [ "r779" ] }, "us-gaap_OffBalanceSheetCreditLossLiabilityCreditLossExpenseReversal": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OffBalanceSheetCreditLossLiabilityCreditLossExpenseReversal", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Off-Balance-Sheet, Credit Loss, Liability, Credit Loss Expense (Reversal)", "terseLabel": "Credit loss provisions", "verboseLabel": "Credit loss provision", "documentation": "Amount of expense (reversal of expense) for expected credit loss for off-balance sheet credit exposure. Excludes off-balance sheet credit exposure accounted for as insurance and instrument accounted for under derivatives and hedging." } } }, "auth_ref": [ "r241" ] }, "us-gaap_OperatingExpenses": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingExpenses", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Operating Expenses", "terseLabel": "Total operating expenses", "totalLabel": "Total operating expenses", "documentation": "Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense." } } }, "auth_ref": [] }, "us-gaap_OperatingExpensesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingExpensesAbstract", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Operating Expenses [Abstract]", "terseLabel": "Operating expenses" } } }, "auth_ref": [] }, "us-gaap_OperatingIncomeLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingIncomeLoss", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Operating Income (Loss)", "terseLabel": "Loss from operations", "totalLabel": "Loss from operations", "documentation": "The net result for the period of deducting operating expenses from operating revenues." } } }, "auth_ref": [ "r112", "r658", "r824", "r825", "r826", "r827", "r828" ] }, "us-gaap_OperatingLeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseCost", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Cost", "terseLabel": "Operating lease cost", "negatedLabel": "Operating lease cost", "documentation": "Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability." } } }, "auth_ref": [ "r478", "r684" ] }, "us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseLiabilitiesPaymentsDueAbstract", "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, to be Paid, Fiscal Year Maturity [Abstract]" } } }, "auth_ref": [] }, "us-gaap_OperatingLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseLiability", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Liability", "terseLabel": "Total lease liability", "totalLabel": "Present value of operating lease liabilities", "verboseLabel": "Present value of operating lease liabilities", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease." } } }, "auth_ref": [ "r474" ] }, "us-gaap_OperatingLeaseLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseLiabilityCurrent", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Liability, Current", "terseLabel": "Operating lease liabilities, current portion (included in Accrued expenses and other current liabilities)", "verboseLabel": "Current portion of operating lease liability", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current." } } }, "auth_ref": [ "r474" ] }, "us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList": { "xbrltype": "enumerationSetItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration]", "terseLabel": "Operating Lease, Liability, Current, Statement of Financial Position [Extensible List]", "documentation": "Indicates line item in statement of financial position that includes current operating lease liability." } } }, "auth_ref": [ "r475" ] }, "us-gaap_OperatingLeaseLiabilityNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseLiabilityNoncurrent", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Liability, Noncurrent", "terseLabel": "Operating lease liability, net of current portion", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent." } } }, "auth_ref": [ "r474" ] }, "us-gaap_OperatingLeaseRightOfUseAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseRightOfUseAsset", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Right-of-Use Asset", "terseLabel": "Operating lease right-of-use assets", "documentation": "Amount of lessee's right to use underlying asset under operating lease." } } }, "auth_ref": [ "r473" ] }, "us-gaap_OperatingLeasesOfLesseeDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeasesOfLesseeDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Disclosure [Table Text Block]", "terseLabel": "Summary of Supplemental Information, Operating Lease", "documentation": "Tabular disclosure for lessee's operating leases. Includes, but is not limited to, description of lessee's operating lease, existence and terms of renewal or purchase options and escalation clauses, restrictions imposed by lease, such as those concerning dividends, additional debt, and further leasing, rent holidays, rent concessions, or leasehold improvement incentives and unusual provisions or conditions." } } }, "auth_ref": [ "r118", "r119", "r120", "r121", "r122" ] }, "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract", "lang": { "en-us": { "role": { "label": "Organization, Consolidation and Presentation of Financial Statements [Abstract]" } } }, "auth_ref": [] }, "ftci_OtherAccruedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "OtherAccruedCompensation", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Accrued compensation", "label": "Other Accrued Compensation", "documentation": "Other Accrued Compensation" } } }, "auth_ref": [] }, "us-gaap_OtherAccruedLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherAccruedLiabilitiesCurrent", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Other Accrued Liabilities, Current", "terseLabel": "Other accrued expenses", "documentation": "Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r48" ] }, "us-gaap_OtherAssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherAssetsCurrent", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Other Assets, Current", "terseLabel": "Other current assets", "documentation": "Amount of current assets classified as other." } } }, "auth_ref": [ "r156", "r685" ] }, "us-gaap_OtherAssetsNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherAssetsNoncurrent", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Other Assets, Noncurrent", "terseLabel": "Other assets", "totalLabel": "Other Assets, Noncurrent, Total", "documentation": "Amount of noncurrent assets classified as other." } } }, "auth_ref": [ "r149" ] }, "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax", "terseLabel": "Foreign currency translation adjustments", "totalLabel": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Total", "documentation": "Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature." } } }, "auth_ref": [ "r3", "r529" ] }, "us-gaap_OtherComprehensiveIncomeLossNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherComprehensiveIncomeLossNetOfTax", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Other Comprehensive Income (Loss), Net of Tax", "terseLabel": "Other comprehensive gain (loss)", "totalLabel": "Other Comprehensive Income (Loss), Net of Tax, Total", "documentation": "Amount after tax and reclassification adjustments of other comprehensive income (loss)." } } }, "auth_ref": [ "r10", "r12", "r159", "r162", "r166", "r191", "r459", "r460", "r465", "r509", "r529", "r806", "r807" ] }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Other comprehensive income (loss):", "label": "Other Comprehensive Income (Loss), Net of Tax [Abstract]" } } }, "auth_ref": [] }, "us-gaap_OtherCurrentLiabilitiesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherCurrentLiabilitiesMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Other Current Liabilities [Member]", "terseLabel": "Accrued Expenses and Other Current Liabilities [Member]", "documentation": "Primary financial statement caption encompassing other current liabilities." } } }, "auth_ref": [] }, "us-gaap_OtherLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherLiabilitiesCurrent", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Other Liabilities, Current", "terseLabel": "Other current liabilities", "totalLabel": "Total other current liabilities", "documentation": "Amount of liabilities classified as other, due within one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r48", "r685" ] }, "us-gaap_OtherLiabilitiesNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherLiabilitiesNoncurrent", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Other Liabilities, Noncurrent", "terseLabel": "Other non-current liabilities", "totalLabel": "Other Liabilities, Noncurrent, Total", "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r52" ] }, "us-gaap_OtherLongTermDebt": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherLongTermDebt", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Other Long-Term Debt", "terseLabel": "Long-term borrowings or other material obligations", "totalLabel": "Other Long-term Debt, Total", "documentation": "Amount of long-term debt classified as other." } } }, "auth_ref": [ "r13", "r103", "r919" ] }, "us-gaap_OtherNoncashIncomeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherNoncashIncomeExpense", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Other Noncash Income (Expense)", "totalLabel": "Other Noncash Income (Expense), Total", "negatedLabel": "Lease expense and other", "documentation": "Amount of income (expense) included in net income that results in no cash inflow (outflow), classified as other." } } }, "auth_ref": [ "r82" ] }, "us-gaap_OtherNoncurrentLiabilitiesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherNoncurrentLiabilitiesMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Other Noncurrent Liabilities [Member]", "terseLabel": "Other Noncurrent Liabilities [Member]", "documentation": "Primary financial statement caption encompassing other noncurrent liabilities." } } }, "auth_ref": [] }, "us-gaap_OtherNonoperatingIncomeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherNonoperatingIncomeExpense", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Other Nonoperating Income (Expense)", "terseLabel": "Other income (expense), net", "totalLabel": "Other Nonoperating Income (Expense), Total", "negatedLabel": "Other income (expense), net", "documentation": "Amount of income (expense) related to nonoperating activities, classified as other." } } }, "auth_ref": [ "r76" ] }, "ecd_OtherPerfMeasureAmt": { "xbrltype": "decimalItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "OtherPerfMeasureAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Other Performance Measure, Amount", "terseLabel": "Other Performance Measure, Amount" } } }, "auth_ref": [ "r752" ] }, "ecd_OutstandingAggtErrCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "OutstandingAggtErrCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Outstanding Aggregate Erroneous Compensation Amount", "terseLabel": "Outstanding Aggregate Erroneous Compensation Amount" } } }, "auth_ref": [ "r714", "r724", "r734", "r766" ] }, "ftci_OutstandingCapitalStockHeld": { "xbrltype": "percentItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "OutstandingCapitalStockHeld", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "documentation": "Outstanding capital stock held", "label": "Outstanding capital stock held", "terseLabel": "Outstanding capital stock held" } } }, "auth_ref": [] }, "ecd_OutstandingRecoveryCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "OutstandingRecoveryCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Outstanding Recovery Compensation Amount", "terseLabel": "Compensation Amount" } } }, "auth_ref": [ "r717", "r727", "r737", "r769" ] }, "ecd_OutstandingRecoveryIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "OutstandingRecoveryIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Outstanding Recovery, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r717", "r727", "r737", "r769" ] }, "ecd_PayVsPerformanceDisclosureLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PayVsPerformanceDisclosureLineItems", "lang": { "en-us": { "role": { "label": "Pay vs Performance Disclosure [Line Items]", "terseLabel": "Pay vs Performance Disclosure" } } }, "auth_ref": [ "r741" ] }, "us-gaap_PayablesAndAccrualsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PayablesAndAccrualsAbstract", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfWarrantyAccrualsDetails" ], "lang": { "en-us": { "role": { "label": "Payables and Accruals [Abstract]", "terseLabel": "Accrued warranty balance reported in:" } } }, "auth_ref": [] }, "us-gaap_PaymentsOfStockIssuanceCosts": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PaymentsOfStockIssuanceCosts", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Payments of Stock Issuance Costs", "terseLabel": "Stock issuance costs", "negatedLabel": "Stock offering costs paid", "documentation": "The cash outflow for cost incurred directly with the issuance of an equity security." } } }, "auth_ref": [ "r19" ] }, "us-gaap_PaymentsToAcquireOtherInvestments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PaymentsToAcquireOtherInvestments", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Payments to Acquire Other Investments", "terseLabel": "Investment in Alpha Steel", "negatedLabel": "Equity method investment in Alpha Steel", "documentation": "Amount of cash outflow to acquire investments classified as other." } } }, "auth_ref": [ "r77" ] }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Payments to Acquire Property, Plant, and Equipment", "totalLabel": "Payments to Acquire Property, Plant, and Equipment, Total", "negatedLabel": "Purchases of property and equipment", "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets." } } }, "auth_ref": [ "r78" ] }, "ecd_PeerGroupIssuersFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PeerGroupIssuersFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Peer Group Issuers, Footnote [Text Block]", "terseLabel": "Peer Group Issuers, Footnote" } } }, "auth_ref": [ "r751" ] }, "ecd_PeerGroupTotalShareholderRtnAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PeerGroupTotalShareholderRtnAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Peer Group Total Shareholder Return Amount", "terseLabel": "Peer Group Total Shareholder Return Amount" } } }, "auth_ref": [ "r751" ] }, "ecd_PeoActuallyPaidCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PeoActuallyPaidCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO Actually Paid Compensation Amount", "terseLabel": "PEO Actually Paid Compensation Amount" } } }, "auth_ref": [ "r743" ] }, "ecd_PeoMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PeoMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO [Member]", "terseLabel": "PEO" } } }, "auth_ref": [ "r760" ] }, "ecd_PeoName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PeoName", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO Name", "terseLabel": "PEO Name" } } }, "auth_ref": [ "r753" ] }, "ecd_PeoTotalCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PeoTotalCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO Total Compensation Amount", "terseLabel": "PEO Total Compensation Amount" } } }, "auth_ref": [ "r742" ] }, "ftci_PercantageOfConcentrationsOfCreditRisk": { "xbrltype": "percentItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "PercantageOfConcentrationsOfCreditRisk", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Percantage of Concentrations of credit risk", "label": "Percantage of Concentrations of credit risk", "terseLabel": "Concentrations of credit risk, percentage" } } }, "auth_ref": [] }, "ftci_PlacingPurchaseOrders": { "xbrltype": "stringItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "PlacingPurchaseOrders", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Placing purchase orders", "label": "Placing purchase orders", "terseLabel": "Placing Purchase Orders" } } }, "auth_ref": [] }, "ftci_PlcBarclaysBankMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "PlcBarclaysBankMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "PLC Barclays Bank [Member]", "label": "PLC Barclays Bank [Member]", "terseLabel": "Barclays Bank PLC [Member]" } } }, "auth_ref": [] }, "ecd_PnsnAdjsPrrSvcCstMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PnsnAdjsPrrSvcCstMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Pension Adjustments Prior Service Cost [Member]", "terseLabel": "Pension Adjustments Prior Service Cost" } } }, "auth_ref": [ "r744" ] }, "ecd_PnsnAdjsSvcCstMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PnsnAdjsSvcCstMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Pension Adjustments Service Cost [Member]", "terseLabel": "Pension Adjustments Service Cost" } } }, "auth_ref": [ "r788" ] }, "ecd_PnsnBnftsAdjFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PnsnBnftsAdjFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Pension Benefits Adjustments, Footnote [Text Block]", "terseLabel": "Pension Benefits Adjustments, Footnote" } } }, "auth_ref": [ "r743" ] }, "ftci_PotentialFutureCapitalContributions": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "PotentialFutureCapitalContributions", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Potential Future Capital Contributions", "label": "Potential Future Capital Contributions", "terseLabel": "Potential Future Capital Contributions" } } }, "auth_ref": [] }, "us-gaap_PreferredStockMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PreferredStockMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Preferred Stock [Member]", "terseLabel": "Preferred Stock", "documentation": "Preferred shares may provide a preferential dividend to the dividend on common stock and may take precedence over common stock in the event of a liquidation. Preferred shares typically represent an ownership interest in the company." } } }, "auth_ref": [ "r693", "r694", "r697", "r698", "r699", "r700", "r953", "r956" ] }, "us-gaap_PreferredStockParOrStatedValuePerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PreferredStockParOrStatedValuePerShare", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParentheticalUnaudited" ], "lang": { "en-us": { "role": { "label": "Preferred Stock, Par or Stated Value Per Share", "terseLabel": "Preferred stock, par value", "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer." } } }, "auth_ref": [ "r55", "r335" ] }, "us-gaap_PreferredStockSharesAuthorized": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PreferredStockSharesAuthorized", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParentheticalUnaudited" ], "lang": { "en-us": { "role": { "label": "Preferred Stock, Shares Authorized", "terseLabel": "Preferred stock, shares authorized", "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws." } } }, "auth_ref": [ "r55", "r580" ] }, "us-gaap_PreferredStockSharesIssued": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PreferredStockSharesIssued", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParentheticalUnaudited" ], "lang": { "en-us": { "role": { "label": "Preferred Stock, Shares Issued", "terseLabel": "Preferred stock, shares issued", "totalLabel": "Preferred Stock, Shares Issued, Total", "documentation": "Number of shares issued for nonredeemable preferred shares and preferred shares redeemable solely at option of issuer. Includes, but is not limited to, preferred shares issued, repurchased, and held as treasury shares. Excludes preferred shares classified as debt." } } }, "auth_ref": [ "r55", "r335" ] }, "us-gaap_PreferredStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PreferredStockValue", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Preferred stock par value of $0.0001 per share, 10,000,000 shares authorized; none issued as of June 30, 2024 and December 31, 2023", "label": "Preferred Stock, Value, Issued", "periodEndLabel": "Preferred Stock, Value, Issued, Ending Balance", "periodStartLabel": "Preferred Stock, Value, Issued, Beginning Balance", "totalLabel": "Preferred Stock, Value, Issued, Total", "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity." } } }, "auth_ref": [ "r55", "r519", "r685" ] }, "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PrepaidExpenseAndOtherAssetsCurrent", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Prepaid Expense and Other Assets, Current", "terseLabel": "Prepaid and other current assets", "totalLabel": "Total", "verboseLabel": "Prepaid Expenses and Other Current Assets", "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r805" ] }, "us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PrepaidExpenseAndOtherAssetsCurrentAbstract", "lang": { "en-us": { "role": { "label": "Prepaid Expense and Other Assets, Current [Abstract]" } } }, "auth_ref": [] }, "us-gaap_PrepaidExpenseCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PrepaidExpenseCurrent", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Prepaid Expense, Current", "terseLabel": "Prepaid expense", "totalLabel": "Prepaid Expense, Current, Total", "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r155", "r248", "r249", "r648" ] }, "ftci_PrepaidExpensesAndOtherCurrentAssetsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "PrepaidExpensesAndOtherCurrentAssetsTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssets" ], "lang": { "en-us": { "role": { "documentation": "Prepaid Expenses and Other Current Assets.", "label": "Prepaid Expenses and Other Current Assets [Text Block]", "terseLabel": "Prepaid and other current assets" } } }, "auth_ref": [] }, "us-gaap_PrepaidTaxes": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PrepaidTaxes", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Prepaid Taxes", "terseLabel": "Prepaid taxes", "documentation": "Amount of asset related to consideration paid in advance for income and other taxes that provide economic benefits within a future period of one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r649", "r662", "r839" ] }, "us-gaap_PrimeRateMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PrimeRateMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Prime Rate [Member]", "documentation": "Interest rate charged by financial institutions to their most creditworthy borrowers." } } }, "auth_ref": [] }, "ftci_ProceedsFromDeferredOfferingCosts": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "ProceedsFromDeferredOfferingCosts", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "documentation": "Proceeds from deferred offering costs.", "label": "Proceeds From Deferred Offering Costs", "terseLabel": "Deferred offering costs" } } }, "auth_ref": [] }, "us-gaap_ProceedsFromIssuanceInitialPublicOffering": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProceedsFromIssuanceInitialPublicOffering", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Proceeds from Issuance Initial Public Offering", "terseLabel": "Proceeds from IPO", "verboseLabel": "Proceeds of IPO", "documentation": "The cash inflow associated with the amount received from entity's first offering of stock to the public." } } }, "auth_ref": [ "r4" ] }, "us-gaap_ProceedsFromIssuanceOfCommonStock": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProceedsFromIssuanceOfCommonStock", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Proceeds from Issuance of Common Stock", "terseLabel": "Sale of common stock", "verboseLabel": "Proceeds from common stock", "documentation": "The cash inflow from the additional capital contribution to the entity." } } }, "auth_ref": [ "r4" ] }, "us-gaap_ProceedsFromIssuanceOrSaleOfEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProceedsFromIssuanceOrSaleOfEquity", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Proceeds from Issuance or Sale of Equity", "terseLabel": "Sale of common stock", "totalLabel": "Proceeds from Issuance or Sale of Equity, Total", "documentation": "The cash inflow from the issuance of common stock, preferred stock, treasury stock, stock options, and other types of equity." } } }, "auth_ref": [ "r4", "r560" ] }, "us-gaap_ProceedsFromSaleOfEquityMethodInvestments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProceedsFromSaleOfEquityMethodInvestments", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Proceeds from Sale of Equity Method Investments", "terseLabel": "Proceeds from disposal of investment in unconsolidated subsidiary", "documentation": "The cash inflow associated with the sale of equity method investments, which are investments in joint ventures and entities in which the entity has an equity ownership interest normally of 20 to 50 percent and exercises significant influence." } } }, "auth_ref": [ "r18" ] }, "us-gaap_ProceedsFromStockOptionsExercised": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProceedsFromStockOptionsExercised", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Proceeds from Stock Options Exercised", "terseLabel": "Proceeds from stock option exercises", "totalLabel": "Proceeds from stock option exercises", "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement." } } }, "auth_ref": [ "r4", "r11" ] }, "us-gaap_ProductMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProductMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Product [Member]", "terseLabel": "Product", "documentation": "Article or substance produced by nature, labor or machinery." } } }, "auth_ref": [ "r671" ] }, "srt_ProductOrServiceAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ProductOrServiceAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Product and Service [Axis]", "terseLabel": "Product and Service" } } }, "auth_ref": [ "r220", "r504", "r534", "r535", "r536", "r537", "r538", "r539", "r542", "r645", "r671", "r686", "r688", "r689", "r691", "r692", "r872", "r873", "r886", "r921", "r925", "r926", "r927", "r928", "r929", "r930", "r931", "r932", "r933", "r934", "r935", "r936", "r937", "r938", "r939", "r940", "r941", "r942", "r943", "r944", "r945", "r946", "r947", "r948", "r949", "r950", "r951", "r952" ] }, "us-gaap_ProductWarrantiesDisclosuresAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProductWarrantiesDisclosuresAbstract", "lang": { "en-us": { "role": { "label": "Product Warranties Disclosures [Abstract]" } } }, "auth_ref": [] }, "us-gaap_ProductWarrantyAccrual": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProductWarrantyAccrual", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesSummaryOfChangesInProductWarrantyReservesDetails" ], "lang": { "en-us": { "role": { "label": "Standard and Extended Product Warranty Accrual", "periodEndLabel": "Balance at end of period", "periodStartLabel": "Balance at beginning of period", "totalLabel": "Standard and Extended Product Warranty Accrual, Total", "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for estimated claims under standard and extended warranty protection rights granted to customers." } } }, "auth_ref": [ "r102", "r290", "r292", "r295" ] }, "us-gaap_ProductWarrantyAccrualClassifiedCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProductWarrantyAccrualClassifiedCurrent", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfWarrantyAccrualsDetails" ], "lang": { "en-us": { "role": { "label": "Product Warranty Accrual, Current", "terseLabel": "Warranty reserves", "verboseLabel": "Other current liabilities", "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for estimated claims under standard and extended warranty protection rights granted to customers. For classified balance sheets, represents the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r48", "r876", "r880" ] }, "us-gaap_ProductWarrantyAccrualNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProductWarrantyAccrualNoncurrent", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfWarrantyAccrualsDetails" ], "lang": { "en-us": { "role": { "label": "Product Warranty Accrual, Noncurrent", "terseLabel": "Warranty reserves", "verboseLabel": "Other non-current liabilities", "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and due after one year (or beyond the operating cycle if longer) for estimated claims under standard and extended warranty protection rights granted to customers." } } }, "auth_ref": [ "r52", "r876", "r880" ] }, "us-gaap_ProductWarrantyAccrualPayments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProductWarrantyAccrualPayments", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesSummaryOfChangesInProductWarrantyReservesDetails" ], "lang": { "en-us": { "role": { "label": "Standard and Extended Product Warranty Accrual, Decrease for Payments", "totalLabel": "Standard and Extended Product Warranty Accrual, Decrease for Payments, Total", "negatedLabel": "Settlements made during the period", "documentation": "Amount of decrease in the standard and extended product warranty accrual from payments made in cash or in kind to satisfy claims under the terms of the standard and extended product warranty." } } }, "auth_ref": [ "r293" ] }, "us-gaap_ProductWarrantyAccrualPreexistingIncreaseDecrease": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProductWarrantyAccrualPreexistingIncreaseDecrease", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesSummaryOfChangesInProductWarrantyReservesDetails" ], "lang": { "en-us": { "role": { "label": "Standard and Extended Product Warranty Accrual, Increase (Decrease) for Preexisting Warranties", "terseLabel": "Changes in liability for pre-existing warranties", "totalLabel": "Standard and Extended Product Warranty Accrual, Increase (Decrease) for Preexisting Warranties, Total", "documentation": "Amount of increase (decrease) in the standard and extended product warranty accrual from changes in estimates attributable to preexisting product warranties." } } }, "auth_ref": [ "r294" ] }, "us-gaap_ProductWarrantyExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProductWarrantyExpense", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Product Warranty Expense", "terseLabel": "Warranty and remediation provisions", "documentation": "The expense charged against earnings for the period pertaining to standard and extended warranties on the entity's goods and services granted to customers." } } }, "auth_ref": [ "r6", "r874" ] }, "us-gaap_ProductWarrantyLiabilityLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProductWarrantyLiabilityLineItems", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Product Warranty Liability [Line Items]", "terseLabel": "Product Warranty Liability [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [] }, "us-gaap_ProductWarrantyLiabilityTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProductWarrantyLiabilityTable", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Product Warranty Liability [Table]", "terseLabel": "Product Warranty Liability [Table]", "documentation": "Disclosure of information about product warranty liability, including, but not limited to, reductions in the liability for payments made under the warranty, changes in the liability for accruals related to product warranties issued, and changes in the liability for accruals related to preexisting warranties." } } }, "auth_ref": [] }, "ftci_ProductWarrantyLife": { "xbrltype": "durationItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "ProductWarrantyLife", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Product warranty life.", "label": "Product Warranty Life", "terseLabel": "Product warranty life" } } }, "auth_ref": [] }, "srt_ProductsAndServicesDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ProductsAndServicesDomain", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Product and Service [Domain]", "terseLabel": "Product and Service" } } }, "auth_ref": [ "r220", "r504", "r534", "r535", "r536", "r537", "r538", "r539", "r542", "r645", "r671", "r686", "r688", "r689", "r691", "r692", "r872", "r873", "r886", "r921", "r925", "r926", "r927", "r928", "r929", "r930", "r931", "r932", "r933", "r934", "r935", "r936", "r937", "r938", "r939", "r940", "r941", "r942", "r943", "r944", "r945", "r946", "r947", "r948", "r949", "r950", "r951", "r952" ] }, "us-gaap_ProgramRightsObligationsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProgramRightsObligationsAbstract", "lang": { "en-us": { "role": { "label": "Program Rights Obligations [Abstract]" } } }, "auth_ref": [] }, "us-gaap_PropertyPlantAndEquipmentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PropertyPlantAndEquipmentAbstract", "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment [Abstract]" } } }, "auth_ref": [] }, "us-gaap_PropertyPlantAndEquipmentByTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PropertyPlantAndEquipmentByTypeAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Long-Lived Tangible Asset [Axis]", "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale." } } }, "auth_ref": [ "r8", "r481" ] }, "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PropertyPlantAndEquipmentDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNet" ], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment Disclosure [Text Block]", "terseLabel": "Property and equipment, net", "documentation": "The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections." } } }, "auth_ref": [ "r87", "r129", "r132", "r133" ] }, "ftci_PropertyPlantAndEquipmentEstimatedFairValue": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "PropertyPlantAndEquipmentEstimatedFairValue", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Equipment estimated fair value", "label": "Property Plant and Equipment Estimated Fair Value", "documentation": "Property Plant and Equipment Estimated Fair Value" } } }, "auth_ref": [] }, "us-gaap_PropertyPlantAndEquipmentGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PropertyPlantAndEquipmentGross", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment, Gross", "periodEndLabel": "Property, Plant and Equipment, Gross, Ending Balance", "periodStartLabel": "Property, Plant and Equipment, Gross, Beginning Balance", "terseLabel": "Property and equipment, gross", "totalLabel": "Property, Plant and Equipment, Gross, Total", "documentation": "Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures." } } }, "auth_ref": [ "r88", "r145", "r526" ] }, "us-gaap_PropertyPlantAndEquipmentLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PropertyPlantAndEquipmentLineItems", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r481" ] }, "us-gaap_PropertyPlantAndEquipmentNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PropertyPlantAndEquipmentNet", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment, Net", "periodEndLabel": "Property, Plant and Equipment, Net, Ending Balance", "periodStartLabel": "Property, Plant and Equipment, Net, Beginning Balance", "terseLabel": "Property and equipment, net", "totalLabel": "Property and equipment, net", "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures." } } }, "auth_ref": [ "r8", "r481", "r513", "r526", "r685" ] }, "us-gaap_PropertyPlantAndEquipmentTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PropertyPlantAndEquipmentTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNetTables" ], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment [Table Text Block]", "terseLabel": "Schedule of property and equipment", "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation." } } }, "auth_ref": [ "r8" ] }, "us-gaap_PropertyPlantAndEquipmentTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PropertyPlantAndEquipmentTypeDomain", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Long-Lived Tangible Asset [Domain]", "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software." } } }, "auth_ref": [ "r88", "r481" ] }, "ftci_ProvisionForInventoryObsolescence": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "ProvisionForInventoryObsolescence", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "documentation": "Expense charge to establish an inventory obsolesce reserve.", "label": "Provision For Inventory Obsolescence", "terseLabel": "Provision (credit) for obsolete and slow-moving inventory" } } }, "auth_ref": [] }, "us-gaap_ProvisionForOtherCreditLosses": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProvisionForOtherCreditLosses", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Provision for Other Credit Losses", "terseLabel": "Provision For Credit Losses", "documentation": "Amount of expense related to credit loss from transactions other than loan and lease transactions." } } }, "auth_ref": [ "r6", "r106" ] }, "ftci_PurchaseObligationPercentage": { "xbrltype": "percentItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "PurchaseObligationPercentage", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Purchase Obligation Percentage", "label": "Purchase Obligation Percentage", "terseLabel": "Purchase Obligation Percentage" } } }, "auth_ref": [] }, "ftci_PurchaseOfPropertyAndEquipmentIncludedInAccountPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "PurchaseOfPropertyAndEquipmentIncludedInAccountPayable", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "documentation": "Purchase of property and equipment included in account payable.", "label": "Purchase Of Property And Equipment Included In Account Payable", "terseLabel": "Purchases of property and equipment included in ending accounts payable and accruals" } } }, "auth_ref": [] }, "ecd_PvpTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PvpTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Pay vs Performance Disclosure [Table]", "terseLabel": "Pay vs Performance Disclosure" } } }, "auth_ref": [ "r741" ] }, "ecd_PvpTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PvpTableTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Pay vs Performance [Table Text Block]", "terseLabel": "Pay vs Performance Disclosure, Table" } } }, "auth_ref": [ "r741" ] }, "srt_RangeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "RangeAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Axis]", "terseLabel": "Statistical Measurement" } } }, "auth_ref": [ "r286", "r287", "r288", "r289", "r363", "r365", "r396", "r397", "r398", "r409", "r452", "r496", "r497", "r499", "r543", "r545", "r557", "r570", "r571", "r631", "r632", "r633", "r634", "r635", "r640", "r641", "r661", "r670", "r673", "r679", "r680", "r681", "r682", "r688", "r695", "r867", "r885", "r899", "r911", "r912", "r913", "r914", "r915" ] }, "srt_RangeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "RangeMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Domain]", "terseLabel": "Statistical Measurement" } } }, "auth_ref": [ "r286", "r287", "r288", "r289", "r363", "r365", "r396", "r397", "r398", "r409", "r452", "r496", "r497", "r499", "r543", "r545", "r557", "r570", "r571", "r631", "r632", "r633", "r634", "r635", "r640", "r641", "r661", "r670", "r673", "r679", "r680", "r681", "r682", "r688", "r695", "r867", "r885", "r899", "r911", "r912", "r913", "r914", "r915" ] }, "us-gaap_ReceivablesNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ReceivablesNetCurrent", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails" ], "lang": { "en-us": { "role": { "label": "Receivables, Net, Current", "totalLabel": "Total", "documentation": "The total amount due to the entity within one year of the balance sheet date (or one operating cycle, if longer) from outside sources, including trade accounts receivable, notes and loans receivable, as well as any other types of receivables, net of allowances established for the purpose of reducing such receivables to an amount that approximates their net realizable value." } } }, "auth_ref": [ "r685" ] }, "ftci_RecievablesFromRelatedParties": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "RecievablesFromRelatedParties", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "documentation": "Recievables from Related Parties", "label": "Recievables from Related Parties", "terseLabel": "Related party receivables" } } }, "auth_ref": [] }, "us-gaap_Reclassifications": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "Reclassifications", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Reclassifications [Text Block]", "terseLabel": "Reclassifications", "documentation": "The entire disclosure for classifying current financial statements, which may be different from classifications in the prior year's financial statements. Disclose any material changes in classification including an explanation of the reason for the change and the areas impacted." } } }, "auth_ref": [ "r45" ] }, "ecd_RecoveryOfErrCompDisclosureLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "RecoveryOfErrCompDisclosureLineItems", "lang": { "en-us": { "role": { "label": "Recovery of Erroneously Awarded Compensation Disclosure [Line Items]", "terseLabel": "Recovery of Erroneously Awarded Compensation Disclosure" } } }, "auth_ref": [ "r709", "r719", "r729", "r761" ] }, "ftci_ReductionInWorkforce": { "xbrltype": "percentItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "ReductionInWorkforce", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Reduction in workforce", "label": "Reduction in workforce", "terseLabel": "Reduction in workforce" } } }, "auth_ref": [] }, "ftci_RelatedPartyAccruals": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "RelatedPartyAccruals", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "documentation": "Related party accruals", "label": "Related party accruals", "terseLabel": "Related party accrued cost of revenue" } } }, "auth_ref": [] }, "us-gaap_RelatedPartyDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RelatedPartyDomain", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebtAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "label": "Related Party, Type [Domain]", "terseLabel": "Related Party", "documentation": "Related and nonrelated parties. Related party includes, but is not limited to, affiliate, other entity for which investment is accounted for under equity method, trust for benefit of employee, principal owner, management, and member of immediate family, and other party that may be prevented from pursuing separate interests because of control, significant influence, or ownership interest." } } }, "auth_ref": [ "r224", "r364", "r488", "r489", "r516", "r524", "r573", "r574", "r575", "r576", "r577", "r598", "r600", "r630" ] }, "us-gaap_RelatedPartyMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RelatedPartyMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "label": "Related Party [Member]", "documentation": "Party related to reporting entity. Includes, but is not limited to, affiliate, entity for which investment is accounted for by equity method, trust for benefit of employees, and principal owner, management, and members of immediate family." } } }, "auth_ref": [ "r176", "r177", "r488", "r489", "r490", "r491", "r516", "r524", "r573", "r574", "r575", "r576", "r577", "r598", "r600", "r630" ] }, "us-gaap_RelatedPartyTransactionAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RelatedPartyTransactionAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Related Party Transaction [Axis]", "documentation": "Information by type of related party transaction." } } }, "auth_ref": [ "r488", "r489", "r907" ] }, "us-gaap_RelatedPartyTransactionDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RelatedPartyTransactionDomain", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Related Party Transaction [Domain]", "documentation": "Transaction between related party." } } }, "auth_ref": [] }, "us-gaap_RelatedPartyTransactionLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RelatedPartyTransactionLineItems", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "label": "Related Party Transaction [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r224", "r604", "r605", "r608" ] }, "us-gaap_RelatedPartyTransactionsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RelatedPartyTransactionsAbstract", "lang": { "en-us": { "role": { "label": "Related Party Transactions [Abstract]" } } }, "auth_ref": [] }, "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RelatedPartyTransactionsByRelatedPartyAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebtAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "label": "Related Party, Type [Axis]", "terseLabel": "Related Party", "documentation": "Information by related and nonrelated parties. Related party includes, but is not limited to, affiliate, other entity for which investment is accounted for under equity method, trust for benefit of employee, principal owner, management, and member of immediate family, and other party that may be prevented from pursuing separate interests because of control, significant influence, or ownership interest." } } }, "auth_ref": [ "r224", "r364", "r488", "r489", "r516", "r524", "r573", "r574", "r575", "r576", "r577", "r598", "r600", "r630", "r907" ] }, "us-gaap_RelatedPartyTransactionsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RelatedPartyTransactionsDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactions1" ], "lang": { "en-us": { "role": { "label": "Related Party Transactions Disclosure [Text Block]", "terseLabel": "Related party transactions", "documentation": "The entire disclosure for related party transactions. Examples of related party transactions include transactions between (a) a parent company and its subsidiary; (b) subsidiaries of a common parent; (c) and entity and its principal owners; and (d) affiliates." } } }, "auth_ref": [ "r485", "r486", "r487", "r489", "r492", "r564", "r565", "r566", "r606", "r607", "r608", "r627", "r629" ] }, "srt_RepurchaseAgreementCounterpartyNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "RepurchaseAgreementCounterpartyNameDomain", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Counterparty Name [Domain]", "terseLabel": "Counterparty Name" } } }, "auth_ref": [ "r178", "r179", "r311", "r337", "r491", "r498", "r514", "r651", "r652" ] }, "ftci_RequirementToMaintainMinimumLiquidityLimitEachQuarter": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "RequirementToMaintainMinimumLiquidityLimitEachQuarter", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Requirement to maintain minimum liquidity limit each quarter", "label": "Requirement to maintain minimum liquidity limit each quarter" } } }, "auth_ref": [] }, "us-gaap_ResearchAndDevelopmentExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ResearchAndDevelopmentExpense", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Research and Development Expense", "terseLabel": "Research and development", "totalLabel": "Research and Development Expense, Total", "documentation": "Amount of expense for research and development. Includes, but is not limited to, cost for computer software product to be sold, leased, or otherwise marketed and writeoff of research and development assets acquired in transaction other than business combination or joint venture formation or both. Excludes write-down of intangible asset acquired in business combination or from joint venture formation or both, used in research and development activity." } } }, "auth_ref": [ "r410", "r642", "r659", "r916" ] }, "us-gaap_ResearchAndDevelopmentExpenseMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ResearchAndDevelopmentExpenseMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationStockCompensationExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Research and Development Expense [Member]", "terseLabel": "Research and development [Member]", "documentation": "Primary financial statement caption in which the reported facts about research and development expense have been included." } } }, "auth_ref": [] }, "srt_RestatementAdjustmentMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "RestatementAdjustmentMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Revision of Prior Period, Adjustment [Member]", "terseLabel": "Adjustments" } } }, "auth_ref": [ "r181", "r182", "r183", "r193", "r194", "r209", "r449", "r450", "r470", "r794", "r795", "r796", "r797", "r798", "r799", "r800", "r829" ] }, "srt_RestatementAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "RestatementAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Revision of Prior Period [Axis]" } } }, "auth_ref": [ "r139", "r181", "r182", "r183", "r184", "r185", "r186", "r187", "r188", "r189", "r192", "r193", "r194", "r195", "r196", "r197", "r209", "r236", "r237", "r430", "r431", "r432", "r433", "r434", "r435", "r448", "r449", "r450", "r451", "r468", "r470", "r483", "r484", "r547", "r548", "r549", "r550", "r551", "r552", "r553", "r554", "r555", "r556", "r558", "r829" ] }, "ecd_RestatementDateAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "RestatementDateAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Restatement Determination Date [Axis]", "terseLabel": "Restatement Determination Date:" } } }, "auth_ref": [ "r710", "r720", "r730", "r762" ] }, "ecd_RestatementDeterminationDate": { "xbrltype": "dateItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "RestatementDeterminationDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Restatement Determination Date", "terseLabel": "Restatement Determination Date" } } }, "auth_ref": [ "r711", "r721", "r731", "r763" ] }, "ecd_RestatementDoesNotRequireRecoveryTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "RestatementDoesNotRequireRecoveryTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Restatement Does Not Require Recovery [Text Block]", "terseLabel": "Restatement does not require Recovery" } } }, "auth_ref": [ "r718", "r728", "r738", "r770" ] }, "srt_RestatementDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "RestatementDomain", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Revision of Prior Period [Domain]" } } }, "auth_ref": [ "r139", "r181", "r182", "r183", "r184", "r185", "r186", "r187", "r188", "r189", "r192", "r193", "r194", "r195", "r196", "r197", "r209", "r236", "r237", "r430", "r431", "r432", "r433", "r434", "r435", "r448", "r449", "r450", "r451", "r468", "r470", "r483", "r484", "r547", "r548", "r549", "r550", "r551", "r552", "r553", "r554", "r555", "r556", "r558", "r829" ] }, "us-gaap_RestrictedCashCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RestrictedCashCurrent", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Restricted Cash, Current", "terseLabel": "Restricted cash", "documentation": "Amount of cash restricted as to withdrawal or usage, classified as current. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits." } } }, "auth_ref": [ "r801", "r813" ] }, "us-gaap_RestrictedStockMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RestrictedStockMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShareScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfDilutedNetIncomePerShareDetails" ], "lang": { "en-us": { "role": { "label": "Restricted Stock [Member]", "terseLabel": "RSUs", "verboseLabel": "Restricted Stock Awards [Member]", "documentation": "Stock including a provision that prohibits sale or substantive sale of an equity instrument for a specified period of time or until specified performance conditions are met." } } }, "auth_ref": [ "r23" ] }, "us-gaap_RestrictedStockUnitsRSUMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RestrictedStockUnitsRSUMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Restricted Stock Units (RSUs) [Member]", "terseLabel": "Restricted Stock Units (RSU)", "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met." } } }, "auth_ref": [] }, "ftci_RetainageProvisionsIncludedInReceivables": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "RetainageProvisionsIncludedInReceivables", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Retainage provisions included in receivables.", "label": "Retainage Provisions Included in Receivables", "terseLabel": "Retainage provisions included in receivables" } } }, "auth_ref": [] }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RetainedEarningsAccumulatedDeficit", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Retained Earnings (Accumulated Deficit)", "periodEndLabel": "Retained Earnings (Accumulated Deficit), Ending Balance", "periodStartLabel": "Retained Earnings (Accumulated Deficit), Beginning Balance", "terseLabel": "Accumulated deficit", "totalLabel": "Retained Earnings (Accumulated Deficit), Total", "documentation": "Amount of accumulated undistributed earnings (deficit)." } } }, "auth_ref": [ "r59", "r95", "r522", "r551", "r556", "r562", "r581", "r685" ] }, "us-gaap_RetainedEarningsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RetainedEarningsMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Retained Earnings [Member]", "terseLabel": "Accumulated Deficit", "documentation": "Accumulated undistributed earnings (deficit)." } } }, "auth_ref": [ "r138", "r181", "r182", "r183", "r185", "r191", "r194", "r196", "r235", "r238", "r269", "r420", "r421", "r429", "r430", "r431", "r433", "r434", "r435", "r441", "r443", "r444", "r446", "r449", "r469", "r472", "r547", "r549", "r567", "r956" ] }, "ftci_RetireAggregateSharesOfCommonStock": { "xbrltype": "sharesItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "RetireAggregateSharesOfCommonStock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Retire Aggregate Shares of Common Stock.", "label": "Retire Aggregate Shares of Common Stock", "terseLabel": "Retire aggregate shares of common stock" } } }, "auth_ref": [] }, "us-gaap_RevenueFromContractWithCustomerAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueFromContractWithCustomerAbstract", "lang": { "en-us": { "role": { "label": "Revenue from Contract with Customer [Abstract]" } } }, "auth_ref": [] }, "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueFromContractWithCustomerExcludingAssessedTax", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Revenue from Contract with Customer, Excluding Assessed Tax", "terseLabel": "Total revenue", "totalLabel": "Revenue from Contract with Customer, Excluding Assessed Tax, Total", "verboseLabel": "Revenues", "documentation": "Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise." } } }, "auth_ref": [ "r110", "r111", "r210", "r213", "r214", "r217", "r219", "r220", "r221", "r222", "r359", "r360", "r504" ] }, "us-gaap_RevenueFromContractWithCustomerTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueFromContractWithCustomerTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureRevenue" ], "lang": { "en-us": { "role": { "label": "Revenue from Contract with Customer [Text Block]", "terseLabel": "Revenue", "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts." } } }, "auth_ref": [ "r137", "r351", "r352", "r353", "r354", "r355", "r356", "r357", "r358", "r362" ] }, "us-gaap_RevenueRecognitionPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueRecognitionPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Revenue [Policy Text Block]", "terseLabel": "Revenue recognition", "documentation": "Disclosure of accounting policy for revenue. Includes revenue from contract with customer and from other sources." } } }, "auth_ref": [ "r602", "r644", "r655" ] }, "ftci_RevenueRecognizedInExcessOfBillings": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "RevenueRecognizedInExcessOfBillings", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails" ], "lang": { "en-us": { "role": { "documentation": "Revenue recognized in excess of billings", "label": "Revenue recognized in excess of billings", "terseLabel": "Revenue recognized in excess of billings" } } }, "auth_ref": [] }, "us-gaap_RevenuesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenuesAbstract", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Revenues [Abstract]", "terseLabel": "Revenue:" } } }, "auth_ref": [] }, "ftci_RevisionsOfPreviouslyIssuedFinancialStatementsPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "RevisionsOfPreviouslyIssuedFinancialStatementsPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "documentation": "Revisions Of Previously Issued Financial Statements.", "label": "Revisions Of Previously Issued Financial Statements [Policy Text Block]", "terseLabel": "Revisions of previously issued financial statements" } } }, "auth_ref": [] }, "ftci_RevolvingCreditFacilityAvailableRemainingBorrowingCapacity": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "RevolvingCreditFacilityAvailableRemainingBorrowingCapacity", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Revolving Credit Facility, Available Remaining Borrowing Capacity", "label": "Revolving Credit Facility, Available Remaining Borrowing Capacity", "terseLabel": "Available borrowing capacity under the Revolving Credit Facility" } } }, "auth_ref": [] }, "ftci_RevolvingCreditFacilityGrossMaximumBorrowingCapacity": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "RevolvingCreditFacilityGrossMaximumBorrowingCapacity", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Revolving Credit Facility, Gross Maximum Borrowing Capacity", "label": "Revolving Credit Facility, Gross Maximum Borrowing Capacity", "terseLabel": "Aggregate commitments" } } }, "auth_ref": [] }, "us-gaap_RevolvingCreditFacilityMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevolvingCreditFacilityMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebtAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Revolving Credit Facility [Member]", "terseLabel": "Credit Facility Agreement [Member]", "documentation": "Arrangement in which loan proceeds can continuously be obtained following repayments, but the total amount borrowed cannot exceed a specified maximum amount." } } }, "auth_ref": [] }, "ftci_RightOfUseAssetAndLeaseLiabilityRecognitionForNewLeases": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "RightOfUseAssetAndLeaseLiabilityRecognitionForNewLeases", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "documentation": "Right-Of-Use Asset And Lease Liability Recognition For New Leases", "label": "Right-Of-Use Asset And Lease Liability Recognition For New Leases", "terseLabel": "Right-of-use asset and lease liability recognition for new leases" } } }, "auth_ref": [] }, "ecd_Rule10b51ArrAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "Rule10b51ArrAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Rule 10b5-1 Arrangement Adopted [Flag]", "terseLabel": "Rule 10b5-1 Arrangement Adopted" } } }, "auth_ref": [ "r779" ] }, "ecd_Rule10b51ArrTrmntdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "Rule10b51ArrTrmntdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Rule 10b5-1 Arrangement Terminated [Flag]", "terseLabel": "Rule 10b5-1 Arrangement Terminated" } } }, "auth_ref": [ "r779" ] }, "us-gaap_SaleOfStockConsiderationReceivedOnTransaction": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SaleOfStockConsiderationReceivedOnTransaction", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Sale of Stock, Consideration Received on Transaction", "terseLabel": "Purchase cost of shares", "documentation": "Cash received on stock transaction after deduction of issuance costs." } } }, "auth_ref": [] }, "us-gaap_SaleOfStockNameOfTransactionDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SaleOfStockNameOfTransactionDomain", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Sale of Stock [Domain]", "terseLabel": "Sale of Stock", "documentation": "Sale of the entity's stock, including, but not limited to, initial public offering (IPO) and private placement." } } }, "auth_ref": [] }, "us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block]", "terseLabel": "Schedule of accounts receivable, net", "documentation": "Tabular disclosure of the various types of trade accounts and notes receivable and for each the gross carrying value, allowance, and net carrying value as of the balance sheet date. Presentation is categorized by current, noncurrent and unclassified receivables." } } }, "auth_ref": [ "r57", "r63" ] }, "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShareScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfDilutedNetIncomePerShareDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]", "documentation": "Disclosure of information about security that could potentially dilute basic earnings per share (EPS) in future that was not included in calculation of diluted EPS." } } }, "auth_ref": [ "r23" ] }, "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShareTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table Text Block]", "terseLabel": "Schedule of Antidilutive Securities Excluded from Computation of Diluted Net Income Per Share", "documentation": "Tabular disclosure of securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by antidilutive securities." } } }, "auth_ref": [ "r23" ] }, "us-gaap_ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfCollaborativeArrangementsAndNoncollaborativeArrangementTransactionsTable", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Table]", "documentation": "Disclosure of information about collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations." } } }, "auth_ref": [ "r436" ] }, "srt_ScheduleOfCondensedFinancialStatementsTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ScheduleOfCondensedFinancialStatementsTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesTables" ], "lang": { "en-us": { "role": { "label": "Condensed Financial Statements [Table Text Block]", "terseLabel": "Revision of previously issued financial statements" } } }, "auth_ref": [ "r818" ] }, "us-gaap_ScheduleOfDeferredCompensationArrangementWithIndividualExcludingShareBasedPaymentsAndPostretirementBenefitsByTitleOfIndividualAndByTypeOfDeferredCompensationTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfDeferredCompensationArrangementWithIndividualExcludingShareBasedPaymentsAndPostretirementBenefitsByTitleOfIndividualAndByTypeOfDeferredCompensationTable", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "label": "Schedule of Deferred Compensation Arrangement with Individual, Excluding Share-Based Payments and Postretirement Benefits, by Title of Individual and by Type of Deferred Compensation [Table]", "documentation": "Disclosure of information about arrangements that are not equity-based payments, or pension and other postretirement benefits, with individual employees. The arrangements (for example, profit sharing, deferred bonuses or certain split-dollar life insurance arrangements) are generally based on employment contracts between the entity and one or more selected officers or key employees, and which contain a promise by the employer to pay certain amounts at designated future dates, sometimes including a period after retirement, upon compliance with stipulated requirements. This type of arrangement is distinguished from broader based employee benefit plans as it is usually tailored to the employee. Disclosure also typically includes the amount of related compensation expense recognized during the reporting period and the carrying amount as of the balance sheet date of the related liability." } } }, "auth_ref": [ "r35", "r97" ] }, "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShareTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]", "terseLabel": "Schedule of Computation of Basic and Diluted Income (Loss) Per Share", "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations." } } }, "auth_ref": [ "r823" ] }, "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationStockCompensationExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table]", "documentation": "Disclosure of information about amount recognized for award under share-based payment arrangement. Includes, but is not limited to, amount expensed in statement of income or comprehensive income, amount capitalized in statement of financial position, and corresponding reporting line item in financial statements." } } }, "auth_ref": [ "r37" ] }, "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationTables" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]", "terseLabel": "Schedule of Stock compensation expense", "documentation": "Tabular disclosure of allocation of amount expensed and capitalized for award under share-based payment arrangement to statement of income or comprehensive income and statement of financial position. Includes, but is not limited to, corresponding line item in financial statement." } } }, "auth_ref": [ "r37" ] }, "srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Investment, Name [Axis]", "terseLabel": "Investment, Name" } } }, "auth_ref": [ "r228", "r229", "r231", "r428", "r791", "r792", "r793", "r893", "r894", "r895", "r896" ] }, "us-gaap_ScheduleOfEquityMethodInvestmentsLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfEquityMethodInvestmentsLineItems", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Equity Method Investments [Line Items]", "terseLabel": "Schedule Of Equity Method Investments [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r174", "r228", "r229", "r231", "r232", "r457" ] }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]", "terseLabel": "Summary of intangible assets", "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment." } } }, "auth_ref": [ "r664", "r858" ] }, "us-gaap_ScheduleOfGoodwillTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfGoodwillTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Goodwill [Table Text Block]", "terseLabel": "Schedule of goodwill activity", "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule." } } }, "auth_ref": [ "r663", "r841", "r842", "r843", "r844", "r845", "r846", "r847", "r848", "r849", "r850", "r851" ] }, "us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfIndefiniteLivedIntangibleAssetsTable", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Indefinite-Lived Intangible Assets [Table]", "documentation": "Disclosure of information about indefinite-lived intangible asset. Excludes finite-lived intangible asset." } } }, "auth_ref": [ "r257", "r265", "r268", "r664" ] }, "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfInventoryCurrentTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureInventoriesNetTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Inventory, Current [Table Text Block]", "terseLabel": "Schedule of Inventories", "documentation": "Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process." } } }, "auth_ref": [ "r14", "r64", "r65", "r66" ] }, "ftci_ScheduleOfOperatingLeaseAssetsAndLiabilitiesTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "ScheduleOfOperatingLeaseAssetsAndLiabilitiesTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "documentation": "Schedule of operating lease assets and liabilities.", "label": "Schedule Of Operating Lease Assets And Liabilities Table [Text Block]", "terseLabel": "Schedule of Supplemental Balance Sheet Information of Leases" } } }, "auth_ref": [] }, "us-gaap_ScheduleOfOperatingLeasedAssetsTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfOperatingLeasedAssetsTable", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Operating Leased Assets [Table]", "documentation": "Disclosure of information about long-lived, depreciable assets that are subject to operating lease agreements and are used in the normal conduct of business to produce goods and services. Examples may include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software." } } }, "auth_ref": [] }, "us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfProductWarrantyLiabilityTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Product Warranty Liability [Table Text Block]", "terseLabel": "Summary of Changes in Product Warranty Reserves", "verboseLabel": "Schedule of warranty accruals", "documentation": "Tabular disclosure of the changes in the guarantor's aggregate product warranty liability, including the beginning balance of the aggregate product warranty liability, the aggregate reductions in that liability for payments made (in cash or in kind) under the warranty, the aggregate changes in the liability for accruals related to product warranties issued during the reporting period, the aggregate changes in the liability for accruals related to preexisting warranties (including adjustments related to changes in estimates), and the ending balance of the aggregate product warranty liability." } } }, "auth_ref": [ "r291" ] }, "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfPropertyPlantAndEquipmentTable", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment [Table]", "documentation": "Disclosure of information about physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation." } } }, "auth_ref": [ "r8", "r481" ] }, "us-gaap_ScheduleOfRestructuringAndRelatedCostsTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfRestructuringAndRelatedCostsTable", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Restructuring and Related Costs [Table]", "documentation": "Disclosure of information about restructuring cost. Includes, but is not limited to, expected cost, cost incurred, statement of income caption that includes restructuring cost recognized, and amount of restructuring reserve." } } }, "auth_ref": [ "r277", "r278", "r279", "r280", "r281", "r282", "r283" ] }, "ftci_ScheduleOfSeveranceAndTerminationRelatedCostsTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "ScheduleOfSeveranceAndTerminationRelatedCostsTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureReductionInForceTables" ], "lang": { "en-us": { "role": { "documentation": "Schedule of Severance and Termination Related Costs [Table Text Block]", "label": "Schedule of Severance and Termination Related Costs [Table Text Block]", "terseLabel": "Schedule Of severance and termination-related costs" } } }, "auth_ref": [] }, "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]", "documentation": "Disclosure of information about share-based payment arrangement." } } }, "auth_ref": [ "r367", "r369", "r371", "r372", "r373", "r375", "r376", "r377", "r378", "r379", "r380", "r381", "r382", "r383", "r384", "r385", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r395", "r396", "r397", "r398", "r399" ] }, "dei_Security12bTitle": { "xbrltype": "securityTitleItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "Security12bTitle", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Title of 12(b) Security", "terseLabel": "Title of 12(b) Security", "documentation": "Title of a 12(b) registered security." } } }, "auth_ref": [ "r704" ] }, "dei_SecurityExchangeName": { "xbrltype": "edgarExchangeCodeItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "SecurityExchangeName", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Security Exchange Name", "terseLabel": "Security Exchange Name", "documentation": "Name of the Exchange on which a security is registered." } } }, "auth_ref": [ "r706" ] }, "us-gaap_SellingAndMarketingExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SellingAndMarketingExpense", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Selling and Marketing Expense", "terseLabel": "Selling and marketing", "totalLabel": "Selling and Marketing Expense, Total", "documentation": "The aggregate total amount of expenses directly related to the marketing or selling of products or services." } } }, "auth_ref": [] }, "us-gaap_SellingAndMarketingExpenseMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SellingAndMarketingExpenseMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationStockCompensationExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Selling and Marketing Expense [Member]", "terseLabel": "Selling and marketing [Member]", "documentation": "Primary financial statement caption encompassing selling and marketing expense." } } }, "auth_ref": [ "r74" ] }, "us-gaap_SellingGeneralAndAdministrativeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SellingGeneralAndAdministrativeExpense", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "label": "Selling, General and Administrative Expense", "terseLabel": "General and administrative expense", "totalLabel": "Selling, General and Administrative Expense, Total", "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." } } }, "auth_ref": [ "r74" ] }, "us-gaap_ServiceMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ServiceMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Service [Member]", "terseLabel": "Service", "documentation": "Assistance, including, but not limited to, technology, license and maintenance, license and service, maintenance, oil and gas, and financial service." } } }, "auth_ref": [ "r671" ] }, "ftci_SettlementMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "SettlementMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Settlement [Member]", "label": "Settlement [Member]", "terseLabel": "Settlement [Member]" } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensation", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement, Noncash Expense", "terseLabel": "Stock-based compensation", "totalLabel": "Share-based Payment Arrangement, Noncash Expense, Total", "verboseLabel": "Stock-based compensation expense", "documentation": "Amount of noncash expense for share-based payment arrangement." } } }, "auth_ref": [ "r6" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAcceleratedCompensationCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAcceleratedCompensationCost", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement, Accelerated Cost", "terseLabel": "Increased stock-based compensation expenses", "documentation": "Amount of additional cost recognized for award under share-based payment arrangement from occurrence of event accelerating recognition of cost." } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r367", "r369", "r371", "r372", "r373", "r375", "r376", "r377", "r378", "r379", "r380", "r381", "r382", "r383", "r384", "r385", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r395", "r396", "r397", "r398", "r399" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Shares Issued in Period", "terseLabel": "Shares of Common stock purchased", "documentation": "Number of shares issued under share-based payment arrangement." } } }, "auth_ref": [ "r36" ] }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "All Award Types", "terseLabel": "All Award Types", "documentation": "Award under share-based payment arrangement." } } }, "auth_ref": [ "r371", "r372", "r373", "r375", "r376", "r377", "r378", "r379", "r380", "r381", "r382", "r383", "r384", "r385", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r395", "r396", "r397", "r398", "r399" ] }, "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement [Policy Text Block]", "terseLabel": "Stock-based compensation", "documentation": "Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost." } } }, "auth_ref": [ "r366", "r374", "r393", "r394", "r395", "r396", "r399", "r404", "r405", "r406", "r407" ] }, "ftci_SharesIssuedForLegalSettlement": { "xbrltype": "sharesItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "SharesIssuedForLegalSettlement", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "documentation": "Shares issued for legal settlement", "label": "Shares issued for legal settlement", "terseLabel": "Shares issued for legal settlement, shares" } } }, "auth_ref": [] }, "ftci_SharesIssuedForLegalSettlementAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "SharesIssuedForLegalSettlementAmt", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "documentation": "Shares issued for legal settlement amt", "label": "Shares issued for legal settlement amt", "terseLabel": "Shares issued for legal settlement" } } }, "auth_ref": [] }, "us-gaap_SharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SharesOutstanding", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Shares, Outstanding", "periodEndLabel": "Ending balance (in shares)", "periodStartLabel": "Beginning balance (in shares)", "documentation": "Number of shares issued which are neither cancelled nor held in the treasury." } } }, "auth_ref": [] }, "us-gaap_ShortTermDebtTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShortTermDebtTypeAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Short-Term Debt, Type [Axis]", "documentation": "Information by type of short-term debt arrangement." } } }, "auth_ref": [ "r47", "r864", "r865", "r866" ] }, "us-gaap_ShortTermDebtTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShortTermDebtTypeDomain", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Short-Term Debt, Type [Domain]", "documentation": "Type of short-term debt arrangement, such as notes, line of credit, commercial paper, asset-based financing, project financing, letter of credit financing." } } }, "auth_ref": [ "r46", "r864", "r865", "r866" ] }, "ftci_ShortTermInterestBearingLoanCustomerDvance": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "ShortTermInterestBearingLoanCustomerDvance", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Short-term Interest Bearing Loan & Customer dvance", "label": "Short-term Interest Bearing Loan & Customer dvance" } } }, "auth_ref": [] }, "us-gaap_ShortTermLeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShortTermLeaseCost", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Short-Term Lease, Cost", "terseLabel": "Short-term lease cost", "documentation": "Amount of short-term lease cost, excluding expense for lease with term of one month or less." } } }, "auth_ref": [ "r479", "r684" ] }, "ftci_ShortTermNonInterestBearingCustomerAdvance": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "ShortTermNonInterestBearingCustomerAdvance", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Short term non-interest-bearing customer advance", "label": "Short Term Non-Interest-Bearing Customer Advance", "documentation": "Short term non-Interest-Bearing customer advance." } } }, "auth_ref": [] }, "us-gaap_SignificantAccountingPoliciesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SignificantAccountingPoliciesTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPolicies1" ], "lang": { "en-us": { "role": { "label": "Significant Accounting Policies [Text Block]", "terseLabel": "Summary of significant accounting policies", "documentation": "The entire disclosure for all significant accounting policies of the reporting entity." } } }, "auth_ref": [ "r83", "r171" ] }, "us-gaap_SoftwareDevelopmentMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SoftwareDevelopmentMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Software Development [Member]", "terseLabel": "Capitalized Software [Member]", "documentation": "Internally developed software for sale, licensing or long-term internal use." } } }, "auth_ref": [] }, "ftci_SouthLakeOneLlcMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "SouthLakeOneLlcMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "documentation": "South Lake One LLC [Member]", "label": "South Lake One LLC [Member]", "terseLabel": "South Lake One LLC [Member]" } } }, "auth_ref": [] }, "us-gaap_SpecialAssessmentBond": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SpecialAssessmentBond", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Outstanding surety and performance bonds", "label": "Special Assessment Bond", "totalLabel": "Special Assessment Bond, Total", "documentation": "Including the current and noncurrent portions, carrying value as of the balance sheet date of a type of municipal bond typically used to fund a development project. Also called special assessment limited liability bond, special district bond, special purpose bond, special tax bond and community development obligation. Interest owed to lenders is paid by taxes levied on the community benefiting from the particular bond-funded project. For example, if a bond of this sort was issued to pay for sidewalks to be repaved in a certain community, an additional tax would be levied on homeowners in the area benefiting from this project." } } }, "auth_ref": [ "r13", "r47", "r919" ] }, "us-gaap_StandardProductWarrantyAccrual": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StandardProductWarrantyAccrual", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfWarrantyAccrualsDetails" ], "lang": { "en-us": { "role": { "label": "Standard Product Warranty Accrual", "periodEndLabel": "Balance at end 's period", "periodStartLabel": "Balance at beginning of period", "terseLabel": "Balance at end of period", "totalLabel": "Balance at end of period", "documentation": "Amount as of the balance sheet date of the aggregate standard product warranty liability. Does not include the balance for the extended product warranty liability." } } }, "auth_ref": [ "r876", "r880" ] }, "us-gaap_StandardProductWarrantyAccrualPayments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StandardProductWarrantyAccrualPayments", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfWarrantyAccrualsDetails" ], "lang": { "en-us": { "role": { "label": "Standard Product Warranty Accrual, Decrease for Payments", "terseLabel": "Settlements made during the period", "negatedLabel": "Settlements made during the period", "documentation": "Amount of decrease in the standard product warranty accrual from payments made in cash or in kind to satisfy claims under the terms of the standard product warranty. Excludes extended product warranties." } } }, "auth_ref": [ "r877" ] }, "us-gaap_StandardProductWarrantyAccrualPreexistingIncreaseDecrease": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StandardProductWarrantyAccrualPreexistingIncreaseDecrease", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfWarrantyAccrualsDetails" ], "lang": { "en-us": { "role": { "label": "Standard Product Warranty Accrual, Increase (Decrease) for Preexisting Warranties", "terseLabel": "Changes in liability for pre-existing warranties", "documentation": "Amount of increase (decrease) in the standard product warranty accrual from changes in estimates attributable to preexisting product warranties. Excludes extended product warranties." } } }, "auth_ref": [ "r879" ] }, "us-gaap_StandardProductWarrantyAccrualWarrantiesIssued": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StandardProductWarrantyAccrualWarrantiesIssued", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfWarrantyAccrualsDetails" ], "lang": { "en-us": { "role": { "label": "Standard Product Warranty Accrual, Increase for Warranties Issued", "terseLabel": "Warranties issued and remediation added during the period", "negatedLabel": "Warranties issued during the period", "documentation": "Amount of increase in the standard product warranty accrual from warranties issued. Excludes extended product warranties." } } }, "auth_ref": [ "r878" ] }, "us-gaap_StandardProductWarrantyDescription": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StandardProductWarrantyDescription", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Standard Product Warranty Description", "terseLabel": "Warranty description", "documentation": "Describes the nature of the product warranty, including the approximate term of the product warranty, how the product warranty arose, and the events or circumstances that would require the warrantor to perform under the product warranty." } } }, "auth_ref": [ "r29", "r30" ] }, "us-gaap_StandardProductWarrantyPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StandardProductWarrantyPolicy", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Standard Product Warranty, Policy [Policy Text Block]", "terseLabel": "Warranty", "documentation": "Disclosure of accounting policy for standard warranties including the methodology for measuring the liability." } } }, "auth_ref": [ "r875" ] }, "us-gaap_StatementEquityComponentsAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementEquityComponentsAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Equity Components [Axis]", "terseLabel": "Equity Components", "documentation": "Information by component of equity." } } }, "auth_ref": [ "r10", "r56", "r60", "r61", "r138", "r163", "r164", "r165", "r181", "r182", "r183", "r185", "r191", "r194", "r196", "r211", "r235", "r238", "r269", "r348", "r420", "r421", "r429", "r430", "r431", "r433", "r434", "r435", "r441", "r442", "r443", "r444", "r445", "r446", "r449", "r459", "r461", "r462", "r463", "r464", "r465", "r469", "r472", "r484", "r529", "r547", "r548", "r549", "r567", "r623" ] }, "us-gaap_StatementLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementLineItems", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Statement [Line Items]", "terseLabel": "Statement [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r181", "r182", "r183", "r211", "r472", "r504", "r559", "r569", "r572", "r573", "r574", "r575", "r576", "r577", "r580", "r583", "r584", "r585", "r586", "r587", "r589", "r590", "r591", "r592", "r594", "r595", "r596", "r597", "r598", "r600", "r602", "r603", "r609", "r610", "r611", "r612", "r613", "r614", "r615", "r616", "r617", "r618", "r619", "r620", "r623", "r696" ] }, "us-gaap_StatementOfCashFlowsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementOfCashFlowsAbstract", "lang": { "en-us": { "role": { "label": "Statement of Cash Flows [Abstract]" } } }, "auth_ref": [] }, "us-gaap_StatementOfFinancialPositionAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementOfFinancialPositionAbstract", "lang": { "en-us": { "role": { "label": "Statement of Financial Position [Abstract]", "terseLabel": "Balance sheet" } } }, "auth_ref": [] }, "us-gaap_StatementOfStockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementOfStockholdersEquityAbstract", "lang": { "en-us": { "role": { "label": "Statement of Stockholders' Equity [Abstract]", "terseLabel": "Condensed Consolidated Statement of Stockholders' Equity" } } }, "auth_ref": [] }, "us-gaap_StatementTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementTable", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Statement [Table]", "terseLabel": "Statement [Table]", "documentation": "Disclosure of information about statement of comprehensive income, income, other comprehensive income, financial position, cash flows, and shareholders' equity." } } }, "auth_ref": [ "r181", "r182", "r183", "r211", "r224", "r472", "r504", "r559", "r569", "r572", "r573", "r574", "r575", "r576", "r577", "r580", "r583", "r584", "r585", "r586", "r587", "r589", "r590", "r591", "r592", "r594", "r595", "r596", "r597", "r598", "r600", "r602", "r603", "r609", "r610", "r611", "r612", "r613", "r614", "r615", "r616", "r617", "r618", "r619", "r620", "r623", "r696" ] }, "ecd_StkPrcOrTsrEstimationMethodTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "StkPrcOrTsrEstimationMethodTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Stock Price or TSR Estimation Method [Text Block]", "terseLabel": "Stock Price or TSR Estimation Method" } } }, "auth_ref": [ "r713", "r723", "r733", "r765" ] }, "us-gaap_StockAppreciationRightsSARSMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockAppreciationRightsSARSMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Stock Appreciation Rights (SARs) [Member]", "terseLabel": "Stock Appreciation Rights (SARs)", "documentation": "Right to receive cash or shares equal to appreciation of predetermined number of grantor's shares during predetermined time period." } } }, "auth_ref": [] }, "us-gaap_StockIssuedDuringPeriodSharesAcquisitions": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodSharesAcquisitions", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Shares, Acquisitions", "terseLabel": "Shares issued for HX Tracker acquisition, Shares", "documentation": "Number of shares of stock issued during the period pursuant to acquisitions." } } }, "auth_ref": [ "r55", "r56", "r95" ] }, "us-gaap_StockIssuedDuringPeriodSharesNewIssues": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodSharesNewIssues", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Shares, New Issues", "terseLabel": "Sale of shares, shares", "verboseLabel": "Issuance of common stock (in shares)", "documentation": "Number of new stock issued during the period." } } }, "auth_ref": [ "r10", "r55", "r56", "r95", "r560", "r623", "r636" ] }, "us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodSharesRestrictedStockAwardGross", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Shares, Restricted Stock Award, Gross", "terseLabel": "Shares issued during the period for vested restricted stock awards, shares", "verboseLabel": "Shares of common stock issuable upon vesting of restricted stock awards", "documentation": "Total number of shares issued during the period, including shares forfeited, as a result of Restricted Stock Awards." } } }, "auth_ref": [ "r10", "r95" ] }, "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period", "terseLabel": "Issuance of common stock upon exercise of stock options, shares", "documentation": "Number of share options (or share units) exercised during the current period." } } }, "auth_ref": [ "r10", "r55", "r56", "r95", "r380" ] }, "us-gaap_StockIssuedDuringPeriodValueAcquisitions": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodValueAcquisitions", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Value, Acquisitions", "terseLabel": "Shares issued for HX Tracker acquisition, Amount", "documentation": "Value of stock issued pursuant to acquisitions during the period." } } }, "auth_ref": [ "r10", "r56", "r60", "r61", "r95" ] }, "us-gaap_StockIssuedDuringPeriodValueNewIssues": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodValueNewIssues", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Value, New Issues", "terseLabel": "Sale of shares", "verboseLabel": "Issuance of common stock, value", "documentation": "Equity impact of the value of new stock issued during the period. Includes shares issued in an initial public offering or a secondary public offering." } } }, "auth_ref": [ "r10", "r55", "r56", "r95", "r567", "r623", "r636", "r702" ] }, "us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodValueRestrictedStockAwardGross", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Value, Restricted Stock Award, Gross", "terseLabel": "Shares issued during the period for vested restricted stock awards", "documentation": "Aggregate value of stock related to Restricted Stock Awards issued during the period." } } }, "auth_ref": [ "r10", "r55", "r56", "r95" ] }, "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodValueStockOptionsExercised", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Value, Stock Options Exercised", "terseLabel": "Issuance of common stock upon exercise of stock options", "documentation": "Value of stock issued as a result of the exercise of stock options." } } }, "auth_ref": [ "r10", "r56", "r60", "r61", "r95" ] }, "ftci_StockIssuedForAccruedLegalSettlement": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "StockIssuedForAccruedLegalSettlement", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "documentation": "Stock issued for accrued legal settlement", "label": "Stock issued for accrued legal settlement" } } }, "auth_ref": [] }, "us-gaap_StockRepurchasedAndRetiredDuringPeriodShares": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockRepurchasedAndRetiredDuringPeriodShares", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Stock Repurchased and Retired During Period, Shares", "terseLabel": "Share repurchase and retirement (shares)", "verboseLabel": "Share repurchased and retired (Shares)", "negatedLabel": "Repurchase and retirement of common stock (shares)", "documentation": "Number of shares that have been repurchased and retired during the period." } } }, "auth_ref": [ "r10", "r55", "r56", "r95" ] }, "us-gaap_StockRepurchasedAndRetiredDuringPeriodValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockRepurchasedAndRetiredDuringPeriodValue", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Stock Repurchased and Retired During Period, Value", "terseLabel": "Share repurchase and retirement", "negatedLabel": "Repurchase and retirement of common stock", "documentation": "Equity impact of the value of stock that has been repurchased and retired during the period. The excess of the purchase price over par value can be charged against retained earnings (once the excess is fully allocated to additional paid in capital)." } } }, "auth_ref": [ "r10", "r55", "r56", "r95" ] }, "us-gaap_StockRepurchasedDuringPeriodShares": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockRepurchasedDuringPeriodShares", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Stock Repurchased During Period, Shares", "terseLabel": "Repurchase of treasury stock", "negatedLabel": "Repurchase of treasury stock", "documentation": "Number of shares that have been repurchased during the period and have not been retired and are not held in treasury. Some state laws may govern the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock." } } }, "auth_ref": [ "r10", "r55", "r56", "r95", "r561", "r623", "r637" ] }, "us-gaap_StockholdersEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockholdersEquity", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Equity, Attributable to Parent", "periodEndLabel": "Ending balance", "periodStartLabel": "Beginning balance", "terseLabel": "Stockholders equity", "totalLabel": "Total stockholders' equity", "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest." } } }, "auth_ref": [ "r56", "r60", "r61", "r85", "r582", "r599", "r624", "r625", "r685", "r703", "r815", "r836", "r900", "r956" ] }, "us-gaap_StockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockholdersEquityAbstract", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Equity, Attributable to Parent [Abstract]", "terseLabel": "Stockholders' equity" } } }, "auth_ref": [] }, "us-gaap_StockholdersEquityNoteAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockholdersEquityNoteAbstract", "lang": { "en-us": { "role": { "label": "Stockholders' Equity Note [Abstract]" } } }, "auth_ref": [] }, "us-gaap_StockholdersEquityNoteDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockholdersEquityNoteDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Equity [Text Block]", "terseLabel": "Common Stock", "documentation": "The entire disclosure for equity." } } }, "auth_ref": [ "r92", "r173", "r334", "r336", "r338", "r339", "r340", "r341", "r342", "r343", "r344", "r345", "r346", "r347", "r348", "r447", "r626", "r628", "r638" ] }, "us-gaap_StockholdersEquityReverseStockSplit": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockholdersEquityReverseStockSplit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Stockholders' Equity, Reverse Stock Split", "terseLabel": "Stock split", "documentation": "Description of the reverse stock split arrangement. Also provide the retroactive effect given by the reverse split that occurs after the balance sheet date but before the release of financial statements." } } }, "auth_ref": [ "r96" ] }, "ftci_SubscriptionRevenueContractTerms": { "xbrltype": "durationItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "SubscriptionRevenueContractTerms", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Subscription revenue contract terms.", "label": "Subscription Revenue Contract Terms", "terseLabel": "Subscription revenue contract terms" } } }, "auth_ref": [] }, "us-gaap_SubsequentEventMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SubsequentEventMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Subsequent Event [Member]", "terseLabel": "Subsequent Event", "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued." } } }, "auth_ref": [ "r466", "r494" ] }, "us-gaap_SubsequentEventTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SubsequentEventTypeAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Subsequent Event Type [Axis]", "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued." } } }, "auth_ref": [ "r466", "r494" ] }, "us-gaap_SubsequentEventTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SubsequentEventTypeDomain", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Subsequent Event Type [Domain]", "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued." } } }, "auth_ref": [ "r466", "r494" ] }, "us-gaap_SubsequentEventsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SubsequentEventsAbstract", "lang": { "en-us": { "role": { "label": "Subsequent Events [Abstract]" } } }, "auth_ref": [] }, "us-gaap_SubsequentEventsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SubsequentEventsTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEvents" ], "lang": { "en-us": { "role": { "label": "Subsequent Events [Text Block]", "terseLabel": "Subsequent events", "documentation": "The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business." } } }, "auth_ref": [ "r493", "r495" ] }, "us-gaap_SubsidiaryOrEquityMethodInvesteeSaleOfStockBySubsidiaryOrEquityInvesteeTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SubsidiaryOrEquityMethodInvesteeSaleOfStockBySubsidiaryOrEquityInvesteeTable", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Subsidiary or Equity Method Investee, Sale of Stock by Subsidiary or Equity Investee [Table]", "documentation": "Disclosure of information about sale of stock made by subsidiary or equity method investee to investor outside consolidated group by type of sale. Includes, but is not limited to, stock issued in business combination in exchange for share of acquired entity." } } }, "auth_ref": [] }, "us-gaap_SubsidiarySaleOfStockAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SubsidiarySaleOfStockAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Sale of Stock [Axis]", "terseLabel": "Sale of Stock", "documentation": "Information by type of sale of the entity's stock." } } }, "auth_ref": [] }, "us-gaap_SubsidiarySaleOfStockLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SubsidiarySaleOfStockLineItems", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Subsidiary, Sale of Stock [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [] }, "ftci_SunEdisonUtilityHoldingsIncMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "SunEdisonUtilityHoldingsIncMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "SunEdison Utility Holdings Inc. member.", "label": "Sun Edison Utility Holdings Inc [Member]", "terseLabel": "SunEdison Utility Holdings, Inc. [Member]" } } }, "auth_ref": [] }, "us-gaap_SupplementalCashFlowInformationAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SupplementalCashFlowInformationAbstract", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Supplemental Cash Flow Information [Abstract]", "terseLabel": "Supplemental disclosures of cash flow information:" } } }, "auth_ref": [] }, "ftci_SuretyCollateral": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "SuretyCollateral", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails" ], "lang": { "en-us": { "role": { "documentation": "Surety collateral.", "label": "Surety Collateral", "terseLabel": "Surety collateral" } } }, "auth_ref": [] }, "ecd_TabularListTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TabularListTableTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Tabular List [Table Text Block]", "terseLabel": "Tabular List, Table" } } }, "auth_ref": [ "r759" ] }, "ftci_TaihuaNewEnergyMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "TaihuaNewEnergyMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Taihua New Energy [Member]", "label": "Taihua New Energy [Member]" } } }, "auth_ref": [] }, "ftci_TamaraMullingsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "TamaraMullingsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "terseLabel": "Tamara Mullings [Member]", "label": "Tamara Mullings [Member]", "documentation": "Tamara Mullings [Member]" } } }, "auth_ref": [] }, "ftci_TariffsOnMerchandisePercent": { "xbrltype": "percentItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "TariffsOnMerchandisePercent", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Tariffs on Merchandise, Percent", "label": "Tariffs on Merchandise, Percent", "terseLabel": "Tariffs on merchandise, percent" } } }, "auth_ref": [] }, "us-gaap_TaxesPayableCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TaxesPayableCurrent", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Taxes Payable, Current", "terseLabel": "Income taxes payable", "totalLabel": "Taxes Payable, Current, Total", "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable for statutory income, sales, use, payroll, excise, real, property and other taxes. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r47", "r48" ] }, "us-gaap_TechnologyEquipmentMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TechnologyEquipmentMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Technology Equipment [Member]", "terseLabel": "Information Technology Equipment [Member]", "documentation": "Equipment used in the creation, maintenance and utilization of information systems which include computers and peripherals." } } }, "auth_ref": [] }, "srt_TitleOfIndividualAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "TitleOfIndividualAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Title of Individual [Axis]" } } }, "auth_ref": [ "r830", "r906" ] }, "srt_TitleOfIndividualWithRelationshipToEntityDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "TitleOfIndividualWithRelationshipToEntityDomain", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Title of Individual [Domain]" } } }, "auth_ref": [] }, "us-gaap_ToolsDiesAndMoldsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ToolsDiesAndMoldsMember", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Tools, Dies and Molds [Member]", "terseLabel": "Tooling [Member]", "documentation": "Equipment commonly used to cut, shape, and form metal and other materials into goods for sale." } } }, "auth_ref": [] }, "ecd_TotalShareholderRtnAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TotalShareholderRtnAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Total Shareholder Return Amount", "terseLabel": "Total Shareholder Return Amount" } } }, "auth_ref": [ "r751" ] }, "ecd_TotalShareholderRtnVsPeerGroupTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TotalShareholderRtnVsPeerGroupTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Total Shareholder Return Vs Peer Group [Text Block]", "terseLabel": "Total Shareholder Return Vs Peer Group" } } }, "auth_ref": [ "r758" ] }, "ftci_TradeAccountsReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "TradeAccountsReceivable", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails" ], "lang": { "en-us": { "role": { "documentation": "Trade Accounts Receivable", "label": "Trade Accounts Receivable", "terseLabel": "Trade receivables" } } }, "auth_ref": [] }, "ftci_TradeAccountsReceivableBalanceFromMajorCustomer": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "TradeAccountsReceivableBalanceFromMajorCustomer", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Trade Accounts Receivable Balance From Major Customer", "label": "Trade Accounts Receivable Balance From Major Customer", "terseLabel": "Trade Accounts Receivable Balance From Major Customer" } } }, "auth_ref": [] }, "us-gaap_TradeAndOtherAccountsReceivablePolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TradeAndOtherAccountsReceivablePolicy", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable [Policy Text Block]", "terseLabel": "Accounts receivable, net", "documentation": "Disclosure of accounting policy for accounts receivable." } } }, "auth_ref": [ "r114", "r116", "r117", "r832", "r833", "r834" ] }, "ecd_TradingArrAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TradingArrAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement [Axis]", "terseLabel": "Trading Arrangement:" } } }, "auth_ref": [ "r778" ] }, "ecd_TradingArrByIndTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TradingArrByIndTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangements, by Individual [Table]", "terseLabel": "Trading Arrangements, by Individual" } } }, "auth_ref": [ "r780" ] }, "dei_TradingSymbol": { "xbrltype": "tradingSymbolItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "TradingSymbol", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Trading Symbol", "terseLabel": "Trading Symbol", "documentation": "Trading symbol of an instrument as listed on an exchange." } } }, "auth_ref": [] }, "ftci_TranslationAndOther": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "TranslationAndOther", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableAllowanceForCreditLossDetailsDetails" ], "lang": { "en-us": { "role": { "documentation": "Translation and other", "label": "Translation and other", "terseLabel": "Translation and other" } } }, "auth_ref": [] }, "ecd_TrdArrAdoptionDate": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TrdArrAdoptionDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement Adoption Date", "terseLabel": "Adoption Date" } } }, "auth_ref": [ "r781" ] }, "ecd_TrdArrDuration": { "xbrltype": "durationItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TrdArrDuration", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement Duration", "terseLabel": "Arrangement Duration" } } }, "auth_ref": [ "r782" ] }, "ecd_TrdArrExpirationDate": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TrdArrExpirationDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement Expiration Date", "terseLabel": "Expiration Date" } } }, "auth_ref": [ "r782" ] }, "ecd_TrdArrIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TrdArrIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r780" ] }, "ecd_TrdArrIndTitle": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TrdArrIndTitle", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement, Individual Title", "terseLabel": "Title" } } }, "auth_ref": [ "r780" ] }, "ecd_TrdArrSecuritiesAggAvailAmt": { "xbrltype": "sharesItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TrdArrSecuritiesAggAvailAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement, Securities Aggregate Available Amount", "terseLabel": "Aggregate Available" } } }, "auth_ref": [ "r783" ] }, "ecd_TrdArrTerminationDate": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TrdArrTerminationDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement Termination Date", "terseLabel": "Termination Date" } } }, "auth_ref": [ "r781" ] }, "ftci_TreasuryStock1Member": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "TreasuryStock1Member", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "documentation": "Treasury Stock -1 [Member]", "label": "Treasury Stock -1 [Member]", "terseLabel": "Treasury Stock" } } }, "auth_ref": [] }, "us-gaap_TreasuryStockCommonShares": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TreasuryStockCommonShares", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParentheticalUnaudited" ], "lang": { "en-us": { "role": { "label": "Treasury Stock, Common, Shares", "terseLabel": "Treasury Stock, Shares", "documentation": "Number of previously issued common shares repurchased by the issuing entity and held in treasury." } } }, "auth_ref": [ "r33" ] }, "us-gaap_TreasuryStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TreasuryStockValue", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Treasury stock, at cost; 10,762,566 shares as of June 30, 2024 and December 31, 2023", "label": "Treasury Stock, Value", "periodEndLabel": "Treasury Stock, Value, Ending Balance", "periodStartLabel": "Treasury Stock, Value, Beginning Balance", "totalLabel": "Treasury Stock, Value, Total", "verboseLabel": "Treasury stock, value", "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." } } }, "auth_ref": [ "r33", "r34", "r56", "r60" ] }, "us-gaap_TypeOfArrangementAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TypeOfArrangementAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Axis]", "terseLabel": "Collaborative Arrangement and Arrangement Other than Collaborative", "documentation": "Information by collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations." } } }, "auth_ref": [ "r436" ] }, "ftci_UnauditedInterimFinancialInformationPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "UnauditedInterimFinancialInformationPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "documentation": "Unaudited interim financial information.", "label": "Unaudited Interim Financial Information Policy [Text Block]", "terseLabel": "Unaudited Interim Financial Information" } } }, "auth_ref": [] }, "ecd_UndrlygSecurityMktPriceChngPct": { "xbrltype": "pureItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "UndrlygSecurityMktPriceChngPct", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Underlying Security Market Price Change, Percent", "terseLabel": "Underlying Security Market Price Change" } } }, "auth_ref": [ "r777" ] }, "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued", "terseLabel": "Income tax interest and penalties accrued", "totalLabel": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued, Total", "documentation": "Amount accrued for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return." } } }, "auth_ref": [ "r417", "r675" ] }, "us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "UnrecognizedTaxBenefitsPeriodIncreaseDecrease", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Material change in unrecognized tax benefits", "label": "Unrecognized Tax Benefits, Period Increase (Decrease)", "totalLabel": "Unrecognized Tax Benefits, Period Increase (Decrease), Total", "documentation": "Amount of increase (decrease) in unrecognized tax benefits attributable to uncertain tax positions taken in tax returns." } } }, "auth_ref": [ "r890" ] }, "us-gaap_UseOfEstimates": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "UseOfEstimates", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Use of Estimates, Policy [Policy Text Block]", "terseLabel": "Use of estimates", "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles." } } }, "auth_ref": [ "r24", "r25", "r26", "r126", "r127", "r130", "r131" ] }, "us-gaap_VariableRateAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "VariableRateAxis", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Variable Rate [Axis]", "documentation": "Information by type of variable rate." } } }, "auth_ref": [] }, "us-gaap_VariableRateDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "VariableRateDomain", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Variable Rate [Domain]", "documentation": "Interest rate that fluctuates over time as a result of an underlying benchmark interest rate or index." } } }, "auth_ref": [] }, "ftci_VendorDeposits": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "VendorDeposits", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails" ], "lang": { "en-us": { "role": { "documentation": "Vendor deposits", "label": "Vendor Deposits", "terseLabel": "Vendor deposits" } } }, "auth_ref": [] }, "ftci_VendorDeposits1": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "VendorDeposits1", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "documentation": "Vendor Deposits 1", "label": "Vendor Deposits 1", "terseLabel": "Vendor Deposits" } } }, "auth_ref": [] }, "ftci_VendorDepositsWithRelatedParty": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "VendorDepositsWithRelatedParty", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails" ], "lang": { "en-us": { "role": { "documentation": "Vendor Deposits With Related Party", "label": "Vendor Deposits With Related Party", "terseLabel": "Vendor deposits with related party" } } }, "auth_ref": [] }, "ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year [Member]", "terseLabel": "Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year" } } }, "auth_ref": [ "r747" ] }, "ftci_WarrantsRecoverableFromManufacturer": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "WarrantsRecoverableFromManufacturer", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "documentation": "Warrants recoverable from manufacturer.", "label": "Warrants Recoverable From Manufacturer", "terseLabel": "Warranty recoverable from manufacturer", "negatedLabel": "Warranty recoverable from manufacturer" } } }, "auth_ref": [] }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShareScheduleOfComputationOfBasicAndDilutedLossPerShareDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Weighted Average Number of Shares Outstanding, Diluted", "terseLabel": "Diluted", "totalLabel": "Potential common shares excluded from diluted net loss per share", "verboseLabel": "Diluted weighted-average number of common shares outstanding", "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period." } } }, "auth_ref": [ "r200", "r205" ] }, "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "WeightedAverageNumberOfSharesOutstandingAbstract", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Weighted Average Number of Shares Outstanding, Diluted [Abstract]", "terseLabel": "Weighted-average common shares outstanding:" } } }, "auth_ref": [] }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/DisclosureNetLossPerShareScheduleOfComputationOfBasicAndDilutedLossPerShareDetails", "http://www.ftcsolar.com/20240630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Weighted Average Number of Shares Outstanding, Basic", "terseLabel": "Basic", "totalLabel": "Weighted Average Number of Shares Outstanding, Basic, Total", "verboseLabel": "Basic weighted-average number of common shares outstanding", "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period." } } }, "auth_ref": [ "r199", "r205" ] }, "ftci_WorkforceActivityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "WorkforceActivityAbstract", "lang": { "en-us": { "role": { "documentation": "Workforce Activity [Abstract]", "label": "Workforce Activity [Abstract]" } } }, "auth_ref": [] }, "ftci_WorkingCapital": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240630", "localname": "WorkingCapital", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Working Capital", "label": "Working Capital", "terseLabel": "Working capital" } } }, "auth_ref": [] }, "ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested [Member]", "terseLabel": "Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested" } } }, "auth_ref": [ "r745" ] } } } }, "std_ref": { "r0": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "05", "Paragraph": "4", "SubTopic": "10", "Topic": "360", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482338/360-10-05-4" }, "r1": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "SubTopic": "230", "Topic": "830", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477401/830-230-45-1" }, "r2": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "SubTopic": "10", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A" }, "r3": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A" }, "r4": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "14", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-14" }, "r5": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "21D", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-21D" }, "r6": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r7": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r8": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "SubTopic": "10", "Topic": "360", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1" }, "r9": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(c)(3)", "SubTopic": "10", "Topic": "810", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1A" }, "r10": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "SubTopic": "10", "Topic": "505", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-2" }, "r11": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2A", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "718", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2A" }, "r12": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "15", "SubTopic": "10", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482739/220-10-55-15" }, "r13": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(22))", "SubTopic": "10", "Topic": "210", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r14": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483489/210-10-50-1" }, "r15": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-14" }, "r16": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "14A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-14A" }, "r17": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-5" }, "r18": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "12", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-12" }, "r19": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15" }, "r20": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-4" }, "r21": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-1" }, "r22": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2" }, "r23": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "260", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1" }, "r24": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-4" }, "r25": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-8" }, "r26": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-9" }, "r27": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "360", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1" }, "r28": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "360", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1" }, "r29": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "460", "SubTopic": "10", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-4" }, "r30": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "460", "SubTopic": "10", "Section": "50", "Paragraph": "8", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8" }, "r31": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "505", "SubTopic": "10", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-3" }, "r32": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "505", "SubTopic": "10", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-8" }, "r33": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "505", "SubTopic": "30", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481549/505-30-45-1" }, "r34": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "505", "SubTopic": "30", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481520/505-30-50-4" }, "r35": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "710", "SubTopic": "10", "Section": "25", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483070/710-10-25-11" }, "r36": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r37": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r38": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "20", "Section": "55", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481089/718-20-55-12" }, "r39": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "20", "Section": "55", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481089/718-20-55-13" }, "r40": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A" }, "r41": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4B" }, "r42": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "825", "SubTopic": "10", "Section": "50", "Paragraph": "28", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28" }, "r43": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "942", "SubTopic": "470", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477734/942-470-50-3" }, "r44": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "942", "SubTopic": "825", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478898/942-825-50-1" }, "r45": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "205", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/205/tableOfContent" }, "r46": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(19)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r47": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r48": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r49": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(21))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r50": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(22)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r51": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r52": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(24))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r53": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r54": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(26))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r55": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(28))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r56": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(29))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r57": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r58": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r59": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r60": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r61": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(31))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r62": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(32))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r63": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r64": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r65": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r66": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r67": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-11" }, "r68": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r69": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(10))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r70": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r71": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(2)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r72": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r73": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r74": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r75": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r76": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r77": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13" }, "r78": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "13", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13" }, "r79": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-24" }, "r80": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-25" }, "r81": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-25" }, "r82": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r83": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "235", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/235/tableOfContent" }, "r84": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "275", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/275/tableOfContent" }, "r85": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 4.E)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480418/310-10-S99-2" }, "r86": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "330", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 5.BB)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480581/330-10-S99-2" }, "r87": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "360", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/360/tableOfContent" }, "r88": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1" }, "r89": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 5.CC)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480091/360-10-S99-2" }, "r90": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "440", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/440/tableOfContent" }, "r91": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "470", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/470/tableOfContent" }, "r92": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/505/tableOfContent" }, "r93": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-6" }, "r94": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-7" }, "r95": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.3-04)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-1" }, "r96": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "4", "Subparagraph": "(SAB Topic 4.C)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-4" }, "r97": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "710", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "30", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483043/710-10-30-1" }, "r98": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "38", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38" }, "r99": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(1)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r100": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(11))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r101": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(15)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r102": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(15)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r103": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(16))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r104": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r105": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r106": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(11))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r107": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r108": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r109": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "954", "SubTopic": "450", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477850/954-450-50-1" }, "r110": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r111": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r112": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r113": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r114": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-11B" }, "r115": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(a)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-15" }, "r116": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-15" }, "r117": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-6" }, "r118": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-4" }, "r119": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "840", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481440/840-10-50-2" }, "r120": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "840", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "40", "Subparagraph": "(Note 3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481418/840-10-55-40" }, "r121": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "840", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481501/840-20-50-1" }, "r122": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "840", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481501/840-20-50-2" }, "r123": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Subparagraph": "(a)", "SubTopic": "20", "Topic": "740", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482659/740-20-45-2" }, "r124": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "SubTopic": "210", "Topic": "946", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477796/946-210-45-20" }, "r125": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "6", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "270", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482989/270-10-45-6" }, "r126": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1" }, "r127": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1" }, "r128": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1" }, "r129": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "SubTopic": "360", "Topic": "958", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477798/958-360-50-1" }, "r130": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-11" }, "r131": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-12" }, "r132": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "SubTopic": "360", "Topic": "958", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477798/958-360-50-6" }, "r133": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "SubTopic": "360", "Topic": "958", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477798/958-360-50-7" }, "r134": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "740", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9" }, "r135": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h))", "SubTopic": "10", "Topic": "235", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r136": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Topic": "323", "Publisher": "FASB", "URI": "https://asc.fasb.org/323/tableOfContent" }, "r137": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Topic": "606", "Publisher": "FASB", "URI": "https://asc.fasb.org/606/tableOfContent" }, "r138": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "105", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-6" }, "r139": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "105", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-6" }, "r140": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "205", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-7" }, "r141": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1" }, "r142": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-5" }, "r143": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483489/210-10-50-1" }, "r144": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r145": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(13))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r146": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(14))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r147": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r148": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(16))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r149": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r150": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r151": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r152": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r153": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r154": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r155": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r156": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r157": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r158": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A" }, "r159": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A" }, "r160": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A" }, "r161": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1B" }, "r162": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1B" }, "r163": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-4" }, "r164": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-5" }, "r165": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-6" }, "r166": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(21))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r167": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(24))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r168": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r169": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-24" }, "r170": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-8" }, "r171": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-1" }, "r172": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r173": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(e)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r174": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r175": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r176": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(k)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r177": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(k)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r178": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(m)(1)(iii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r179": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(m)(2)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r180": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-04(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-3" }, "r181": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "23", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-23" }, "r182": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-24" }, "r183": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-5" }, "r184": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r185": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r186": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11" }, "r187": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11" }, "r188": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-12" }, "r189": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-3" }, "r190": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-4" }, "r191": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6" }, "r192": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-7" }, "r193": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-7" }, "r194": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-7" }, "r195": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-8" }, "r196": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-9" }, "r197": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5", "Subparagraph": "(SAB Topic 11.M.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480530/250-10-S99-5" }, "r198": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/260/tableOfContent" }, "r199": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-10" }, "r200": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "16", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-16" }, "r201": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-2" }, "r202": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "60B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-60B" }, "r203": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "60B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-60B" }, "r204": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-7" }, "r205": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1" }, "r206": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1" }, "r207": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-2" }, "r208": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-3" }, "r209": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482635/260-10-55-15" }, "r210": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "270", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1" }, "r211": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "272", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483014/272-10-45-1" }, "r212": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r213": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r214": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r215": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r216": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "25", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25" }, "r217": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r218": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r219": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(ee)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r220": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "40", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-40" }, "r221": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "41", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41" }, "r222": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "42", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-42" }, "r223": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/310/tableOfContent" }, "r224": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-13" }, "r225": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-4" }, "r226": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481664/323-10-45-1" }, "r227": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3" }, "r228": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3" }, "r229": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3" }, "r230": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3" }, "r231": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3" }, "r232": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3" }, "r233": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3" }, "r234": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/326/tableOfContent" }, "r235": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "4", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4" }, "r236": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "4", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4" }, "r237": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "4", "Subparagraph": "(e)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4" }, "r238": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "5", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-5" }, "r239": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479344/326-20-45-1" }, "r240": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13" }, "r241": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13" }, "r242": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13" }, "r243": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13" }, "r244": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13" }, "r245": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "330", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/330/tableOfContent" }, "r246": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "330", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483080/330-10-50-1" }, "r247": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "330", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483080/330-10-50-4" }, "r248": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "340", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "05", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482955/340-10-05-5" }, "r249": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "340", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483032/340-10-45-1" }, "r250": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480265/350-10-S45-1" }, "r251": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/350-20/tableOfContent" }, "r252": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482598/350-20-45-1" }, "r253": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482598/350-20-45-2" }, "r254": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r255": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r256": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-2" }, "r257": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-1" }, "r258": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-2" }, "r259": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r260": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r261": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r262": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r263": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r264": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r265": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r266": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r267": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r268": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-3" }, "r269": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "60", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476166/350-60-65-1" }, "r270": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-3" }, "r271": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r272": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r273": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r274": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r275": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r276": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r277": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1" }, "r278": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1" }, "r279": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1" }, "r280": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1" }, "r281": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 5.P.4.b.1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2" }, "r282": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 5.P.4.b.2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2" }, "r283": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 5.P.4.d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2" }, "r284": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "440", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482648/440-10-50-4" }, "r285": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "440", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482648/440-10-50-4" }, "r286": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-4" }, "r287": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-9" }, "r288": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1" }, "r289": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1" }, "r290": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-4" }, "r291": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8" }, "r292": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8" }, "r293": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8" }, "r294": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8" }, "r295": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8" }, "r296": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6" }, "r297": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6" }, "r298": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r299": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r300": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r301": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r302": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r303": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r304": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r305": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r306": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r307": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r308": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r309": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r310": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r311": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r312": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r313": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r314": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r315": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r316": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1C", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1C" }, "r317": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1C", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1C" }, "r318": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1C", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1C" }, "r319": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1D", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D" }, "r320": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1D", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D" }, "r321": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1D", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D" }, "r322": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1E", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E" }, "r323": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1E", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E" }, "r324": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1E", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E" }, "r325": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1E", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E" }, "r326": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1F", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F" }, "r327": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1F", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F" }, "r328": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1F", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F" }, "r329": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1F", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F" }, "r330": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1I", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I" }, "r331": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1I", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I" }, "r332": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1I", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I" }, "r333": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1I", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I" }, "r334": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r335": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r336": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r337": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r338": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r339": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r340": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r341": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14" }, "r342": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14" }, "r343": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14" }, "r344": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "16", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-16" }, "r345": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18" }, "r346": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18" }, "r347": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18" }, "r348": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.3-04)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-1" }, "r349": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-1" }, "r350": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-2" }, "r351": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-10" }, "r352": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12" }, "r353": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12" }, "r354": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12" }, "r355": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12" }, "r356": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12" }, "r357": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13" }, "r358": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-15" }, "r359": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-4" }, "r360": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5" }, "r361": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-8" }, "r362": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-9" }, "r363": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r364": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(n)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r365": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-5" }, "r366": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/718/tableOfContent" }, "r367": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "1D", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-1D" }, "r368": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-2" }, "r369": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-3" }, "r370": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r371": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r372": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r373": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r374": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r375": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r376": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r377": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r378": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r379": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r380": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r381": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r382": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(04)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r383": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r384": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r385": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r386": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r387": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r388": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r389": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r390": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r391": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r392": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r393": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r394": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r395": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r396": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r397": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r398": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r399": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(v)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r400": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r401": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r402": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r403": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(l)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r404": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.C.Q3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1" }, "r405": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.D.1.Q5)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1" }, "r406": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.D.2.Q6)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1" }, "r407": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.D.3.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1" }, "r408": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.F)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1" }, "r409": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "720", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483359/720-20-50-1" }, "r410": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "730", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482916/730-10-50-1" }, "r411": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/740/tableOfContent" }, "r412": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-10" }, "r413": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12" }, "r414": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12B" }, "r415": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12C" }, "r416": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-14" }, "r417": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15" }, "r418": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "17", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-17" }, "r419": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-21" }, "r420": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-8" }, "r421": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(d)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-8" }, "r422": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.1.Q1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1" }, "r423": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.5.Q1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1" }, "r424": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.7)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1" }, "r425": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 11.C)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-2" }, "r426": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "270", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477891/740-270-50-1" }, "r427": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482603/740-30-50-2" }, "r428": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "25", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478758/740-323-25-1" }, "r429": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r430": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r431": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r432": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r433": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r434": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "60", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1" }, "r435": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "60", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1" }, "r436": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "808", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479402/808-10-50-1" }, "r437": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-25" }, "r438": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-25" }, "r439": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-3" }, "r440": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-3" }, "r441": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r442": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r443": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r444": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r445": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r446": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(i)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r447": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480237/815-40-50-6" }, "r448": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r449": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r450": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r451": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r452": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r453": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r454": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r455": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3" }, "r456": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-10" }, "r457": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28" }, "r458": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "230", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477401/830-230-45-1" }, "r459": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "17", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-17" }, "r460": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20" }, "r461": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20" }, "r462": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20" }, "r463": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20" }, "r464": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20" }, "r465": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481674/830-30-50-1" }, "r466": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481674/830-30-50-2" }, "r467": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-2" }, "r468": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "5", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479832/842-10-65-5" }, "r469": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479832/842-10-65-8" }, "r470": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479832/842-10-65-8" }, "r471": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/842-20/tableOfContent" }, "r472": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "12A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479165/842-20-35-12A" }, "r473": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-1" }, "r474": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-1" }, "r475": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-2" }, "r476": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-3" }, "r477": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4" }, "r478": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4" }, "r479": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4" }, "r480": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-6" }, "r481": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-7A" }, "r482": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-7A" }, "r483": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "848", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(a)(3)(iii)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-2" }, "r484": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "848", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(a)(3)(iii)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-2" }, "r485": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/850/tableOfContent" }, "r486": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-1" }, "r487": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-1" }, "r488": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-1" }, "r489": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-1" }, "r490": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-2" }, "r491": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-3" }, "r492": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-6" }, "r493": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "855", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/855/tableOfContent" }, "r494": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "855", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483399/855-10-50-2" }, "r495": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "855", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483399/855-10-50-2" }, "r496": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r497": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481420/860-30-50-7" }, "r498": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481420/860-30-50-9" }, "r499": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "910", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482546/910-10-50-6" }, "r500": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "912", "SubTopic": "330", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478411/912-330-50-1" }, "r501": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "920", "SubTopic": "350", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478609/920-350-50-1" }, "r502": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "920", "SubTopic": "350", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478609/920-350-50-1" }, "r503": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "920", "SubTopic": "350", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478609/920-350-50-4" }, "r504": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "924", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 11.L)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479941/924-10-S99-1" }, "r505": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "926", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483154/926-20-50-5" }, "r506": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "928", "SubTopic": "340", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478859/928-340-50-1" }, "r507": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(10)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r508": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(10))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r509": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r510": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(26))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r511": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(27))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r512": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-05(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-1" }, "r513": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478451/942-360-50-1" }, "r514": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(1)(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r515": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(12))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r516": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r517": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r518": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r519": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(21))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r520": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r521": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r522": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r523": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r524": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r525": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(8)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r526": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r527": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(11))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r528": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r529": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r530": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r531": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r532": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r533": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r534": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column A))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r535": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column B))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r536": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column C))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r537": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r538": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column E))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r539": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column F))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r540": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-3" }, "r541": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(cc)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-3" }, "r542": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4E", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4E" }, "r543": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r544": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r545": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r546": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(a)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-9" }, "r547": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r548": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r549": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r550": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r551": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r552": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r553": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r554": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r555": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(h)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r556": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(h)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r557": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.W.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479583/944-40-S99-1" }, "r558": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480424/946-10-50-3" }, "r559": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-03(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3" }, "r560": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-03(i)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3" }, "r561": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-03(i)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3" }, "r562": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-11" }, "r563": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-13" }, "r564": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-2" }, "r565": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-5" }, "r566": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-6" }, "r567": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4" }, "r568": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477796/946-210-45-21" }, "r569": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477796/946-210-45-4" }, "r570": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r571": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r572": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r573": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r574": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r575": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r576": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(13)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r577": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(13)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r578": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(14))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r579": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r580": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(16)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r581": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r582": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r583": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r584": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(2)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r585": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r586": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r587": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r588": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r589": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r590": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r591": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r592": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r593": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r594": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r595": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r596": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r597": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r598": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.6-05(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2" }, "r599": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.6-05(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2" }, "r600": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-3" }, "r601": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-7" }, "r602": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r603": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r604": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(c)(2)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r605": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(c)(2)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r606": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r607": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r608": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(g)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r609": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r610": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r611": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r612": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r613": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r614": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r615": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r616": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r617": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r618": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r619": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r620": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r621": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r622": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(1)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r623": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r624": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r625": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r626": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477968/946-235-50-2" }, "r627": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477968/946-235-50-2" }, "r628": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477968/946-235-50-2" }, "r629": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477968/946-235-50-2" }, "r630": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477802/946-310-45-1" }, "r631": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1" }, "r632": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2" }, "r633": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r634": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r635": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6" }, "r636": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "505", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-2" }, "r637": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "505", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-2" }, "r638": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "505", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-6" }, "r639": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "954", "SubTopic": "440", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478522/954-440-50-1" }, "r640": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "976", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477332/976-310-50-1" }, "r641": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "978", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479230/978-310-50-1" }, "r642": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "985", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481283/985-20-50-2" }, "r643": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r644": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(e)", "SubTopic": "10", "Topic": "235", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4" }, "r645": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "13H", "Subparagraph": "(a)", "SubTopic": "40", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H" }, "r646": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1" }, "r647": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1" }, "r648": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1" }, "r649": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(g)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1" }, "r650": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "16", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483444/210-20-55-16" }, "r651": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483444/210-20-55-21" }, "r652": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483444/210-20-55-22" }, "r653": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4" }, "r654": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4" }, "r655": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4" }, "r656": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "52", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482635/260-10-55-52" }, "r657": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r658": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-31" }, "r659": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "48", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-48" }, "r660": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "49", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-49" }, "r661": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "12A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481933/310-10-55-12A" }, "r662": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "340", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "05", "Paragraph": "5", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482955/340-10-05-5" }, "r663": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482548/350-20-55-24" }, "r664": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "40", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482640/350-30-55-40" }, "r665": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r666": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69B" }, "r667": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69C" }, "r668": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69E", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69E" }, "r669": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69F", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69F" }, "r670": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r671": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91" }, "r672": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91" }, "r673": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480547/715-80-55-8" }, "r674": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r675": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "217", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482663/740-10-55-217" }, "r676": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "231", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482663/740-10-55-231" }, "r677": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "100", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100" }, "r678": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "102", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-102" }, "r679": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "103", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-103" }, "r680": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "107", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107" }, "r681": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "107", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107" }, "r682": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "107", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107" }, "r683": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482949/835-30-55-8" }, "r684": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "53", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479589/842-20-55-53" }, "r685": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481372/852-10-55-10" }, "r686": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479401/944-30-55-2" }, "r687": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "13H", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H" }, "r688": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "29F", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-29F" }, "r689": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "9C", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C" }, "r690": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "9C", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C" }, "r691": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "9E", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9E" }, "r692": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "18", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480078/944-80-55-18" }, "r693": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1" }, "r694": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r695": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477439/946-210-55-1" }, "r696": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477802/946-310-45-1" }, "r697": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1" }, "r698": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2" }, "r699": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r700": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6" }, "r701": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-10" }, "r702": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-11" }, "r703": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-12" }, "r704": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b" }, "r705": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b-2" }, "r706": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "d1-1" }, "r707": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 10-Q", "Number": "240", "Section": "308", "Subsection": "a" }, "r708": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "16", "Subsection": "J", "Paragraph": "a" }, "r709": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1" }, "r710": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i" }, "r711": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "A" }, "r712": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "B" }, "r713": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "C" }, "r714": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "D" }, "r715": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "E" }, "r716": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "ii" }, "r717": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "iii" }, "r718": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "2" }, "r719": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a" }, "r720": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1" }, "r721": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "i" }, "r722": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "ii" }, "r723": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iii" }, "r724": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iv" }, "r725": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "v" }, "r726": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "2" }, "r727": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "3" }, "r728": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "b" }, "r729": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a" }, "r730": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1" }, "r731": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "i" }, "r732": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "ii" }, "r733": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iii" }, "r734": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iv" }, "r735": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "v" }, "r736": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "2" }, "r737": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "3" }, "r738": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "b" }, "r739": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Forms 10-K, 10-Q, 20-F", "Number": "240", "Section": "13", "Subsection": "a-1" }, "r740": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v" }, "r741": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "1" }, "r742": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "ii" }, "r743": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii" }, "r744": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "B", "Clause": "1", "Subclause": "ii" }, "r745": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "i" }, "r746": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "ii" }, "r747": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "iii" }, "r748": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "iv" }, "r749": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "v" }, "r750": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "vi" }, "r751": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iv" }, "r752": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "vi" }, "r753": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "3" }, "r754": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "4" }, "r755": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "i" }, "r756": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "ii" }, "r757": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "iii" }, "r758": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "iv" }, "r759": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "6" }, "r760": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "6", "Subparagraph": "i" }, "r761": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1" }, "r762": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i" }, "r763": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "A" }, "r764": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "B" }, "r765": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "C" }, "r766": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "D" }, "r767": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "E" }, "r768": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "ii" }, "r769": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "iii" }, "r770": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "2" }, "r771": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "1" }, "r772": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2" }, "r773": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "A" }, "r774": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "C" }, "r775": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "D" }, "r776": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "E" }, "r777": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "F" }, "r778": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a" }, "r779": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "1" }, "r780": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "A" }, "r781": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "B" }, "r782": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "C" }, "r783": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "D" }, "r784": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "b", "Paragraph": "1" }, "r785": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Section": "402", "Number": "229", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1" }, "r786": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "A", "Number": "229" }, "r787": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "B", "Clause": "1", "Number": "229" }, "r788": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "B", "Clause": "1", "Subclause": "i", "Number": "229" }, "r789": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-T", "Number": "232", "Section": "405" }, "r790": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Securities Act", "Number": "7A", "Section": "B", "Subsection": "2" }, "r791": { "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478156/740-323-50-2" }, "r792": { "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478156/740-323-50-2" }, "r793": { "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478156/740-323-50-2" }, "r794": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "SubTopic": "10", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r795": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(3)", "SubTopic": "10", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r796": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11" }, "r797": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11" }, "r798": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "SubTopic": "10", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-3" }, "r799": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "SubTopic": "10", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-8" }, "r800": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "SubTopic": "10", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-9" }, "r801": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r802": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(10))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r803": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r804": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r805": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r806": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-4" }, "r807": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-5" }, "r808": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-6" }, "r809": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(7)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r810": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(9)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r811": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r812": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2A" }, "r813": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-8" }, "r814": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(f))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r815": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r816": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r817": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r818": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-04(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-3" }, "r819": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "23", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-23" }, "r820": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-24" }, "r821": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-5" }, "r822": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6" }, "r823": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1" }, "r824": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "270", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1" }, "r825": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r826": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r827": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(ee)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r828": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r829": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "34", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-34" }, "r830": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-13" }, "r831": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-2" }, "r832": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-2" }, "r833": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-2" }, "r834": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "310", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481569/310-20-50-1" }, "r835": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3" }, "r836": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3" }, "r837": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13" }, "r838": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "330", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482933/330-10-35-2" }, "r839": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "340", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483032/340-10-45-1" }, "r840": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/350-20/tableOfContent" }, "r841": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r842": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r843": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r844": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r845": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r846": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r847": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r848": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r849": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r850": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1A" }, "r851": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-2" }, "r852": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/350-30/tableOfContent" }, "r853": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-1" }, "r854": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r855": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r856": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r857": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r858": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r859": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r860": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r861": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r862": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r863": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "405", "SubTopic": "30", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/405-30/tableOfContent" }, "r864": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r865": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r866": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r867": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "410", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481931/410-30-50-10" }, "r868": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/450/tableOfContent" }, "r869": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-1" }, "r870": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-4" }, "r871": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-9" }, "r872": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-9" }, "r873": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1" }, "r874": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8" }, "r875": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8" }, "r876": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8" }, "r877": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8" }, "r878": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8" }, "r879": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8" }, "r880": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8" }, "r881": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6" }, "r882": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6" }, "r883": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r884": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r885": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r886": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5" }, "r887": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12" }, "r888": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12A", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12A" }, "r889": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15" }, "r890": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15A" }, "r891": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-22" }, "r892": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-23" }, "r893": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478156/740-323-50-1A" }, "r894": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478156/740-323-50-1A" }, "r895": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478156/740-323-50-1A" }, "r896": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478156/740-323-50-1A" }, "r897": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "805", "SubTopic": "50", "Name": "Accounting Standards Codification", "Section": "15", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480123/805-50-15-3" }, "r898": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r899": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r900": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28" }, "r901": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-2" }, "r902": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-3" }, "r903": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482900/835-30-50-1" }, "r904": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4" }, "r905": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-6" }, "r906": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-2" }, "r907": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-3" }, "r908": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481404/852-10-50-7" }, "r909": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481404/852-10-50-7" }, "r910": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r911": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r912": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r913": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4" }, "r914": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4" }, "r915": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4" }, "r916": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "912", "SubTopic": "730", "Name": "Accounting Standards Codification", "Section": "25", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479532/912-730-25-1" }, "r917": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(13)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r918": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(15)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r919": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(16)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r920": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r921": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479432/944-30-50-2B" }, "r922": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477363/944-310-50-3" }, "r923": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477363/944-310-50-3" }, "r924": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477363/944-310-50-3" }, "r925": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B" }, "r926": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B" }, "r927": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4C" }, "r928": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4D", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4D" }, "r929": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4G", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4G" }, "r930": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r931": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r932": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r933": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r934": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r935": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r936": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r937": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r938": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r939": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r940": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(6)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r941": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r942": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r943": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r944": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r945": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r946": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r947": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r948": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B" }, "r949": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B" }, "r950": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7B", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B" }, "r951": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2" }, "r952": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2" }, "r953": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4" }, "r954": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r955": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r956": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r957": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" } } } ZIP 79 0000950170-24-093388-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0000950170-24-093388-xbrl.zip M4$L#!!0 ( $I+"%E8C..'C30" !7%(P 1 9G1C:2TR,#(T,#8S,"YH M=&WLO6MW&SF2)OQYYU?DJJ>GJ\XKR+A?Y*K:H_:E6S,NVVVIMJ?WBP^N4G91 MI)I)VM+\^C>0)&7J:HE*DDDIZ[ALB9G,!! 13SP!! (__9^SDU[Q)0ZKOQ9X?E5_B MZ[+RO4$U'L;BAX-??RSV^[VR'XO__O.G=\7K@1^?Q/ZH0,7Q:'2Z^^+%UZ]? M=T(J^]6@-Q[!NZH=/SAY42 T??BK8;3Y\^*U'<5BEV+*$=;PYQ#K7?C#Y8YB M5/U_&.]B//>UP>GYL#PZ'A4_^!^+_"UX=[\?>[WSXFW9MWU?VEYQ,'OI-K32 M[Q1[O5[Q*7^K*C[%*@Z_Q+ S>>;Q"(8#AJ1?_;PUU_*O;&

6EQHP?S=[ <,X@J[% MV?TP\+_?<7N^[&QU!3Z[O3_HOP?!#TM_ M\]?":/AB='X:7\"-J#^Y\Z)557E3FZ 'Y,5___KNP!_'$XNN=GU%(_((M!9#/YUM#H ZK&[K*:S1XTO7AI3*KAZ/K@P8>7;AJ/AK?JEWD!5R]& M.)8WOQHN7'IB60TX)>HN)9_<,=>Q6SMUZ9&84OXAGH]BO2M>+*-;J M5P]CA>@.GA/$S8VZ2PI972@B>M$33V18TU+_)37TP?^Y,; MA/.B&IWWXL];)W9X5/9W"SL>#?YW>7(Z&()QC%Z>VI !?+?0IV-NS1].NG8T^Q02=_NQD$IJ$ MB$24 G%C.7)8.,2B8"X*A:F!ATU&^>#$3I)1)37B).HD0GPD[4>*ZDT5S+.M_I-'X1U_@J:/;2]_7Z(9_\5SQ=J M_2\8P$M3322Y5TN)#R"'1!'##AZJ541&.QCD$#&.%#/++EH*:K][. Q[P^'K M\42-KS81>D>)D0F)% P\S3IDN,K QE4REAJJQ:4!S@"T&\;#8,^W?F'X?FUV MB8F07$04*XZX$ P9(1WR)NE$O-3*N/G1G5&#MT ?;.\C/&D0WL)GU6(C_#=Z MKU8*;S457$(#'4,\8H-,4@E%S G'06@9Z'PK7XV'PXM&_B/:X9M^R,QDL48B M1$"FMXWGVZ'U-?69--50H:FS& 7A+.(!U%7SP!#8G3<:WA;=Q8!.G=SNJ\') M23G*PUKM]4,&%#!_X'%EO#:LFG/F-'.(BN00YX!;UH%?T-Y[%SFGR(I3Q<#C3(<@>"ATX&$UT"%5VT/YPZP P:0:X$^A.809:" M/$36(9F%+673_;%.$Q=91$Q:@KB/'AD%N!L=MH%YXK1P]^[/%<_C.#S8@\"% MQHA3GI#C!BS#)FX]9TJE,.M.YFJ['X>#,/:CO]LA^.K1^;LR7;-=K$$=H[=( M4AT19Y0@D'1 3@)68!,$(7SKEX_B'_?#;BYY"@ NEAN F>@"M%5A:*$U/#%J M??*76G@P=I4?EJ=9:)_B%^ C,6M_%N-A')Y50B:@:HRB%+ -2I -PML!*?@@\!:"$KOW_7O M]!C"D.L]?G&9S@YCBJ 4/E:__)1CW-VJ#BGA[44=\^[FV._GK0IX="_'E_5G MQ\//4BRO/K'^M!N-A_5L=P^].AZ0>;5!TS(V(@6<'!B@F MHD*62(4\(99P'@QT8VOVU5C3T-EO9_/'M< M%8^RJ4Y^#?"RL]->Z9+M=0#:!J'@[B<++GGOK*RV?LF__EKV MRY/QR>3>GU[<^(A?9N^^>-.+F[IU6O._BT[6P?WHE\GLCP0:?-&#Z979[[/O MO;@TS+>,.E$V6F;AB4Z!:_>@B%X;L'88]Q -N%O1ME&?V=H%J$Y\,Y"E4XC: M,E>JI3&[[6.MA\,8#D8#__M2!<-F7+8!P8"/X8X"R:WYCP :[1*0.J/!D8;, M4B#<::E@@%] 5T?G'WO0>R"N63ZG^1E_/L]Q_&7Q' X&O>HUN"6X\==!+U0; M(R'.F() $;D(3H%3D)7S$/!KZ0PURGI+7-LDM$K @I$=CG)<^,MD#D@C(B^> MIE$7 /]NX.M9G,O(\1?@5D/; ]S8"R>@Q=4H,_ O<4J]EJS1# %SP^0^ M<N"_51&@TA:YXN0,P)@;AR$,0"\T(BZ*@2IBK@UH'.!@F5WU^HO$&AFJ1@ MQ!-2)H G(12<"'R %):18Q&(UJTE80_R]1<7-\;'>TN=MA(ES2'ZM2D! =,4 M^)CF42:MC;-MDTQVZGE!,(Q[\4.Z>=[J^J@IFKW=Z; _@\][3 M!-*0<%(,6#4-0+(ATD':&(\BH91*:S1KGW?,DIW.W7T8'L3AE]+'J[%.??5) M2LQ@Y6-D$E&<..(X)F2CPF#I1MLDI64)MU%B#=CB:WO^Y5W/+QDU@1WGF:+' MHZ8AQD9C#%+, TE)>2Y::8D$ *B)$,]&W\JIG):CYG+"!,-]U#Y*<&PVKTN1 MF%="4UXX\DIY*XAOG8M[X Q07D8;]%6(,VL0"PJ02,E-K47,1\V-1O]<7_0&QR=;US@9CQUWG,,[$- 2"V5 M1889BKP@.:DE6:Q;1T'NB9\USS@<1EN-A^>U4R,;PS6\$X93B;QW()KH&;(P MAHCJQ#'748?86NAKWVH3;N(@3C7PC-Y,!S9(#FB(F#K' E6ITXT#V0- M?/6LP6H&)J8$BBKG@FJ!D?$<2&6D$7NFO8JTK7*\%^W+NT7LT!\#JW@=O\3> MH"8,*YNW7XM(%=>!!.2"DHC[!$P>B <*@>)HO 3_UK[EQ:8BU'ME;ZV_\U<# MOONJ28,3E]9C$63*BL=#3N602#LFD+*$6^^DQK)UK&<#IL.N2E8!C;RG9.=O M?91DHTB>Q]M"6)^94_+ MD5WN[&:3Q#8I[K3%*(J^Q>7U MA5?N]-NUISG!XKC0$*<#T348 !,>CK0)#F$1C25@=(POG2IMQERBXS9$QSV2 M28-ZD[QUQW%PQ]Q*21,-8?D)3LL&H'5,$R\GE -7GT0*$ *$'&5KE?EBQ,A9 MX:-VF"OU5%V??W]I\]Y*]2G6FO(1K._\ M,.]$G>2[5W\^G[]R-7#Y=J55*PZ-X>F]-N*U"T_7Y'F,\8D2C)3/63Z!!F2R M*!*,$%.!JXA;9Z$/"M(/8J]7]H]RKK4=_A[SAJ6GG%GGC#;\?RB]E&-O>_)R_/;%#^^NXEN!RYR\;G/-W-D5O ML 5_I_,&,J>1 ?*=]UX*QW#"P/?;)H(Z+][^$QS4N!J!40WGEUXN7UC)Q!:[ MI]G,W_HHL_%684(XBBR0G&6,D0E@-A N$8%5L/"G;3)K:US["!1L+$I(1+J\ MBS707.0!."C26.2U41^3I\89W-K\XO8MN['FL/%>52A:)IBUN:<63/A[ L83 M!$=).*"'-L_DDJC@Z<1'IUQ05+5-7@ME?M2;V(\'O; /P?;@2US27--R&(=G M3G$I/!)> =QA!7"G&4?" .4#^L<);NVDR!X\(92Y(MN7>!#]>%COV']SYGOC M$,/;X> D(^!X5%-[B,>G*Z8?X_#@V [CG\]O?L"UE;K1L/2CI:%E"V)>+Y24 M,F\FK/?/YF>[&$/>7:Z-480RW;K\_K92F.7,AGDI$]8YTX2G",[/6V1%WD1K MB4M.41-")Z$-\HW21TZ$0 T4QH; 2]G#H'I2>1(EC21 M00M+@C ;'Z2O>>VGP709[TSB/#CD).>(*^*0!B>'P DFHJQWF+=N)G(#ZGDT M"97.2:G 8T62 "JIB\A8)I!P42>-+764M%5"K4FT7-(\B2>$:^Z1J2,ZGVO= M>1Q0--Z2E!3CNK5>K&5;9M:3 N<]XSP*APC.OBH7QS524!2M8)ZG(+1OW2+ M3#9ORWXYBN_ XP"#!Q4^RJ7Z<@K.J/KS^60QH&>K*Y8VS8"-X=L>FDE1]8V) MS@+0"LHXHIH+Q)VU2$L#0;3AGA$#(TU:MQ+Z_?WQTP];-CVI70$KKX+VR"4!=$1'H",^+]]X*CTV MV#'96L+8[E2$];C P$URIBX#3NMP32$=K$02* WF*=JT_%(R#Q\I\">Y7NI] M1NK2K8\;*6^SDT&&4HFXX3!2G#$$P:YBP".4CYN>5;W"Y62-$4AB(;V3P!3:6Y,R5Y0N0VF'YYEE ]?. S^_4V%T M3A:&B770EQ M/5FTJ(VK--JGD<0/&QQ0F(HYD"IC\TY$&PFR"6ND=$S4.,95^^2YU@S#RV8UGS3X*+-R M,2;L @(K G80A$#.J82"\(R*%"&"V73:MJH%P"9=C)?>)DY0#"3F$WX,=$@76X57KC*.ECK_!\EZ1" ;!/""@!?OCX.B1-@(CX3R-2ENJ9&M3E%I? M#& ]\7VDTG.9" ([,X@S$W+%-HF2YTY8'H+VK:W8MM(I[F? ,",UT3**D5,Y MZR(XBZP* F$3J;(R$F7;NY2XQD#YD@O$!A'>B#1$/DE,<60$RZ5^/4::DH"L ME\P:+)C4K:N9WI:EC#5AZ7V.1VK=7.DZYG5BY-Q8(-V.,P&Q3UY8Q42B2*EE M+- 4XM*S[A[,HAJ#V>A)R%.1CJA\)*@D$ +2B !\\_(D-=ZWSK W(Y!?ES+? MXPS+EBES8X%:(L1+&A)RQGD(U+B$D$!G01@9)+26Z=:%!'=7*OEVX4FNMR?N M@]2$ YF0,4.OR 6P-%))N<2EUY&W+N%Y \LZK8%^),UY3JY%FM/Z?%B%G" 8 M8$E;QX(UUK1N6KY-,UEM$*$5(J@(##+5!UL+GJLM:N2E$98E0O7R2P@M8IP+ M'R.6MD\AE+8E*9@#O+6^=9VQ+_K6=%)SGK MB8P!1(1-3A>DFP9 912G-I*\L@#N4X M+\FEP#UGCK3.QMJ:?+B<8#DE3X#.&*1EK _R3LC(2!#E-A_(HU10K0V66[.] MH05YH9@%S7 ^!HOE(#DIFTOIY"E-%7!P@CG6NK"CQ8<%-L@S,/?"$&8^C"Z)UG'.E=0?>G)SV!NETBBMH%[Y&WN10G,0(9'C@**6+AL-%B MXY-5UK\O>CU4%!O!(,('F^,Y'2R'$58SA< Y8ILL\4JT;O%U ^;EEC/KC:.( MD9& O$H*\3Q_ZKS&B'%"G/:!)[SIFY96STK78700Y7&K(A+8"N ^ 2/+&$8Y MC=EY18E0K>,^FV9TC9W/2@13CEF,I"400E"0DQ403,B\"XE)KXAN7:I25X=Z M\T&"2.$5 \_,6=X%[J5$&N+5G(NJ:/#:4]FZCDC%NZ9[V89UO<.L!"8YXR34* MD4C$>62Y:@MHJ]0<=%/C8%JW)M"6=;?U)&"1E#,=O7U)H) MS04H,E"CZE]B'2*:WUP][X:3LE]4( MXAJ0Z5/><$.IQ $[B2+3^0#*1)#1T2."@:IZ"M$$;UT4VX9-%FT0G7 1XHI< MESMO2HS C8S)1$$13)UG-K4X$&S'_I@&URVI])Y0S?)F1 C+=W&5*E<[RAO*^$,7([#.E LM&J=C:ZRM,8EZZ$(:T3D?:SGRJV/ MLAXCI52Y'E@0,1^Z@)'+IQ]+I9.P+O*8-C[+;ST+SDW-/3";2%+>(T:%R9MH M$[($ E:2/)72@(WYI9<9?W#G55,(XE0T%AR\S_E2G"@ =YZ+Y"L3#".$M'C% MX4&I_ >#-/H*OGVN%-3&*&B4\,?9+)2443Z?4@:44#$<$RBOPK1U#G@#$MO: MP+&CB\X8BI2@ #W<,V0E#A#-6P,\FRFQ_"UKFS$'Q1+'23F'A 'LXRG; #,> MX>1TXMX8T;X"FVV*IEN@[)S00(TT*.7)0R[SL8L&.)'T(<]5>>O#IL]5K3NQ MJ\'I*TYQPM[GHI R'Q@0 S(:(@WJ&'&Y:C$88UNEU6IBT.#.!HK M$C<'9U8!C;,$44OSHK$UR.33AX+&U) HO6UO 8>6'VW?I)2"YD0"@R,DV5PA M+Y?9$!Q(H@R 5IJQT#IBL('1Z!HV)//(0(32(9_/H^ D,PDK";+4II",%4ZU MKN986TK>K$=B@D;K(?[-6U$I>< @ A(%(#;PEQ&P0KF$>TB)E(F MS=C0A%N;[?^PH]8O"C)N7*TD(75,)&J0$8B'0 1D6!'(^!ND5331N_#K N@Z) M7L-&&N%IWF7K@'2JO+%-1J2UT"B2()W2,:K0NI6Y5<\'W*M!:TF*6A,]\IH3 M'SB2#F"94PXZ@P$'4B1Y+5?Z%I8I;$AG#FUY/+;OX]74ZQ%) MN7RZ(F+"Y3T@./,D27-Q76HY(8FJUJU3M#P)M"D>*['BB5&/J!,$C"D?>FF( M!F= DB6!$K"T#17-JAHN@=3R::Y%AK!=B&Q?7EE!"7DB3F-4-* M,0UFI0-R1'AD#)8I"$N4BYU45KTF*#5-AAN!K)%YIR\!/N>Q15XJ8Z+E^4CS M#9?*"F/M)KV0\5SE^G;*"#\]Y-?9 1.)<]DM&KYV]V6+)AUY]PUR>0\UBP? MG0BA-$9< I.SA$)89"GX(.9EY_I($(VF&*,H:1#-,BD$*67AK/V&E4;&$,+DO\5=_ \ MX!,&W%;>BDQ A-[D$H;"*LL";2\5;_T"Z7JB*R7 U;&ZPE_>2NRMRXPQ(.$4 M<9*J?&1]VT3:HERC-60I*$.($4X@B:5$G(2\7)JS,PV+/*_G!+GI.+IN*ME@ MG*Q,XIKGRF8*K(IKB)B=Y0H%A?.&?:/5QFZV67V&\R.D,@967(ODM\^O[7EU M,>0G=?/CI#/YRNS[LPNSW_,#;GC8*=QS[6'3!L&/#WQ:E3/JKC=N.FSUQ0<^ M\;>#U]<>5U8#3HG:A6L/?]J@U[.3S+^+YX;R"ZC;_.WOQR>3:OH+OOK:]_.' MKV-_<%+V;WKL?0?HTB->7&[]I9Z_*,]VX5F#\=#':O+K<;2A5F+XPB__5A0_ MP;]%-3KO@5V>VA#*_A$:#4YW\8XH^R_A+>@XYA@*/E#P@1N@SQ(8)/?-P%5$5? MA_;TY95WW_DZ>-?7,HR.=U,Y0K69]?-+_N,/1.*7/[W([X)1.IT;J8:[*.&K MV=_CH1DAOTPOPHZ 5'X;?W^X=O7A<'AWN' M;PY^?7;I_W#_3<'Q=[[U\6;_W[UU[WW?WE3O/KPZZ_[!P?['][/ MQJS!YB\JQ+K%?]\[^.O^^[\>;534"RXF9/L$F1*:(N%^O;#IU^+ MFZ3T@&=#3P!$^H-^C6VEKQ'U[6<:G7-$ R' 0>83JH!_*VE18H%S%[$@B6P5 M4V?V*:;,*9Q,0I,0D8A2()ZKF#@L'&)1,!>%PM3HK:)O,V,($=S: .@4]"1G M#;9C0 E&?[O0ITO#\LL5-1M9UXNSUDY5)J/:KAV/!B^G2)I;G($5L"_?CGKV M?# >P3O/8G@Y>3_!> ?_4)7=V?>G-\%=X0)>Z]?Q':W)'U]NO;CE.MGA]([+ANU(8RYN^.G% M:'BU-5/G4MO-C7+["EU%#NC9[[OUWRA_<$.#O\3AJ/2V-S4\,-R7,W!6ENFZ;@: N1?ECM]B5#8PQ4WT2%J=#21Q,"JJ4524,,]\T_Q=# <;15I,#RQHY^W2N@*D'2PF4'/V5YO, *'WX#YW>Y_C>+R MY??-"K0I+*P%MTB=KIJP/("%M*JW5[C+3?UM4BG^]MO>I\,WG][]H_CTYN.' M3X?%Q]\^'?RV]_ZP./Q0 #,Y!/I1$%9\^%00\4/XL?CPMCC\ZYMBCK1<$):] M5X?Y,C&,WS2^=X$47A5(M85/KU4]GVAO%W- \GL4936AQ:W4Q^-?, MC123>8PB]D,,ETCGS;Z."ZF( MHHA,V5ARU#1F(!?%)9E03CD9NF?-W'NFEO M)I.7ESS=;H!/T F\Y3A_#05[CLZC':+87^+@_>>X'PN&M^\Q3)1X&92V"#LE M[$ M,HKRM^9,/_>VVYQ"X%Q@G7.&W.Y5&LN M16H3)DAPZ06E7!KE'NL6WM0+TKDODZZT0PTQ]))C)O#]9LX;]OKF/OKV^/40 M8;B.3#"4=^8@;D/>N),B(@$;(H-@5,AFQ/LI'M6G?_5'>6=@.]9%WAZ^*@X^ MO-O[M%WLOW^U\QU!MT GZ_7"Q[2G?KW>$0N^_X4, MN"&$*74":YVD]6HP[H^&YZ\&(5X/7:I\1ZYOF)^SU/FXU[%G^C% M1&8/40VS:3',T[0.K!5GV($YV,!S,B0'OQX\TD398+F*T3QZ_G5B'8?V;'^: M_#A)\6Z,P]TFUWSDL":2JGLPL_M,%FT X"[7JNXAG%L)08V'!41L@YPY7/QS M/"RK4/HZ:@.&4,YC9WW;\,CVR_^I?_^Q0ZCU(%1[U6E_Y]/.P4XQ/6-N6%R& MEN+]8.=&I=ELZVZ#PZ!:."5M1-KFTZ 4DJD'YW#,W$8>R$, M8U5-_WE7]B-9HK,PF.+B?3&M1)4AZ3">0;#RUZ_G*POW:G.[I7W;WYFWN4-D MWGF&-5!>QG-- .PB0C[\N,KI$D1V,X=O%/J+R>PY^12*: M1YR6FJ_3FDDJ09 NI&DM52$MDLQ);YD((CYZ]>:2+KR"'S\,#P=?EQG@[(VK M4=EOAQ(L;J?*6I*HI"AYB1&G-" =L$'41I>H$\9;VZAL:D[V8?@18E#@7VL- M42=@VPH)*JV$Z1CG4V2O^O/*TGMI8'"I+N-W/?Q3&VA%V!*VK(N3Y^*!53*R7FB[3QQWN$78MDM23K;- :46I WA)3",D80\3I M2$,""?+P6'GGDC>]C\>#_C*R6A:6.6BV,EBN):>E+7#V+17E3U4QBKUXFJ54 M]&LQ;>#T;%WFDNF9+927LPK]@8 M>3RJFV\'0P"=&C"WZQDJ^,5.(Q';#[./4KV[I\B[F\ T4TXJZA]%H-MY:JOH MV6I4#.LD\A5G@#XFY?A1X_;MS+=I_E4CHAKTRE#, M-.9R79LZ))S>/QF[BV_,/JZE=?TY-\2;%T5P)N4_+A[TD#BT3AMM2H_H]:Q6V)6SHD@GD/,Z@/-QQ1K M9*7A2 2&N>>.L9R-^KB8=&K_67KP+-""TMII)$P!(B!$8]<(1>\1L[8:!F.*K!'%SJ;H<6;J8>I-_9< M2S;(_F?1/(-;*08$-.]M%>R_)HA2_&J'O\=1\>[=JP76%6]XI/,'3OA%/XZ@ M/=#4WX$;Q3J%.0?+V*E+9@S#;]GK3Z88F%=1C8'%5<>#O+MJMC=V=&Q'5]O^U5YN96[BY,O3/ORX74^U_$ G?71@ MI'#=_1-ZD.^O;X4OY59,GY.W[U=U(^I&YND7@XM@SZN=VJ(6GT2[4:8/T6M) MQ)QFMV.1[-$K%=P0RHAD@,2 WMP;X-E6&>2-,3%()7 2S22!O!H/A]"3246& M[.)'=K1P-9U'C>0_X*YB&4EC3:B8(&M4L?>##KCO"]P9T #+3LK1"- O]@#3 MAH-^YGV]\R("!SPO]C/!LK[.YMVPRP;Y27LOL#M6/^XTKK![P]+V MEI,N\#@#Z3Q0XQY(8F>4EA$E$0+B"4)+DYA'/EB69R&8\@VE(Q>N?"U')9>_>DOGKGRO[$\\,Z$.T5G4-1]J M->\+%UW6W]#55V+N*G)Q5PWVNY9L[_RB7/2+=S7USN80O(3%X7LM?\RC*%$[ M#%ZQ8 [UO$I-GS3_<'QUV\R2ZF ^8I;OW8<3\.0I9(@RV6B01">=$/;[G+4.'P%"GHT&)[?, %> MWU2KKI_>U.1<^-ZM]O'H=91G;#8/V.GQA ;L]E3)&SCI,QR?SJ]J,"ODFF4\;9?5T';#FT*2IN.0YS".W1!T0] -03<$W1!T0] - M03<$S6? SU$M8,GY33]OT:UN^O=> GIS\XK/HOM9Q>3<1T4_0X&HZ;#A[G M3;@+'CM\[X:@&X)N"+HA>"C76^T>D/M0@+64_'@625SICF2I7/[EQARO,MV4 M8%RG%<=0] =U5O"XFB1:04>7_ZUA%?#:XL^-'N0UT.^ ME%6]P-:W?5_:7DY_R*>-Y)NKD>T'.PQ5D6NWEN&VL@_L!_OCC;E/M^S0:(!L M$AFUMMR@J'P"XLCK EH>,2^UB$GA(!Z]W6Q*-L^^G1XY.2"YP76*9>1HWK/$ MTK.PO(>G3U;'L=>;&6?Q YAJH?:/F/;=B(M-8K#\K?&WEF/;J M5.K_'/?."T:VBWQ$_'UJQ=_UJ@=0V\M=O##=M_4V"N "TTV$C.MHM4%88H\X M$1$Y02C2,DBG.;.*7#L=@-E$DO+@PFD^$,3JA"PA%I'D*4 D\'C&S81UF4> MZCW9!\=V&*L/XU%-6T"/MXIQOYP\_K?/57UU"]#]G:^^,3 M% 8C-+UEZQ="U3:3;-[][ZS[T9&TOAR&<>;[A?%%#/ZFV4=5[ MX[_&82P&W^2P=$^/%)_V4HJ].>/=_-5R]"WUE/=T0Y:Z.8+E_944&9.SUY.Y:8D_ RRGG7LWDCT_;-^+W6G/F-^V0>=TP6E>KCW MYW=O\E'PKSZ\/WSS_O#@:>P0NFN[SETGY"J]H^_:E*-VB+[/MIQ:918K4W:A M'E=;[K_?>_]J?^]= 1'7AT^_[AWN?WC_T.$FC]WZ M>/\A?H3:7O7^*UI*NW_?2->WA_3-%L?#/'WPAS08?K7#\+DW&/P.Y.=S?:#= MR9W%(E*Z66'KUX3HIV<4[X[[0))Z93_>5;@\OQQ-7UY507Q?';QH5T(/)4#*TAC=@'NRC(3JN[>H$IT*^3SW<<1=P@@%PL[AY<0$?Q MPV]].P[P_/#C\X81VL'(4X21)?1M?FV)\KH:[G>Z.S^),OW&;4G12\4:Z&E= M7SAOIO[L; _@('ZNCF,C7(_=*0XJ!NR'U0Z/L2 MN!#JD//!Z,G>RAZ/G":OT//)X<6&ST>2]"/^Z#G7:ESJT;-.C.Y MRIF<=<;0\: 'SZUFM1S?_&MMQ#SOU1?U-%=?UK&C>B5++\LLP%(OW])V+-_>V,_+:[?T\TFP MJT"57VW?'M5@,0U5J^)U6?EQ5>4M-_GH@KV^[9U794W*OF%,!J')7N!\SZ=8 MC7L3WO;A8D:SW>#32!K@K:LG]YX [."F76;8=:S)[-UV&/+R2ZEUS*'E&O]8 MYL VACFPS__*131*B '*+_$S>.?\06_V>P#GO@I>\;>Y1M04X6_?&E$SC-Z@ M&N95=>Q5G;LH8:\ M";N=G]:>WX;V6SUPT^_^Y"A=\K+X/+*] M"?V*=<&\5?"O=_FE$^(U>6F[F=?2DPX?G+[=04E;[:M1*-G;*"RQGX=E]?OG M9/UH,%P)CN3IV^+MY'T=A'00TD%(2S-0[H<@]/.X/RG%&8.PBM?O=$ M:PRU Z'6+V;?#X38YQ"3S=EEG\>G@SX 3[\<#&?X4ZYF@OKUM G%;] $P)S< MA#GH>>8P(SJ8Z6"FM8M?]X,9_AGZ$H'CI CL)GQ+4%E)$BY+;!V?V4 OW]T MPP-4KX)/[2B3T,_YA"3#5Z%\!_M_>;]W^-NG-PMH7QZG157O,2/7N/;=N6GU MQI-=UYGS<^7==[[NOFXG=^[9'W5T\^$NJSN3YRGWK3O(:<,.O\F"DMQ\^_7WOTVOT[L.'_]I__Y?BX'#O\,VO-YR0=.,QDWR'WW7(Y&,\ M5Q.'YRZL.X?'996WA U!CKWSXE,\'0Q'Q:!?O(6(M2 8_:WX8>OJ]:T?ZW,= M;=FOBG3KP04[Q5ZO-_=[,9@>R%OW<;[$$+1A-!AF$I&/J_;CX1"N%#E?HIJ] M:'(V[^C&UI[8\\+%.ULR5])H&(_@KGS#8#PLTCB3*_CP8M_\MTJ@]4+FMT.S M3P>3 Z*W"S>NH$555>2S$4?QZ+R^$_S<]#L#]\_L!;],%DA/+G;VU^=T3]_X M[37Y='#?&^9,>WS1>#N\>\QN/Y*B\"!"&/$RFT:9RHEPJL%)A"L5 M-,2=U\='CB>+P)ELPUB-/32_JM-&*7[I8J^,7^)V_2MY.?L8GGSMH\&X%ZY^ M>#K("@QBN7:A=_T)8#"A]*.K'Q\-;*^Z^F$5X^_7/CN^J0F@=C=\5!S;Z[WZ M>M/W(YC]"0SI]?[FD]G'US[/^SA]>7K#-\ILS=>??W8:YSJ=!=('W:\W?D[. M]P3QU++9GIIF50)VV&$!WP2#J&H; (T%:8:+4A2U2L_T?GNJ]'!3W89:GV\] M"O1YX.E=1G4[AF5C'/3A]ZFNU@-9_#W6ZE0XFZL,321VQ]-!=D<1G@'PG2U] M!J0319C#- "0?TYH.OQ>;_N=@A(89'[.9=R;H@C@]JCX"FV9&&Z-NA-DN00K MVW/?])=JD]R(L7?"3-G_,NC!JW[O#[Y.GC'N3W[."77PJG'?0_0)[B$O_FY/ ML+?6Y/(DCZJ=>I&,AW7SH'^?)Q[FC= ME.V)B@=0K>'YMV^,!AD&LQ$/H;^];"YLZWS P/9#VH M^]#+T#H%T[N@^N_?Q%+WWBUGF9;$UL^^5I3DV8)>W942N'B&V)N![ PA,%/AD M !+R\[6_X0; C8D@+N10;,UW:6LFY-H39^7>Z_>SDZVBML^IQ5XRT9HD M9$YP7 (= &^?=1%L: I[$\V?%$[(O&*[.!^,BXG_K=5V.,6W[V(A,(TY*,VO MO(1Q.T5&ZCF\\^70CT_R<=8^9I*8>K%NSG0X[WA3!I5I+Z;&7'=BX %_)R*] M##1%36BF4#$/'C5DC(X'59PA](SUWFG]S]G=[H-;"&%*R^=D4J/@C'Q=@.., M"F69S+A.-1\9U$*?N+/\C32E\Z=E?Z)$_>FIZ+WX)?N6J<+7NE3%JY8Q<=HY M5ZJ86W4L[!<++\Z'\(*=C&M%G9ZVGLL'?@<<8!SABW->N&;5\X_//\%#H9&V M&O3K]T!#RCI0F]S]K9G;U[\^C:5FWJ'V>AF,>A%HYV0TQI<&;4[(/H_%M^"[$,-?^6T0Q!U(7>#3I#5",6$T"I@R[=IR?$B?]R?*!!O?. M)ZA32W)TY?'/VOK^\0V;)X*_D=I^+8%,U.%@=N@98>OHN]:,.1IV)1*?*N+M MW.KK5+,F['8RV7"7/QB-AB40H#G+ T4#,E;5+'@:'_>GQG]L>ZG6B"DC@]?7 MQ7MFL2YTI\R^*-V<^GH[R_<.<@3^<$'1["ES=U[K5LU^WLUZ&00TB.4#.^G8Z=G!'#2.3 M-TQ0KHJ3(.&.N9;O3H#!ZXYC'?;8"?)G"\I=R$_NPS#- >3VE5 O$Y7\U:_0 MDJM8UJW]W+@^LAKE):M<*"'=,LEU6$2$[$BL_GBANG4);(*7AY:3T:@74\KO M'!RZRI63_<,WOQ9DYW]].^3[86LGR.P81:Z,H]G!4MTUD)NI4\M."'@<)-VB M&&31);7#5\7! **H[6*_[V^EPDLNF':J!#!C_X.748^869@<*NIIO1\!^!F-@ M,>59#"\G[R,8[^ _SKX W>S9TRKN5O'4YC65V5C5Z4R39V]=37<#UEA.%O]V M9]^_(?%U\CII=C3XJPD?N.$ZV>'ZKLMW70/WN.A75_#6[YWRYZS__6@X@* 4 M394MU?\UFFX\S<6\(%0S[@L11 U9Q4S#;^99>KV9N]J&5F\&+[EMZ/YSW(\%P_7RQ(W[J9M1H%:,VSK*NCV-WG86=+L%75ODZZSH ML=4";R82'L8@^640B35,QS2I@7L'!V\NS1D\0.W:,A.U;&!Z4I4VGUEAT>?8 MW4ZQGT%WVQ1,;[@/?#7-RK15=7FJK?.%3]N&GAED/,?N=HK]#+J[>#RXP!G> MXK8M[=]W#/.+%,LZU7N9]2'J@^?KU-S\0TZV^6)[L?]]G[G@>&V@([WAD?U! MN[I[60%NZ^>_-RC3=H#-(Q3_I_(,Q-A_.[1U.E6]QOWVLQ1"^L0X16!-MC 9OU=EBT+)/>5_&J\^:<^8T^\BYS1Y MN57T[0DT>%RA(VM/=[/9[?5#_N?--YO;&[VRP^%YV3_ZO[8WCEO%N%].WO+; MY]\.7H.[ SG$NGY&B+X\L;WJYRT$OTTRSW[>*L]&N_WQ"0J#>I-'OF/K%X*W ME3(_O;CNUZ<;OHQU%'CI^T>75>Y)(7P<%;D1C" ?[BUG'@MSP@&;"0 MCBOA*&F"$\^,[=.%K;V/H^E$;D/.@Y-M0<@S=QX;K=T==CUEZ3:.73A:IQBU M*$@K$ \>XGEI$@K$R^A#DLK))ACP"K!+ O%]]F%\-RV\&N*[W\\[%P?#^>,^ M.J[[%"VJ\Q?S_B)P'@G%&ID(L,^3 ^P/'B,N@,.2D +CK@FN.[.O("S7H@ENNP2L M8ML&=W.XW1SN*JCLQV$\M668JUOH'Y0/P7E R8/SX(9XK8H 5M@B-/#??-V6G>UK_7#_4Y3WNUT38[ MM4+XMI%+G%I9?$_MTS"5=AA"!Y4=5*YZ.L%*(I0@*&%/ "H914[XB&2@WD@KA4JL.ZALV4QU_<0&^'W]G$TC^(>#42Z#WI'ZYQ,[;S0/:9Z0 M6\DT]QQYI8&0$YX).:'@=(CPCNE$HFTD06,)_D3S;4;Q,Y\*VFAU[L#J*4NW M<; 2'DM#-'!@BC'B.J^P&2#'1/EH<# FD&NS!PME9"R#_&*]+;!^YFBU](GK M=I.S1UC$A\F)//VCHA=M%8O:XM @H7P$2$=.2MPN+8_91'B>F%W[[+9?LK2;1R[O/*>I" 1$8P"#AF-=#06"7B^-"QH+TP3/'8UV*5)EUF\Y/G: M=C.W1R58Y),F1Y/S>7,%B=-\IDJW3^[IVTSG$>8]0J+,>ADM(E(PQ%.,R*ED M4 24""D*%YK)'9[9V\>>[8_V^N'-S.2:R\^CVYQW9':#E;N#KJV+6QF "4Z?.8!UT[.+&LE,%3L2^Z0-I/,! ME^K^2,(P5P$9Z@'/;8CP$Y7(>1%D("YAV4A*;,,XK[;),O>A=8K<4=5.NBV" M*2)TP!F7%#4: 7&%,-M*B9@'Y#%4I8BOE59B+L).4&36(BYT0I8!E'OG"*=P MB4;>!$&=&-NOM:WM7YA:U=ABFZ =7]U@O>Y0ZRE+M_FU(>"8VE&&K-$8<8ES M><2@$94D C1)[*5O@J\N%[4H?^X;3KO9U(6W<-45Q+J]6ETYG,6%_6S+X21% MHU%&(D$\11GXD?,I(D((!K^2='"ZD?U>WZK?O!_T?:-[@.FV-$M,C7TR]6\V MFCAUV-AAXZJ+N 06*96 ^4RRLX^]-6B+=H=D4PV"<\Z;7Z*56?W#H M?0;BB3HLEW",1">D0F1 S+E!)I\PJA1QP/$9N* &JXXU5L$';S.QQ.F?.Q5B ML[Q4Q^ [=.S0<=$D9**1<6V20M"HDH+H(A@C6RHZY9=*1L&ZL. M'9<[A7Z3&?3;)R=_M[_UY_]W^X?Z;@V+O_>OBX/##J__ZZX=WK]]\ M.OA3\>9OO^T?_N-[*MB:@6G2\< @YRL_;]&MN_O9#A!=@L_MNOLDN]LI]C/H M[N*S7)V'O#+(TS*V1:^TKNR5HWLAPH\.-KKN=8G>2[@XO7TV.UI[W M,(BCJCBUY];U8K?.LT')C*N?I6P'QC2_MXP'PI***'CI$!=.(2<30$NTP03N MB"#7]I8MM#XSM;:/$V-K^,0%M2WT<\_6W6B][N"K@Z^%SHD))C'*#1*>:L2= ME<@X3U%@Q@6J+);DVO+R0@LHRX0OM6W4<]\?U9USOC+6.QS'4,3)(:!==M/3 M-JO.6US:F*:T\I1'!'Z"(&YS[5KK$E+28RYBC$Y>.VAW0;*;C>S=MWG89AT& MI=N:+3&%ME/MCN]VTFT1< 6K@Y9.(T(Y1YRRB(QT/N<).4Y"HBY=.P)K09J[ M5.!B?%OS[F3$;H)W-56Z_> D%B-[%KM)WN=A6IW7N$1W0P(OP26B20O$C;/( M)4,1(YX'8JBE-C9!=P^SA2UG8A=WY\MLL$9W>/64I;N$0[^-4DE!9*X!=K@3 M!NF43WM5V% N>0SV6K6K15CN\O!*=]RVF\9=!;=]'5,$Q0W%,'Z)_7'':Y^V M675^XG(]W&@$]@89IC/F ]R;$!*"SRR3.!B.&]E3^@J>D-_\]W)T_&I<06_C M<#8U0=A3UFZS1^E"!372FL021F.7-1(4^613$DG@IF4 MO)&-GRN$,+8M27?^3#>UN[KZBO[A^UTZ'MP5%.L*BEVJU1LQL%^%<+ :<<$% M\&*N$85?E1-!NV:.(Z\M=FGKBGJ;XB7ZGB=34FRC25B'CATZKKK6ZT3G>(]92EV_QL@4G1)XF19R$ M^4,%+?AP5@W3!:4\'PZQ9'9]]TI;4 M>8=Y[V"8D]@:BZ0$1LI5R!D:,2+&O99!$.)](]OK+JSP73;"B^7,Q@^J(-L$ MJV?N*S9:PSO\>LK2;?[@,:,89Y(@*:+*:V% =K#!R&@718C),9T:F>U='7Y1 M_LSQJSN _7$Y%J YJ)NG[582NY7$QQ8JBES:&)# '/R$IAA9PBR*7%ABA)-. M-W>HY=ST2>-.A6U+O42G\F06$S>:6G4 V0'DJC=UZ&AL2@1A'3WBP2?D./Q$ M=6)!4Z&3",M(M6@<(/FV)BL['&># 7*EN=)=MD7'WCOGU#FG14^QI,P)%1Q2 M6B?$%?5(4V.0%A%S;8S4]-K.]$=F:C2UX"FW"5YB<=$GXXXZOMY!8@>)#YC0 M,"H29RF2A$7$HU9YLEPCFX(4P.439;3A5)"&(%'B;6$Z2%SFW/E-ZK4Q1W-= M'C9401!:GJ'C,@#AWWW[V4 L2IW%* AG(5#-6W=S$B=ETALM-(G.71W[:P]1 M4ANN'$>&Y=1/*20R41AD$A:6>BHI5@V:\*O!R4DY.HGYN!/;#[59EOVCV/=@ M5L4/[P>C6!#^XX42W/A/=X38<_+_77>?9'<[Q7X&W>U.G5[441Z,!O[WXT$/ M"%SU'W_(A[._+.*_QN7HO'.#S\9\GAE:/,?N=HK]#+K;%:-F4%9Z?LN+?F;&ZN<_> M21UIE @[(A$G!N?V$Q2Q2Y;':#AM9 9N/7W&.Z :Y(99NENF[1I2KPF:G$8 MC-SV[6(EZALM43'QB#0A!M07,V2DQ2@J8JPQPE!CFE??6CK5WGAT/!@"OH1+ M(JR[7\U+#"^DI91CX[A+B# &EHFC18Y)A@05PJ:@H N-;!E<:M<(W@9)Y__7 MI)"3)A?VHD,O5Z.8SGO,0:&0BH0@SIA%FDN)(DB-$D>53M>R-4LO^^LJ]F_W%B9*X3D*S(&YB13S.6 "$4L#3A:4CU_S%DWI9!.]@A[% M-2EB63>_L%7V[?\Y[L>"X>V"8LKKB>77T<<3!^C)2/TIZU)-GO3VBHU>-6\< M+1EAF@O@84Q8C\#I:>0HCB@0Y0E7%CMQK:KKX]&RIF&+K8VF\BP&]#]Q.,A" MUI30E\]\O]!&*W0'5T]9NHW#%?>*2(8QHHY$Q+53R"3 +,NQ<-0S[,FU_=J/ MIT$=7&UJ$O4SGN+*"12#_OKFM[S +G"ED$_4(FYESASQ!)FHK#>:1G:]\,YB M1U[D?K9@%6-U)Y/G62E"I21;@N] M+H7,,U@KT4"L,4N.*:1J] C1(:<%SVM6UH1 *6/7-+ 1]%BB!N)(F/2.(0' M"'X:R(H5)" AJ5/0GZ1\(V>4+U4#Q3;G8IO1FTH$KA 29[.LH(^#;[WK9EV[ M:8QN&N.&LG.>*D!,!+@9##X#QG-DW("L]#4<8 7P/.(.8SKH,.>^1S& M1FMSAU5/6;J-8Y65THDD.<(B4"!^2B#G/4?.:8^M9)[XIHE?AU6MV!+7S;<^ MJ&0%C%$U'IY/9ERW"SL"HZA&+PN"MY6$&%'*8C9]T)'BSM%TCN;:&=G!$<4T M"B1*(,7)(TTD^!":/T\D)M+(O.O,4+NEO4Z?.[1Z)M)MOIB$PUH)K5"D$6BQ M(1$9+RCR@M/(G(G:7ZN.N0@M[M"J/<2X2T18Q'[V0BBS>ME><6K+ $TOO#TM M1[;7T=LG;6"=P[BTJR0(8PS5>::7(^Z"0H9XADQD-!_8ZI-NI"#;-W/["-:V MWW\UL;6F:BG+7"STN<^I;+1F=[CUE*7;_,)_%)CCO-QO>0+$-K(;;MFX1;:UEL\SLLL!O6A)'YP M\ZCOVJ_!*+ MWJ#J*AH_;5-[KD[DA]4DEU,1N3(:8:/S)E]#D2;PE[(R6L8TP]=+>2Y$IK\9 M_WP:KC.[#E]W'T(1W:L_L[JPK&'G[Z7F%^]K2.JKZL![>)_,(2_M/ 6,1^((I8JUUKS$(]"R MF]M>/=$/,96^''6\?E$3Z\KR/_&R_*OQ=B$9K5DD0.P)>#MJ\SY,9A'622MN M%9/7O=TBL<&G.+)E/X8W=M@O^T?5'!:\GD!!TPZ.4;Q-^!+/]V[I.0!=V-"! M<0?&&PG&1*D8I2)($)JK7&J&3/(Y32:XX#DFCC>2)K-Z,*;&;!-VTZZ[#HP; MBTH>L?SP+,Y/K-_V=3*$;M +WSE0L5JX5GP7M72.\IDZREOR/Z/EFE."G+ $ M(@86D=8<(_!IWB1JB3:-;.&&__O2'-K- _%$79H5 MBL5+%N%S6R6 MC^O8?X>;'6XN>A8+I2HHZB$ "#4&>J0M-4@;CXVEC,AX[2R61YZXOE3.7==[[NOKW.G0OEE\+W; 6*=&J/(NH/0IQ]!]J5 M+\]ZWXMG*)3#6&O/+EC=^*3_,I35:<^>[^:K+T]MR.43YV+$"? MXVI4IO/96^JOHM@/H$=GN8OPA-T+E3I;MMY\ ZY%@I['2>3P.!;6YTT6MG^> MZT[V!Z,<$PWA8P CN.UH6.\_'HYRZ9W1<:QB\6J0 \ JAOQ3'8#7>5QOR[[M M^Q)NKRMKUT?0[\RK^)-5XR>K'O020H$I3O_.=GM\,751F^UD/L(F:.NN[7VU MY]7+K1<7!GYQY\0\ZP&Y:IL$?EV+ :Y7=RX&M+U*-#^Q,MG:X7>SW_'=YU]X2A"QG4Y,MU/8?QGT[#O"R\..50:@)WDU3K78\&LPX M;6YAAD/0XWP[ JHS&$_+TKRNSCY_*:NRC@3.=V??OV%:>?(ZKG>,_.,4W6^X3G8(O^OR'=?,CJ0+?K5[ M:[-OO6.-0M^9*[Y$ ="%? M^7E+;MW=S0>M\JY-ZHVN/!T/8RQ.X/?CJH!@$_SWK)+I8IIRG^70-@QB9SJ= MZ3S.= [*L\YP%M:N%GGR13.;EFG#32KJ#V6_&!T/QI7MAVJ[B&<^YAY.JU?W M0W%Q)EL!$9S][LZ;S1G%I2 A[9#PZH0W^?H.3+I M<40^<(6X8@HY3"E2B7J#N;(V^JN;NI3 FC'/$<DFW>H[@[7!P\@H>EAOQ]W)T_&I6PTCQHPE%D)B%.I4.&4LK$A8;Q*4F2*OHD?$,&Z:M3(ZW!^4HV<:*=S#7P=PFR+:#N261 M.<*$$.2L),A2FT(R M%DB=:0_,$;,-0-S!7!>@MDZ0':8M!=.<,%0F3)'PUD. "L&FM4$AAH,7+)CD MB+E6K2DDG!2+R-%@$8\F(&V,1Y%02J4UFLD643?!MJ58^6%'[<*TA?,NNDG/ M^QO801Q^*7WL?,J"AK3H%H=VF=H3KX"[9'<4(HTD*(F\LP8H-F; E),'GAU9 MLD2$Q*Y1[&0#29X1Q)R#[P2FD2%4(V%3S).LSO(;SB-:VTP">*,E3B0L7B_W M29C1LY]LZ$"T ]'@.9?,Y:4FJQ$'AH^3*\J\@ M/.V9<@2NG/NBFIX(655RJ,.6*JHJNC\Z<"M^Y&+* 7OI)CC4DQ3;/(),TB; M)*C "SA>-"2GN,\^F.I1WE9,GB-/1KFJ2MQ4E<4:\">&P(Q3+"7'LN]0\-[N MC[&C];3NKV0>MR9Y;+,="F3ALKVB1D-0D4%[ET+V&(LO MMD-&AT^5/*#1(08,-Y%!V/9;W4K1D24;(6?!J[KY I$Y!5SXD%V)7GA[6]U" M=#RB1)"FO6TWM46UMAC R$*6B4>G.Y3*E6(JM2=U(W4C;,>F;C(57GB45=V\ MK^H60UL7ZZ'Z9MJ74K6J;)V.BJ9HQS."QNJV*1]4540=0:*6$;5EPKONJ)M0 M4\8MJ1N%H>,%"ZFBI?]DW$^;ELME<)+>B/F;46(1&.Z#1 MTJJFT0YOM+2J:;3D;@P1U"&-EOJ8'2%TH3YFPX_I*:OUY:Q6\,)H9QVPT&XE M6I7 ,6O *Y\E+VA4V#H=ODO[LC9%\+;\=;G,S8M%OCQ(V_RRG.=]U5"PJ3*4 MAZ==1L)V="*F9'2!)PZ^*A"HK NXX#D4K[23G#DCMW89=^E.=G@1\U.N!8D8 MB1AA.S81TUD)[S!"1(M5Q'@&[TJ$ZH.QDK5U(N^E]]C!14R(J9/429%BQQ$# M.0K%*MXC=Z9M"JMK'!@B@\!+_57$9#6F(M16%X)=.HL=7+$TFWH^\@I5:B!V MA&PC-1"C,\AT!OF1=7B"<:%D]72S,:"2E^!T1,@N2"U1.^.WK,XN#<0.;G7D M5#)JSO#4'MA@\P&DE:25&*(M,0HPKLJD2EJ#1R- 2;2:,9.\V4N?L,,G1OF4 MD5B26))8DE@>K%&Z%U&97,52JRI\4JIV6]N#*-XF&YP+8:O/P"[MP Z?SIB: M0^9?1ZZ5%'&3,(Y+& 7SCFF=()A4A;%U)4,*U2WDV7OM"F,8]M'UZ_!>I)O6 MH9 R=JKR=-S-O=+G1^?(3I&=(CNU:[9#*F9B#A"3+:"*\Q!+M5/9\.R$$*R4 MK1/:NS0*.[R=DE-K#W@0>RAVBK(=))8DECM>(:%L4#DX*$[[UD%7X&7UTB7+ M HUB!;G:1]^QPV^CL2G7Y-236))8DE@>2"P]-URX]M),6]HTKZF>)9.N>HFV M1%^8"TSLHXW9X6MSW509$DO*#9,RDC+NI0;8.9TL#U!\>X<.Z@"^3?8Z*;0M MC-O@V#ZZHAU<&8T_;!_'H2CC,>N$Q3[JA$6'ZX0WG_;;Q>S%NI:_2+Z_KI9- M,SE;+>N?)]_-ZR]_(K,UX&K\7A\[>>C"_S3O7YB?[ZZFYH@&36NIO#:Q>OFM MJU]]>/"("H*K_VHI56%;FYV[))$WC/YI0^B'6["FSGG]Z:L7$$LUJ#:>GX/\ M)3SWJ8BCSWJ02/;;+Z_2XS6:ZF.']F0P&@9.5V^;5?\ZV_8(GG/[2._N)&-? M4:\:%0Q)O3JWL$FTAHLM>79?+@\HU1'3;6\8%ULOK0B((BK(L4C+!*_:MW5Y MY2Y)W -Z=FJJ]*"T\?B>'<6ZI(C]<>,48\JKE" FXZH;QQ&<#0**CU9GE2/# M[0-<.Z17]^_&J:DXY-7C?5C8.Y?1CODNB;=GN KKV>+=!#^*.E54VC)7=CB* .:;34W^T(P+/(/GVCWXT4&85^G\J9:ZG%GM&ACDK =HXSYA,9Y;B')4D#9TG;XX1R\ MB2B,]<=!.^+8"PH$/N0"Z MJ- K@YBV+OO:I0+B&#(FIM[2)1,408X8R%%H5O0J!AFJWY2P1H..27!9\TT] M?C&Q:I;;JMK:I0+B&)HEI]://(*D2VV/D(;\!>?SMH*BS4+63_T7MO449$$& M3"NR(/=XO:':"V8YX,:#5=* LU%!D5E'5EU8C5N=;G;)05ZRKAJ0OU]Q;M\N M+QM[21U%[H3ML.(GMN2T0P6=05BCP-6@'*TTRL:1B8]Q' O+@&L:GCBZX M)0TC;,>G80F#+"Z:ZD3E]C(:%L!QC1"J_\6R$H7C5JN87;*/!]#/)-/^D:.-8_@50F>%F=KLRW;N3>)?5X<,&24VU&ON5+ MY8]'R#O^%1>X"O--WC'D^JQ9LVX/<[VG>PUVY1;U6*0>B]7H6-7&\ $55COD M _B+X\#>*<5E"G'K8K*=6E)=T+?:H1>?D7>_QLA,&6?49Y&R!"28))@'ZN%7 M?6^4/$%I=4\YV5Y[FU1;KED=<-NF#K8<]YV:7QU%,-W4';*='PDF"28)YK@% M4^8<9% )(D]5,+4OX+UJTZR%:728A-[R,'=JC744P>1BJBVU\J8D+LDCR>,^ MY-%8H[R0511#\E!#<0;1, O!AX)1H/6L[*4+UW'DT4^-.N >_%#DD6[!/4+* M^.(6W.4W-_TB>T7VBNS5%RLME-8AN_;4O0(5T4*,/D%BQ3!9$K=JZ[JR71+& MU[WZ+@U4LR<+Y:MC,)#262;XZ"+'$DC22-)(P^ED5Q94XIS8+40H+A#<#(&,-QGD8M) MG.^E8/=@&NFGWA[PO.W(-9+B:A+$<0EB24JRZNM5&:R!LMH<7G J@DG"M5<# M,I&W3F'MD@<^E" *.ZTS08+8I6)ANN/V"H^_M5?NU(7N]2,M3;!F^[RO1 M.)_Z89W&H]MN22U)+3NDEE49D\;J[%M6$!2S"8+G"AARGHJ4&.Q6^<>C: I7&DEJ26I):C5DNAHW9:(:!J3ZNA9!"B3! -%Q%3?73;MWQ4UOAP M:BG:3@^#ZKA%]^V2-)(T/I4THK'.Y'^_-).O6PW!9CV9;1;IY+O+TM\_32<+I!NS M^D.\'+-^E%4ZIA0%C2_[S%[51QZBS-AR0!0W*F B.*0FBR*QTS*[(K7,- MNR1B'Z^-#W2B#UC ^]2^(&5B22Y)+I]4+CE73@;G03IE054!A,AU!HZV2&:, MRWXOUWT=2R[YL*Y?I5PLB2.)XY-M4T4L/GH%'JL'J;S-$+&]"S%R$8-FW,B] M]'0XEC@ZVJ#4R"_7YI-YZ$!I,,/L )[.<2_8VYCA;:DZ.WB MA\M886_W:M40>DA1+!W%)QDC&=MNIUH*)NL9Z* 1E&6I]9QL]9QJ!&:E9%'R M?:3>GDC&G!_4MF[W&J<.,@/W=GV"*ZJ%)$/1)T/1ZQT@@R%I;"-V9EDU/H5# M=; ]J.2#,"ZT=91[.03?,OO-# (O'FR24GHF90Q;)44['84_JF9R-:AR=5)-4LVAJ>:!=4T5 M$ZIT&> B58>0BP!1B011:(?<1RQZZ\; G0ZM[TG7[B\K]T-2,TJBDF+U4;%Z M[>=E'YSENNIA=<]J;)QK;"RRAQHILX)>%K1;)VUV.JE^5#]/\$%M+U&1Y'%3 MM)\:E%(I)+77'F%[[5Z;-.9U#B@#.&\1E/,,HJL>O[!:LR*U"4KNYV#]5<^5 M5U4J[MZ#;-[@^FWY8?9^EG&1F[>K']J['F?Q?-/T>/]MK YX-J";/;\I!4(* M3@I^_.8E,8O,VF/Y6=>PP28)H2WO0!ML#2<4"V$KC;+; ?WC:>Q-:2VS#YCA M=UPM;Y3ACDM9.Q?%DZ .$?V^"&JO76+)>19,M.VL;0:E#8)#E4"4;(MG@0MO M]M,@H&LNL>:CNU^6V@V07(]>K@\LJ(DEGFT*X*-6H$(LX#$P\$XX;[S46N^I MJ0#YO[WQ?P]=#KWYPG2;V%W)^HAU]>)55?4Z?$"Z4:P_^UN="S4IE/AR,;7$ MG 57(#G6L$ G!RXR#XQS97BHEA"W,C^/SZZ_K.\W6YS/%N_>7E\9^)<-YR^> M]VO+^!\_K%>A2N=L$58?7Z_QM'FS;/?OUJOE?+[9CVH8^^4+B>) M)8E]LOKSQ&1U;@M8*:N3*MJC.+;*)6/:2L9*$<+M/Y'>;8D54TY7]U+]^NY4 M^^ZGU?+]K&E95E?:GR81%UB?<5'23CERV@,>QQYPKPUC<$4R#!DL%Z8:.2S@ M R)XQT3R]5\3MVY7WCW/7@W>Y5&LOUQHQ9Y.J)H#GL/JYK8Q)7%(C$F,CUZ0 MHWFIXN>JZEE=Y=)&!=&5!(J;*GRRRF?8DLO=$^2/D,N';BF*L0EGYZ)VTLLA MHM\7O>RU\UHT%[KX #)*T7:/0@C.A.K!,F&%4#X)M;_$^:&<5WW :^^[J<&4 M"R?E)>7ML_)*7F5TB<#9?EIN'U9Y#]C7:G#"2U7G M3U%U_@;7D_FRH0QZ?W:A.A=@DAG[).10'-OH""JOZ130)I-:) MAX"(*NPC[7U8G613Q0^8:R&=))TDG1RW3G+/3'T]"-7VJQ)*MC>1Z?JKM"D; M$1G;2T+ZH#HI^)3Q ^X+CD$G*<@F4211O+IE5L=DT $KG(&R*,%'BV"+*SJY MH+C9.LJ]2Z[XL*)(AZ_W4"U]UV)Z:(*X+]72#\[M7MS06!=L?>D)+IK9^^O. M(M^U.=\_/?_:ZNK*4MJG[:DSW#[RGW^H_+YWF$,-16BT QPMK6H:[?!&2ZN: M1DONQA!!'=)HCUFYPO=1N<([7+GRI>E_M5S5*5U,TOEJA8OT<;)>A44SWYQY MGH3\S_/+)J*48Z.:SN'6=!XXDQ:CXLC;TYDH-2B6!3B3'"17(N,V&Z[V=\/\ MRYN)B1M]#2Z(_O*2Y[^V-+_XDB\6^==/I']QS?E-W^!?PX<]%6T>LAE7-ZLV M.Y?L[H/5)Y$=JLCV>C-$*)&%3!K0Z03*10%>V ()2Q0,7"I@,%@;H^:1^WW4_?1# MU6L40JI.%48DX23A/9)P&XI/QK8U[:S*L2[@%(JJSK[(HJH'KK>:\.Y2I=0/ M"5=/0]D M:Q_?MT=D1*]YG0PT-5R2U=:R$L$J7=]5<\\Q[F,?XPXS>["81TP%.UK8G&F+RBE(UC#%"DO<;FTZ[[)C<4RQ9E-W MO,Z7)-8DUB36)-;'$.N@0^:)!S"(57B1*_ ^!=#680B!)Z?M/C8BCBC6@D^Y M/N ])236E/,@929E/G3AC]7165; YH/30'H"X*G+@CN2P:," MX7T?OLZ1Q^(E1)$<*&4X^!0#2.XEB:I3!JN$*F+.L_X=R M+^5JW;!4UB0K'0M@"J^CU5C#*9\=Y"!LD;;&D6'++N]CM >/J>ZJSB-+1=5Z M9);(+/71+"EC(V\+[;(*$E3;;#%*G8%G;^LO21:^==W=+K5ZW3!+7!GCK*T6 MR3%?S9(5$(K/D(SFT29?[=36):C[&.VAS9*@5!^5*CYUJ>+_;)Y3/;U0AQ;> M87O?RVFEWJ9JL9DLS]?-.BQRY065,(YEEWU<-04C'"VM:AKM\$9+JYI&2^[& M$$$=TFBIA)%*&"FOV^PK2T4 KQA&HKR&)5F*8NM M%-PNU797V8@7%\F(-^>G$5=ORV7><9-V:]Y^2DE\EIR[R%C#$@=#2@A#40/$' Q-<9/A;_K9C,R'F0\R'B0\3B0\;#!JQ15 M!*[:ZNDH$S@A(V"H6HK*RNIZ[Z,FK0O&P\I0;+"^6@M=#4&P 9Q%#O4';5"P MXM)6E+7'L1XH\M!3Q\V4.:IV.)YZ4(Z*+,78+(7PGN>2$+(/$920!B+W'J16 MVO 854A;?:!W*1/K@J6(Z$2-J'PU#7682C,$IU, QF2V.B9>U%Z:]1W54C _ M-5),Y9T7*).E>."^4OUOB'/<_'A(BC_8"-SZ['L_[J&C;@>79^\G:1Z:NK3. MZMJ$Q;)Z09>OJ=^K??AJ]'/\ 'FVPLW:>5Z5Y_QT\7V>-6?S\/%Y^^CW9R&W MZ_C&G4^SBZ]SN35W\8?V5JM9^7CU*9N7 BYR744?VB&V57+7"^K#H47VDY3O M7-B\,R*_GN DI+0\K9_\L0Y[LEBNZPLKYR?UJ\SJT]ZMPGQR%E;KR;),UB?8 MX.3ELMU ;#"W/VTX%JJV3%[-%F&19O7IOZSK']IKPYIG-Y?X8)?Q8)>'_$RA M*A4O_VUY>W*][;VA[<5F=BCUNSX/\]_"Q^;[/_SYFN#7S[R@YV9";G.3UU^? MA(!/NW:N)[2[B^AF ?*-+\=WG(-7O[Z<_+*8AHW[E6Z( MUS^::\GZQ[+\H\%NS-07E/:3OK:B_/(D+-[5MYLMZ@-WG6)YHB^_3/\ZJ6^% MJ^9__R\GN/U^\N._SV?KCT^ =R?FX[OS13C/]JR[]U_D")Y)-)X()]?R)I^FH:V 3 MJUU]\J7GTGYTZ\C4;]H^"C5(69[78&/V ?/W%^_,&7O&_G@5O*;V4-I9@\\; MK YWE?C+LL ;%8;O9\TLSN9519]?/?N.VL'+-U?/N)%_O'3#[GK"CH_I9USL M^MI='U//Y-$_TSP3YOCC]&P,X]3/Y-''J9^Y)QCG.#[3/&/N8:^]IW#:'NN\ MY_;>_)4%N<-*V?;B\&,[*\<[4[&_X1WM5(7YRJF*>RY^W]Y)>4+D]WD ^*<5 M%ERML%T#-?+:;87<,W'72?1N3!V1ADCS>-*\O#PD3XPAQA!C'L*87ZN7U9RO M/A)GB#.[''CM^T!I<'T='"U1&ES'!T=+E ;7\<'1$NWYX#J4?OUZ_/04\[S/ M:.F[V6*R/EF>-V&1F^D$/R1LQ[BIJ?UJC]X^3=J32,P8X^^+DFV*N_??D6@@ MPR7VW,.>%Z?5LJV)/<0>8@_9'F(/L8=L3W>7$[&'V$.VA]A#["';0^PA]CP9 M>W*>M2?.P_S_QM6?_]]9F&5XO=C\G,+9;%W_3LPB9A&SOIU9*9V?GL\WAUJ7 MZQ-X^3^;(AGX^X1=QZ)+ MMK^; %9W!><>L=-Y:OW6+LN,V8) !F(D6E$D:0G(>DDB<9_19&7V[B>*W MMH1\_>;5YZT2-YT?X'=<+5NPG>#B^\,U1*25O=?A=JZM^M.;L&/<0S\2"4M5 MIS2S#I@M[;U,:,![X4"Z*&VIDE3XUG43.TG8#??UHAG7[7O1KV]#ES>E#"0I M&2G9@)2L<_CV7,",YSE%S< *[T&E',%A]. S-P*5CDGXVP)F#"\R.0FVJA\H M=#7$XSI5Y6.F9!VXC;AW'^S.BPV4TE,I-$D825A_\"5G[$!:QB-:D[V!8%I= MLM)"*#H"DPRERA9EL'O1LCTY8]N2)DG)2,D(W[$*6(RQC2,=.,\3*%XT>,8+ MU,"P2%5R87'K!A7E) N2,DJ,D9*1 MDI&2'4S)@F/&B)RJ="E;(\3"(4JF 9DL,G#NF.& MY?W)95.GO_[T%=T4?F#IN(=QZJOMC4@\AP$TB6?GQ)-GX85*$203""H)#<%& M!T(YDUW$$#*_+9[!:I^M0T@QERJ9,4%H'4[D.EK)<@[A2<333[DS;4#G6 MR-GQJH UD-;*Z.H7#TK C-AY]X-F/S1>>M?>EKI^W(]_E M+,CE)+0#WKS'S?=DVT:_>R=%+K;D)K.F.6^/_9VOVCN]VUL;SW U6^9VG4[> M8].>":S/6Z]F:7UU8] D_!96^:O';#L4M,+(F V"%%Z M.\^9I+UJW^:^K9=,\ MNOQ-,S/UPHT]4B2-(WR[BR^Y+*."F^@\;'R)SJ."F^@\;'R)SJ."F^@\;'R) MSJ."F^@\;'R)SJ."F^@\;'R)SL>!FPII!@0F<;>?)E.)NMPWQSO&^S]_3RQM;3S^T-OTT=Z"^X>C]+>'$4 M\&=,RW>+S;O\=YB?X[ZN[I@:Z>G\'RDBX=M5?,G!&17<1.=AXTMTIAI&XBX% M)W<%)UKG&H,@0O A@XHQ0U#& EJ'40C)%=]J0BXQ8O1>@-7"@U))0C L0];! MH\[2:K[5;H2"D_XPAMI8'J$,] VN)_-E0\THA\XF\AT)[M[ 370>-KY$YU'! M370>-KY$YU'!370>-KY$YU'!370>-KY$YU'!370>-KY$YU'!370>-KY$YU'! M370>-KY$YU'!370>=-U3[^\GMS(+3"J#=\J!\H@0-??@LXTVFA0CM[?KJH3) M+AF90#D>0-5G0>32@]%>,B&527SK1M\WN'Z]2,M3_-OMVYGV<#6YF]JA7>I+ M%Y.3.I(Z/K4Z"L4#AF A((^@DG00F5(@58-*+;&D$>W;T>72HF&",=,!NK=Q9%]V,-5@DG(1FLBR3OX=5.IE(/IT()A19 MP%Z=W>A8U Y>7_;NFRZWC=OS]?-.BSR;/'N,U/2;!Z]:4->OWGUN>TH MLP^8X7=<+6_X[D,ZE=2YE3W@^)[P[;]R2:.+<\Y R=6]558H<*IX2%P&SJ5B M46_YQ3LIUWJ9_G6RG%=?LOGQW^>S]0P0=?;2N^FHLJKV[7MMA MN]!3K\54:$D21A)&^(Y5PC1S0:.1X)A$4%EZ\$4RT *M#]F'^G][D; ]^6#; M2D8"1@)&^(Y6P%K%,<+95KM4#2)KA!9')ZN+R7A2,TF ]7> D8,/&M^<"AB49E7B$PJ0!Q=L>LC5TK#&D-%XC MSSIMN6#$T4>+(:614RTTJ1BI&.';417K M?16@3L%(IC1D+P4HM *<8E4O41=DR46KM]R\Y*1US.OJU[4JR;6!6#T[*-QD MIZNCIWW8ITH^K.9/634LJ:03&J29I)D=U$PC8I;9.$"%53.]#A!$R:T22F;0 M^>2V;B>0)N10JK!&H:I[&7P$5TQN ^O@D"-7SAU?,R6S4\\&ENFC2PI()'LO MD@<7,58,$THK2.BPQKN^5&ER#HJTR3JLP6?9.M ;G%4N\PPQV^HBIL(@^"0@ M9\'0)X-);AW_.%AXK/64:SFW5]L#YOO9JE]L>F7?F3\%M89;IB8.@\['?$U:'SS@0W M!=B$+]&9X"8Z]P7?GH>"-2(0FG,.W+?5MJ@L>"$,)(>&>25S$6XKGU44*S9& MT)Y94*7-@4F?@)7HBDK>:V;O# 5?;YSH'S8^]$\;]_G"N_[YVG'>/.U%ZS;_ M=77[XKF=*MJFC/EI'[[R#9SB7\=YB?X]=3"8]H+TNY!)(WPK>K^)*W,BJX MB<[#QI?H?!RXJ:9H0&".)-+0@1D5H@1A2HTT8N$0?7"@&?.^9.Z=VNK!+GG, M7"L%LO#V-4;7F",RR,KD[#$67QZZ:TF11N?J6:E)YPY-.ML57"/MNF[;>M8S M7#2A76QD7 ;.+G(,">[>P$UT'C:^1.=1P4UT'C:^1.=1P4UT'C:^1.=1P4UT M'C:^1.=1P4UT'C:^1.=1P4UTIFW3QVR;!HM2.B=!J6!!Z9 A)%G :;0F(5JU MO6VZ2X'FB_S/\V9]6K]*\^OR1YIEY5/A=-CWVDE121\NXLO M.3BC@IOH/&Q\B#DKN D\YR2]P&TEQP48H$H:X02!0M<^IAB3ONH MZ:3@I#^,H;:F1R@#?8/KR7S94)_2H;.)?$>"NS=P$YV'C2_1>51P$YV'C2_1 M>51P$YV'C2_1>51P$YV'C2_1>51P$YV'C2_1>51P$YV'C2_1>51P$YV'C2_1 M>51P$YT'7??T #9OS?P79NB[J\FY^?X'KZM*EF4C,P?%M#Y)Z!#%R REY!R$:!T)F%&'D.KMRNJWJ#Z]>+M#S%ORV;YN%% M4$V=^?K3UZJAQ%0H/JQRJ,^1_A*H?Z*RG%ZA2O+8+WFT21G!G:T3PA,H-!*B M%K;^Q!&+\X;)O92=DCP>3QZI>^@1RD;?KD]PM>D;NL(37#2S]SAY%V;4/71W MFL6ZW'!U_57;<4Z:Y7R6)U<(#=JB?7WX'0GY.A3AWS-G%[7P3 Y[T71D29!L MD&R0;/1GT71D29!LD&R0;/1GT71D29!LD&R0;/1GT71D29!LD&R0;/1GT71D M29!LD&R0;/1GT71D29!LD&R0;/1GT71D29!L#$ V>MZ+KKY-<2E*<%H;4"%P M<,9P4"P))7P13)>M1MG6>&0I0Q&V/E,S ='% #K9&) AEH2WBX(V-10O;Y90 M?*H1>H/KM^77\&%?5PJ;PY4'D722=))TDL=%LD'U;:01Y%Y]S;TJS!N?K0;D MU4%2PGGP17J(O @5L])1;MU#LDO--;E7'2/.H?OY[E*(W8-2Z[^$>5@DG(1F MLBR3_SI?X$2RZ40PH<@:[8E6XIEH>967YW&.8[1'=T_ 2"R2EMPX$0)XV5Z/ ME8R"4%0-_444.FFK0I2W+5)6*:@D.7@AZC.]LN"4E."8MU(J91/FVQ9ITUB^ M>7N^;M9AD6>+=Y^9GV;SZ$V[\_K-J\\-3YE]P R_XVIYPQ\_CN&YM4!Z9GHH MLA^:3C[L@-A_D& >Q(575?JD=V!4F^U,04/4)E;5#)*EI#+BUJGRG01SO4S_ M.EG.Z[PW/_[[?+;^N)O#3KI)NDFZ2?[E$\FEP)*"EQI**E<"DE^YA,*9Y5-9ZT/P*2J M/J./H0IG*2!D$"86;;W8V@':23@IH4FZ2;I)NCD4W7119BT-F!J*@U*Y@"_< M $IK2Q0E5,X@^*##6%1TB*BP'VPBZHW)+31T%Z22> M))XDG@-K;BQE6[VD#"36[M([)L$I98$;(ZK/6HRTXK8X&Y^4U3*"]:U3BS:# MBZ&ZQ-J6) T&NUUH^QAQ?EB'8R7=&!7Z^#WB2:I)JDFJCR_5)OI8%=:!*-43 M5AG;/O0I08R.6ZMS8-N)6UULS.V%'E)'V1XY51"5$>!#$$%Q7H1-QY=J*=B4 M*TMR35=ZD#:3-A^C>C_YY%1N$Z_!@DJN@.."@3/>*.5%D6;K#H_J!\OHVGN0 M=(F@%!,08JJ^;DHIHE*B)'.T'(12A[V_H[N*N9\S9%\^.';7XGKH:;)!*^XP M!U?1;Q_YSS_4L/;>@0XWS*'Q#G2\M+9IO$,=+ZUM&N]0QTMKF\8[U/'2VJ;Q M#G6\M+9IO$,=+ZUM&N]0QTMKF\8[U/'2VJ;QTD;-D($=UGBO-FOK?T.S_NH:,>_.#R[/TDS4/3_.-6?S\/%Y^^CW9R&WYX9OM+6=77R=RX:PO/[ZS_-F M/2L?KSYC\T+ 1?X^+C^T ZRO?WY=V_#AT,4MG_CXY+]*S(YJZ3DW#%V3TDWBVBOOR)"S>U;>;+28W MRP0W1[/M]Y.+8_C74VOSM?A/-T']VZ"?6;MH]"#0"6YY?]*[Z_>&?.V#/VQZLJY0KL/)PU^+S!ZLY6C;TL MS;U1[_M^ULSB;%X5]?G5L^^HW[U\<_6,&_G'2R?GKB?L^)A^QL6NK]WU,?5, M'OTSS3-ACC].S\8P3OU,'GV<^IE[@G&.XS/-,^8>]MJ=K\+9_XF&.RS(01.. MW^"L4.K\GM2Y^4KJ_)ON&WM"Y'?QY+XT=S^ML.!JA>T:J%'8;BOD(1=N=6/J MB#1$FL>3YN7RM 8PQ!AB##'F88SYM7I9S?GJ(W&&.+-+54/?!TJ#Z^O@:(G2 MX#H^.%JB-+B.#XZ6:,\'UZ'TZ]?CIZ>8YWU&2]_-%I/UR?*\"8O<3"?X(6$[ MQLTE(5]MAM;OH/-)1*\CV$'N(/4_&GIQG[?GN,/^_+S8_IW V6]>_$[.(6<2L;V=62N>GY_/VG.F&3LOU":XNB+4\K6]W@HMF M]AXW?YDO&_+_B&?$LSWP+&.9I1DYA$0GHM,N9='+]:4OV-SH@?!_-G_!30<$ M8M9ARE-2G8.2'ER)\I![QNKL=+7RY$L3^IO?M&?.\-8D\QWLY=3][S:_*<]%EE@:"0"U#."_#>!I!*IIA%43KYV]?D M^12U5\) 2I'5%R8)H7X=$*XHIARZC'+KFKQ-2OKM^;I9AT7;1NJS6_(NRKYN M7H_W^LVKS^_'V_2&@-]QM6S!=H*+[P]W-QZM[-YTD^P-OL>_#70D$J9XM,G' M*D>H RC5WO0I@@ M0A!<&ILT[D7"]G33)RD9*1GA2P+VR0?SG)=0W2\LT5?;"M.XHY MTU,FQ50[1Q)&$M8??,D9.Y"6H? V26/ N^J'*181G$P61/W=H&682MF+EAWJ MVG5^P"O725$\OZRJ7)B8(7B.8E(OC*864]3[ELJG37W_ZBFZ:@67C'D:IK_8_(NT< M!M"DG9W3SH28&*N^)4:70 5>(!:N02I7;-%HM8VWM5,X[X3*"K)V;<[0"7#6 M*0@EM=H974E/H)U"N:D;FL]Y? &EJMZNH#H\M3R\)^A$$0$SR&1X#9R]!2]Y M!*&53E)ZG16[K68\.V>8S6!,6X["9*F!LV:@DV#%V^)]3$<+G(V9*LV&I6%' M[$SZP*,?FR\\:V\T73]O1[[+49#+26@'O'F/F^_)MHU^]PZ*7.S(369-:W/6Z]F:7UUI= D_!96^:LG;LGJ=&J\ M8\M?/8(;U]LQ!'=OX"8Z#QM?HO.HX"8Z4V';HPK;2O3910MV_S7U;)I'E_]-E7>3;VS8X\52>4(W^[B2T[+J. F.@\; M7Z+SJ. F.@\;7Z+SJ. F.E-*X3$I!(UV.0RJ*S:@[LF@ZG3Z41)+&S7 M&:823>(V0#(B@I(H( ;.P#D?F18B1?[0E,)_A_DY/BRCL/L&M)A:.[ :FL[1 M@&2.\"6OA> F.A.^1.=CP4TE1@,"M4$LE*.+H& T.W>R<*E[K^[0+?-,; M?5DJ9TY/EXO+.E&YT>7N JCIUR,/C0D?2-\NXLON2NC@IOH/&Q\B- M+]%Y5' 3G2D*?$P4Z(+AHD9NP**WH(QS$*S:W"F$B#YEAX]JTEK6:79Y]?A% M#/AJN?I;ZR#_F_MC^JL4/* ](SP[2J^Y)Z,"FZB\[#Q)3I362IQET*+.QNN%BZ+\0+060\J MM/N*SBC@TG(>VRU&AH\I2Z70HO-EJ-19=8*I&:Y(52+)(E#DFA^7@#5/K M_&P>:A[?)'5JG*0XCU2-\.TRON2DC INHO.P\24ZCPINHO.P\24ZCPINHC.E M$!Z30@C9EQRL@<"- &6#@Q"Y!N0VZ**42.V&[V';I-Z=0=A]K]A,A1>40R!9 M(WR[BB]Y*:."F^@\;'R)SE2&2MRE"./.OCB%1>E9!)%+ 94E@LLH 4U0,2EI M8][:I-QW=U2*,+I0C4I-47>H1FU7]619"K9+NM*D65--ZM"91>+ M_,_S9MTV &I^7;[(>=9^AS#_**,%-P27A2W0FN(G.(\.7Z#PJN(G.P\:7Z#PJN(G.P\:7Z#PJ MN(G.P\:7Z#PJN(G.@]ZK/?A>JG.)6Y,4J. $*)TC>(49(M="%YU4WMY+/5BI M:'N7R&;OZ>6-K:>?\=_GLZ8.]!=E)PT@G&4#?2(Y2!OL'U9+YLJ /IT-E$OB/!W1NXB<[#QI?H/"JX MB<[#QI?H/"JXB<[#QI?H/"JXB<[#QI?H/"JXB<[#QI?H/"JXB<[#QI?H/"JX MB<[#QI?H/"JXBI.4I_FW9?$-'O*;.?/WI*]50 MG$^M&5@YU/&[?U-9#LDCR>.MZQ.<,"D5"RE%#HHS!4YJ!85Y[R*6)&/81]DI MR>/QY)&ZAQZA;/3M^@17F[ZA*SS!13-[CU1&^CB:Q;K<<'7]5=MQ3IKE?)8G M5P@-VJ)]??@="?DZ%.'?,V<7M?!,#GO1=&1)D&R0;)!L]&?1=&1)D&R0;)!L M]&?1=&1)D&R0;)!L]&?1=&1)D&R0;)!L]&?1=&1)D&R0;)!L]&?1=&1)D&R0 M;)!L]&?1=&1)D&P,0#:HZ.C^FDSF=0_*2@DQ& 'FS1.-3#=(;7+\MOX8/^ZY% MTH8]*";_2YB'1<)):";+,OE[6*63 MB>33266%)/O7JW,;GM""O MW[SZW'*4V0?,\#NNEC<\]R&=2.KZJ^"!&4X@E>V@%8F69M"U;RM M^U(?[7K=<2"<386U4^8-21A)&.$[5@F+,K&8> :C9'OO2P8 M8]Z+A.W)![M#R4C 2, (W[$*&(\U#BM<0,RB!I'&( 2C,X@8+ ]5BX+5MP4L M)Y-"41PP5^U2.GJ(O#@PKD:BUE=-M/8(/AAKF_),M2$7C!2,\!VM@@D;E6:Z M0,[>@DK&@N/9@!,Y)2LRDVZKV&\G!:,T6$\7. G8L/'MN8 A>BEB3-"6LM08 M4K(V)X\@6+$& Z)T6S=S)92.5X,*86;>B9) MQ4C%"-^.JECO:P"-*L@%]X"8)2BF;-L]6]7Y$R@9%;IDR$[?[$OH9BL4:Y/ M''+AG*-BV6Y+IG!:R)1\?5*[.:$S Y^UK+XI)LZ$K*_1QY=,8=C4,$NZ2?6Y M74=U9")Y4B;J7W>'45M8RAZE=JA2\9 M\)$S",&%R&2,6>W5[[O?W7-3H4:_RTIW!ASAF,?%)MMDUC3GF"?Y?#5;O)NL M3W!RAJO9,K?K=/(>FW5]L#YOO9JE]L>F7?F3\%M89;I=8.@\['?$U:'#S@0W M!=B$+]&9X"8Z]P7?GH>"-7C304@)OCW-KVQ@X%7,H SC3MB<;1%;5VTZI9RT M#IP2]9E96HBZAH+&UG>3.?C@_9VAX.N-$_W#QH?^:>,^7WC7/U\[SINGO6C= MYK^N;E\ZMU-!VU1P.65R8&FNSK& 5([P):>%X"8Z$[Y$YY'!370>-KY$YU'! M372FE,)C4@I)VTKZ-A_ VBZ!)CJ((C#07F%$;Z1#O]5#)?'Z9%_ :M:>WS49 M_*9W0<)LDA5%X-TE,MLIA?\.\W-\6$9A]PUH,67N@%T&B08D2T$-]&9 M\"4Z4[]UXBY%'%^,.)@U(;H:.'#11@_!)7!2&K!"E80J*YZWNC;6%_"($D&: MP$$E3.!M,8"1A2P3CTY'BC@Z1H-#MRJGBM?Z/NT"WW0V7Y;*F=/3Y>*RG/7\ MK/Z('W"59LWFT8L_+\_:I4AEKD,G'_F/!'=OX"8Z#QM?HO.HX"8Z4X3XN'Y M(17G&;#@6(WVLH=@,8 /7*NB@TS;??WW7N:Z>?#MA;?\XZ4;G1]=XBI]C0RI MOI7DC?#M++[DK8P*;J+SL/$E.H\*;J+SL/$E.H\*;J+SL/$E.H\*;J+SL/$E M.H\*;J+SL/$E.E,=)W&7N#L*N*E#YQ'J%7\)\XMJQ,WF*4GHP#E%$DIP]P9N MHO.P\24ZCPINHC.5(3ZF#%&C")@Y@R1%!)68@VA9AL*YX4%KEI,Z>!EBG9_- M0X_OKFFFVOEIG1NJ/B15(WS'JFK*Z" X!I!1!%#H),18JD()(U@)VLO(#JAJ MF^.W=XO:[L=M1W^Y#$D:X=M=?"GN&A7<1.=AXTMT'A7<1&<*.!X3<%CET/L8 M('NM0*F4(::@ %DI*405\!AIU+1,4[2-<*WL_B2FS(JN(G.P\:7 MZ$REJ,1="C'N;ACC@XH*P7G-00DMP)ML02H3B\C>H^"';BEZD!##C3W$H!ZB MQZC)O>@,6@JV:[KRI%E39>[0F47>(,'=&[B)SL/&E^@\*KB)SL/&E^@\*KB) MSL/&E^@\*KB)SL/&E^@\*KB)SL/&E^@\*KB)SH/>*WT F[=F_@LS]-W5Y!QU M+S8%F4S6"1B3'!06 <[Q#,6+(&.4,>2RCW+/%_F?Y\WZM'Z5YM?EBYQG[7<( M\Y_"++]>O QGLW68W]BOO;HG[V6[N;6O+5HQL!+0SQ?#EW#_$XDJB6J_\"4? M:51P$YV'C2_1F6I!B;L4WSQ%?".2,%RF -GP5.,;5."=3( FQ^*EL2C\/FI- M*;[I5'Q#S6&/58@*,328V\OLSW#1A';5D4GK%63X$IU'!3?1>=CX$IU'!3?1>=CX$IU'!3?1>=CX$IU'!3?1>=";M8YHQ:+MG2J;O:>7-[:>?L9_G\^:.M!?UY=HYQI B$K[DX!#<1&?"E^A,E:3$ M70I.OA"E)PT@G&4#_2(Y2!OL'U M9+YLJ ?IT-E$OB/!W1NXB<[#QI?H/"JXB<[#QI?H/"JXB<[#QI?H/"JXB<[# MQI?H/"JXB<[#QI?H/"JXB<[#QI?H/"JXB<[#QI?H/"JXB7.M!J.Y M!":2 H[65'DT%KP+"4()@IO$58YV'V6G)(_'DT?J'GJ$LM&WZQ-<;?J&KO $ M%\WL/5(9Z>-H%NMRP]7U5VW'.6F6\UF>7"$T:(OV]>%W).3K4(1_SYQ=U,(S M.>Q%TY$E0;)!LD&RT9]%TY$E0;)!LD&RT9]%TY$E0;)!LD&RT9]%TY$E0;)! MLD&RT9]%TY$E0;)!LD&RT9]%TY$E0;)!LD&RT9]%TY$E0;(Q -F@HJ-[BXYR MCIP[[X [9T"E+" 6KT$SH3)FJ4706S69#EW,*4$*N8#B]>E>906Y(-.1>:8.5XC459$^?BTGJ36I-3EY0]$/ MZ@Q,&M%MC2"/[EZ/CL7 HC4(R@?=>G0:HN,((K(<1; NFKV4D9-'UWV/[M!= MBWGJ^;=5CDV>+=9Q:IV3QZTQ2]?O/J@BE<%#:\6)#\)K%VW)I5'#,90DIN39[PA \2P(P154\^A+EUK;6 MH_W+[0/TW$W;_PG!2#!),,E4E;W4G&E(+92Z**5/DOG MD(>]*.>>',UM 16DFZ2;8]1-V4MY8$X!YE%4SG828L?4[C7,FUG_- MUEVAUA?E%*]*:5D&Y=K7!&4A6X9<.>]LWG\B\ZY.3=:(J3:&])+T 03,*@@(WI5]B*=2 MLZFSEL23Q)/$D\1S4+6W61HC?+' -5>@),JV6[T$41)&7;W3$+;*FJSGW.NH MP3!C0/%LP5N7('N)BF5?LMFK.#^PTM8>L(ES=Q6:3D^15)-4CT&J0_64H[,% M;,P,VK.NX"P+X#.+;I-GD.ZV5*<8C;$Z /*VED!$K"ZTU* CNN)8$%'PXTNU ML'S*!">YIHM+2)M)FX^@G9XKRU!+8,SHMAA5@346IKTPM1*1]B MAJAD^QHGP#-N (4(4F91,I:CY2"LGTH_2@?WVV7CKC-D7SXX=M?BVN4RDPU# MON'BDLWS;[[!\6XN.8 \#]/VU*72/O*??Q!_N'^@PXV):+P#'2^M;1KO4,=+ M:YO&.]3QTMJF\0YUO+2V:;Q#'2^M;1KO4,=+:YO&.]3QTMJF\0YUO+2V:;RT M43-D8(X^?&0Q0H/7K:W/OO>CWOHJ-O!Y=G[29J'IOG//YR% M=PB+9<:KU]3OU3Y\-?HY?H \6^&F,.!Y)<3YZ>+[/&O.YN'C\_;1[\]";L_A MWN@7.[OX.I<-5GG]]9_GS7I6/EY]QN:%@(O\?5Q^: =87__\NE;@PZ&+13XM MV2]7TAP*CU]/_D-YO:G32O>L*Z_O)HMPB+-ZM-_6=<_G-9/:)[=7."#7<2#71[Z M,WVJ1+S\MV7MR779R8:T%R4DH=3O^CS,?PL?F^__\.=K>E\_\X*4\WYP#ON,27Y3RLII/7B_3LECTX MQC1L2N;2#?GZ1W,M6O]8EG^DT)S\H\R7OS7=F+$O:.Y=-=I/] T_B7YK*5[6 M^9N\:N?OL.":J_JR#J[R[\X7X3S7#\M_NC4)&\?NKGJY<+Y>7I4IMM^PE<&Z M?MNG0W5QEN>7)]Z_O_@\SM@S]L>K%]1ASL-9@\\;K :[HG$U5QMO]>*]_W"[ M9O#]K)G%V7RV_OC\ZO5WU !>?)SQSYSZXZ6NW_$X?Z;N??B^Q_@SL_-KC_&Q M]_3L=_?V[']XZ>6V07I,7.L.:CB>.&COS^"N@W;SE:!]UXMH#CL5NTCG%RW$ M[,/DM/YVTDQJL%6MU]45#KNMC-TO!NG%ZCF"X#Q48)YZ:>YXC\B#%^9WLT4- M;9?G35CDYJO'DKJZ&CN3?ORF.Z6NOG6OE4TPH0ZW;+HP6T^1RQW$8(DU]['F MJQ3Y1G6.+G->[=' M#=_/UC-L]AFF'')>.KVSN*^!]V-?D4;;R='2JA[\:+_9,A[U)LTG-HM?FLXW MN)[,E\U7+=VC^V_TQ?S=\9;W]A%X:K2/T5>C&STSOFF;V^_>S<@?HA^'\$QF M%SDD8R(HZQ%\Q@!!NQAMS#&;O'4YG"G:\8R@L>WAX8."R'0$B5I&U)8)[V[W MXZA\_G3'\][;&/$I.^3='5WETE,TD^N#Q1T4R"28W1+,Z%5VVH S/H!B#B$: M:Z"PS'4,$:-G6PV,;,Y.UF=*P7@53*LA!%. E9RR9DYK(8XKF&+*[0$O[^@J ME[[UIONC9:YZYY^_R&V!ZD4IS7HY66%]*,WF.%E<.N[M7]L"INF<27$T%K- M]LP#+IK0.F>4".N-+]JYNSJ.U3/V( $72J6YMPB\! -*\!IP)6G!^^1EUAZU MU_O(4&VN2?Q+R[N7-VBWIZZQ8NK% 9O&TAKOA0$E;$>H7U$:)T1[X99,$E1, M 6+A"BRFH /JXN)VQ^L=$D8'U2\[=7I0"?8C%CB1]_MP"OV ]2EIMEFZD[#( MDW"ZK /^G5S@H=.+3,B738C4LK2WA4-TN9H0(ZKWRW2&@LEHB4&;N'7AS"XN M\$WVO5CD%S>XMR<[XH:U3=NY94Y>\'"Q[;6$^<)=*4I"5H@UBE MQ9!S+&$?7O#A)36=.<8R5)LZ:ZR"$SC S) M/>E@D8)BG$.RK$T'JPPNN^H+9\5<\=8IN75/[BZ^\$T"OBV7?:,6[UZVY-M7 M4EB.W)*0,TS8CE'#%!;&E*IZE$*N>J0<>%Z%C!>7A*O!?K%Q'\[P$31,:CUN M#:.T\!&\X9]6R[8'5"5078R396R6_P6E]>/%N,EN\K\]?KCZ2 M=SQ@QI%EN<<[CI%SX1-87TV%0L7 MR7JBEF/@B?#,G^,=US6:?;\FHVOEJO7 M5Y1[NR%E4Z-,G( MH'S9H+!<4LP\@+#1@4H!(>:L00OI<[2:<<1])(T_G=A\58GXX[_/9^N/?\?U MR3*W%N;RO-P;7+\M/\S>SZJRY.;MZH=9LU[-XGG[??=^TE/SD=L>\J$)VS%* M'K?>V9@0O(\&%$<-SHD"2>3J$2?DZ/:28SZFY-U4NDV+>?@=5\MVA3C!Q??C M%CI*1!_!R?YKF"TNG.SV0J=E$^9M<<;L>J6W!]W)_29;U#-;U.^.+,5ZE7+U MS+6QH*IE Z>JS;,E*F^0LR3%/IS[NVW;SUCG]7?,K3*T5O#MXH=+9=A3_DA- MJ^$=DFFCWE8DH"2@'1)0+94(MDJ@M"6 "CR#1Y00',LE6)N$V3IAO4NH\$0" MZKPC^:0\_+%"A/\)JU58K#]NJE-6>(KY\CCCV=6&$Q5O]X=M([-CARY/L=H8 MN2E*R0I4EO^?O7==;AO)TD5_SWD*AL]TC!W!U.!^J8ZS(U0J>\:SJ\K>MFOZ MG%\="62FA"X28 .D9R&0> M2U6H((SC'X*G6$WSMFW$IES;J_CR$];#'RZAFX3Y4](H1W?&)SO\Z>[MHY9? MI2B"I/ ])CP)5J_(,\9#)5B4%7$:\B3B_"!<'G;% M,E,L*M$X5JI@6<9C%@21%XE2"9_G/XS:?@"!%GJG+<^FJ/$]&,L7K125Z9PP M!8I/XEY-NN0S=%%>$/.R4&#H^@&+PK1D!8\RIN)2)'GDR2P,#Q$H?J/4SWS! MZU*^OY)RK6\A9B%_K7A1+:KU3?\K$X5Y)V%?#I>=C+.IR'$REZ>]/3D1)Y(B M]8HD8+E*/!8)/V$YYQDK?/BMS$LIQ0\5.1Z/B N\\+1%W!1NO@<+^A>I9-M2 MKS&L2)BM^2529-+S.2M+D2)-7LBR,(Z92I,T*Y(H\M5! M0-'VUNDRH _\DU$A/\M:PC@/I4&"$]<@DY$\[>TIBC$_3:7RBH+Y)=)&"^ZQ M(H@DXVF:EG[FIY$Z".#B?L28GYUX#Z@IE'P?1""2=W(F]0$F%'*SOIJ %D_Z M8DTZY#-L4FF6IQ*)I.(@ QT"^J#PN6 BRT6:>4F8^ ?IGO(&;]GO38U=K[4> M^6;G.51"Q79<"B1"CXEP#YE&1%(47"L]P[ M2,CXOB09#.>T)=EW1X;W'::OM9*_8/\>O8'[>@F?6\_@6N !U9#B\HK7ES"> MJIXU*]GR-?)!\ZZ3ZXY,X(5)=E2R^^G[.KD_;J,7EAO_\O\\@\O^V6D^524Y MS?8)SG8ZU4]^ME/(Z!XTZGE9PA*"JFQE*:N/B*J=PD5/V.RPO?N4MX^-JSES/.#V"N3DD?\(!Q2AY6: M7V@_,\_2)Q5IOT_JJ G"^!V!+=.&I)J BX_H5DUJZO&HJ3(-)5>8!N98=!]% M!<<"C4N1!FG( M6< Q)1R5V$HX*9#\.BRC-..!.E2;AT,(M*\+4Z3S)'I2@FT*>Q^EO?VVE2M> MB1XC.2LW;0M_,YGCR0A_PC?L46N51VV$9S*(DBR0+$B" KNQA2P/N62II\I< MB#3-HQV==1@CW%QXB_8WJ*;S6A#BZ9PN_:%8QY,GA?6?3/-)B#XU(7K'8LY+ MRR+-><#B'/O2>''$)3%;SPG*,JX)V66Y1&+ MPBP!>U@HEJ5!Q@*594+D,O?]G8Z/A\6%'U:4^?X\B";2@BG4?0_&<+N!,[D' MG#+@,IA,Y"=\SQZU7GG4\9Q$!5GH1PA.*4H617X*6BO+F(S\0G%1%#R[RR#X MENHZKP5) RE^[6_^H?.W?CB/DB=EI$]1\DFJ3E+UB*2JSWD9J#1AG@@5BR0X M!$6:%$SP($M5D8E3P)U2F&?E]N@^N"TQ@NX M8]&9S3-OJOF94@3WC(:'P\:FS,"DO2;M=2](3QGSH(PXBP7B.W/%69$7DI4\ MR?TLX;&(HCO,#" IO[[K=YD*F(?ADR*)G'R 28I.4O2(I&CDET$> [R-"^R,O; O(^#.V*MN3\I&LV#B0)@"OW?GSN@^_ZM^,U2UNL!;F@^ MJ^5Z<@>^\YX5<.)DZX9Z%J_6LZY95&)F-^D)J[HO3WY2AC^>2Y!%7.9IP)3P M%8O\U&<%#WTF@ZP,8Q%F*<_OH^+V@J^J-5_\+@_5[C;.LKO3?Y\YFEIY>.'C MTI&3IS$)Z$E 'Z. SH4G1.2'K,A$"L*V\!A/8\Z\(@VB)%#HE=Q'=>_!!?2= MAGF>G("^UYQ&? @G)GY\3@P<;MW5<=-),>CFV-131F/2D).&/$X-&10^.!PR M8TDD);@P2<&R(LI8*G@:>3+.>7R0>@F0#A<@'-ZVS<=*2/'SS1\@)4!-.OX+ M&-3'N\F)Q/,DO$,D[Y/3EI,[,PGK25@?H[#. K^,51"SS"] 6 L0VWD6*A#6 MI4P]/\V3;"?>]#WNS,,)Z]";9]X==NYZT$-Z1?-=:?;TE?U1]GI7O3NM$_]YS\WS:=J $RS?8*SG4[UDY_M MA&2^AZC?VTU;7O$.WMZHV:K%F-_ZAA ,\I^;:H6 ABGZ]VB 0A,2[_$X@US& M2@9^QKPR1+[:Q&-%##_*) \\+D609SM]F[\G8G&/;),GT?EX1*>,LR3,XHR))/59Y"/I=Q)'+%-A M'D09#S)UD$+&^Q>=$V7)A%N^/^,?CR]8^TNYOFJ$B9CA:<;L__EB=<5G[]=2 M+B8'X-'^UN^^&Z5F3>DVI%-]G]D\2<).8124RAPBQ16<0\+@H6I4' N,]3IO(R2P.? MA]YA*,WO2V+FD[R<8OWW&.MOFU)*81+DHNI63<<7&/@?F_Z;&KY#J J^EK"$ MFZ*K1,7;F\D1F*!E3Q=:=L?*RU.I+U,I61&!I1])D;",*\Y4((,B 5V4>,%! MS'USRU_!)7\/2NF-TF[^;^3E'UZ)17-0HJ>&^#HZJ_')>@23Z)Q$9Q:&(LNC MC!72SUE4I)+E&?>9'V9YJ'B0IL5!R@#O6W1F^VXJ 5_L!=-.SL"DT2:-]KT:C0>EXEG*D@"= 2_+61Z*F,D\#\HR*648 M':3/Z"V5(*_M??Z>2I O@7_B.^3>>BI*;?(&)MGY9&7GH\XQ!&D4AGF"B$R? MLRB). ?HC,Q%2@]_D" M/575O"ZG KVIE&F:[1.<[72JG_QL)XSN/43F, Z-*?JR62X;?&!3_CF%WAX- M)N;H0@./.FP6>UX4Q*K GN YBSRO8'DJ;G#VO>C">T#RK&=D%+@S9/H26%9)[J*X[2& M\="".:QDBY&CLNG6W6S%*S&9Q$_X:DVJY#.9Y#A,>)$I)E(9@5K(! MI-)3J8AY4AZRBNR-HCMHM,I+IKL/9>5RIZ[AATO" M\!J_H5O8]E:5@R MK_1B%?"LY#PZ>!G8'8K+^.1ZP!UY5'VJ_AI4?^W#9T[6_J2^)O7UO8$H+TW# M,,Y %06*16&<@[5?!"PH5!'FI4#VYSNL^7IE[_/!:[XFLW\R^R>Y.]G?YG>R6[=5N98"_W!>B_$O!I\\E%X+)ITV.023A#U9"?NH M\4(AN Y)XD=,%8*SJ,A"<#=4R'R9E2"9_2SWPT.X&P\JO[^2*2*<6CD?#X?U MDW13?I$ES+F3R#L]^2,3,G9"QMZ?IBN**,X5(H]")*%+5,GRK,A8Z:5!$/I8 M5W 0$KH?TFEO95LA]ZH6$U9)G,@R]V/=WB52E$%$B0E?)%EB9<*EB0%\J6%BO$@]EA47H>YD23.2@ M@Z)8<%;(*&6\D(',>91D8@?#FT516&1AP8CQ,XH0]UN4@F5E6<*7HT"5R3$J M+]^;I^F]) W#>>;?6]7$8Q:O MWYTC.&#KFD?G'935;W3;)_@;*=3_>1G>PS=V8Y6Q=';OJ8UV_O- M:K60R%[)%S-1=>6BZ38M%@DJ'23#MFVSJM9V&5A;4Y^V4[E@IR5.3G"VTZE^ M\K.=R'+OP6]\NVG+*]YII;EJFQ5,]X;23)AA6J%R!0V*8$DIL-A%UD)S:Y6P M\M3$XH9CB &_ ;]L-WPQU;T\-2CG(8.?)Q'8+ 7W2A'F6&Z"W2VP1,6/2Y;X M7E#&JDS*8H?R\5M*5-2ZK'ZR5_>->FON[7DM7MI;^]ISO)N+OAMU)1Y,M2L81C;MP#09='H6 J+DLO#_-(*?XC MU1\/+^/\$Q=Q4VNX>S# =6NXJNLV8&##<=16-/Q[(2_Y8M;)]5K'N":K^M%< MM4GCW$WA=^ 51R:2(P1Q.(A!.02%8&*5E5D21 M I/XATWHNQ-HNT&!.2S,:2,=V C4_QY08Q,BXH7 MU:):W\Q:63:7<*[QPJ%E7<-0Z3-3A/KQ7,%)]=Q-4Z(@+CEH&0::)V*1\$+& M5:98D7$OR:0GA=JI;/AF6YKNZ1OU1R?/\9*>UZ!WX/K]:F_HN_Z"@FJ"M:(_ M'PIQ&Y^Z+IKLZ\>RMY.0NYLTG,S*V(\EB"E/LD@F.=C77+&\"#TI.8^BV/]A M^_IAA9P_C^ZRJN QB+DI3'U?U<2A2YD6^8%$@%B9R9Q^+'L[2;8[D6Q2)J$( M5I:R0"F,X/IC3@?*8%_ R"5(5 M9KM];;Z'[?]U739+^0$O(:J? ZF6]$D1/T\V\R2^)O'U;7FV)(ZS7*;,#SVD ML@Q"5OB)S\HD5SS( AZ6.Y4@W\.1?S?BRP^>5 >1[[>,X7\16$[_O,LC^M5F MU-:[/_NZKYTU3DY4'V?E@G=P.E;\4K*Z 35JO@/CPC_;V2_D)R:J5M*Q^ EN MSF99_U54W6K!;W["O_YUQ056"PX(2RL]'.-<>&<1_.(?FVY=J1O[%OHJD[7X M:]%\PBG"$WYR[$:?[EI(]*+H&^W^ ^P(>+M46;F$-]^@BU W:_@B;[&^DD+L MERU?@!/1DH\ #D0G9Q<-ND"=%/@O8H/E:_C!]/^&C[]?PR\0Y=6=#8_XDSW& M3_9X)",)!5?1_!?O[95SW.G::G><*QCK3WQQS6^ZOS[[=W?!W2?U]:0%V;Z; M/OSX(!?P8<^.6]#C/41#:I3!X/SO7(-7'RYF[YL%;^#J38WY658G_OULMU=QPK-ON=Q/*ZF5WLZ[KT0*/Z>C5PMUOL!S8V M=X2'_?FFYAL!+Q,O]A@^^]?A<^]Q9O_OFZ5LJ])8_;XO I$E(?,C; CB1RDK MDIRS,,X#7X@\3,L?0M=9J__G35?5LNM^D5W95BLTQ,YK\3/OJ@XK)L$\J-?$ M?/0!WO/SHBG_?#:#C_(5!F7;C1R*\F$XE45G:93_Q1EP%'2-SN(P_,NVV!V< M$MKY^PVV?NZ,?*]2\,_^9;">:&@59IGW&AG#=;O3)3)V\L/8'EM:8O8 M2/P6V=#5&H7A:E,LX+8V2DF*Q3]_]OKMFVW0S"X738%;T38?*UPQV,<.3Q@NTQ_5 M_VYNP&]H9T6+2XE:9O;A',WYA_\T:T B#:X$GE88 MWI5X7@HLR6;X+3M!$K5H M'NCW@J UJ[^6?*DSF+6\)FZH?I@*E"A\'#9KQC_R:D%_AMES^'6WID'@'M"( MKIMV(4" P#E9X"7#]9IU()-F"WX#5Q/$ I@PN$_(_BBQ&>=\MJKP@;*C[:=Y MX062BW]N>(M !#J_YRA3801@:?%.ZY$KKO>XK6GQL9I_4W25J#A(CO-JIL]_Z\W/[]_,3LOUV>S/YRX MP5_B[^A4RX5$4G@\I2@E2'@O%LTU7K]/]OZ"7.ITG9E)Z,.G!:B#&[@A>)4Q ME 1H=CG\?>27[PAKC4Q-][LQ\MX-_RX&Y]X#VP?RZ0GA*^B'R#N38 ML"#(=7-(3\J8QP)\MF@' ?4]?MU[6#W0C"6OU^?NH+P%45S"1D^^W-#L M7]YOEJ29T=;JEW5X 5=F88<7Z+#A@"+EA10Y4Z42+"HCQ8H@REE1II'GRS3/ MHO0@X0#M^&\=F1O]WZ\X-D_^.- "::;+/C9"^A7$:5U6JX5ACW8A-/C["2O= MG824"Y_A$IEXXS!@.W,!6^V<+XWAIBU@5)ZP\)O%NC/Y*V=2D9HAG*\>'P=[D: MA!'^J&E&%""E@9W3Y>7. R*;]#_.S]\Z'\B5O%3+_5.F,[5INPW*&E#7K]#0 M]CWV?^@OYY@/!TO5]_!U[^3EQC@C[]G_2X8U#JM95;4)0/7V]QRM#[ J\%CH M-\&?^:S&+/X"*][!R2-S@Z,#,UBP):<-0,>RE;1GZ'3#M&L)OG&'$I+8IV:* M5VT_$WP\FN7])%>-,74XO?N_-N &AMX<';A(V[V_P!.7!1A3H3\W?AT^8K#S M X>$H(]7.+16:C^^JSZ!MU6OK[J9-J]&KZ"/Z(>Z6(WE>N^?]I7/T&;]+4>Y MX LZ4]V51(*!3@>:MJ9&1CXM,*PF./]P ]IF.3S:1/63_A6.1']SOG!?B@VV M[H&S6#>.?9?V?4ARWR)!;ZMC(H#+ZIV!!]GM^O8-@O.% [<'"P0.O%? MXRDZ8BZ^?3P=R258R@78VI]6VMBV[[R1%!LARN'MI8_PHL ---+);I>^>F21 M:\!*-[@$<@%>=6U#B",I?\J^U85L*; U:)5 JS@\;EK"T%;V;-"X1[5-AO&Z MWL YWGNB/R>NG70=;%2SK-;KP67JY.?%[5#4TNFB6 W.H77"U>F<]R@E08:9 M3[S\5%[Q^I(N[+*B ,4HO/W^Y865^R0O6@FK).=F6-^G$;NK9K,0>.9;R>UA M_,>FUB$'6I:UEDQ?>)">XH(^H'=B>W^VQ="YWJ9WDL)A\#:KFO[WSK63>V3Y M[#F*W&?TS]&CGKTXY2OT-SF(KVKUAD>6@J0V?33KY*76X;C(?9S1QJITH!I_ MNBT4_F4?_["."U>QQV4AF)_$G$5!GK B*4MLR9W'$1>^\L4/US*>ZSKY#\U% M@RIL(\^[\_]H8!G@YU*V]7W[*S]XC@[LLOQ:@9H' 7-SVI>+5 .(-KQC(& W MRXU)MH!^PNX%<,-*^H!<.?5E M)75;=N= " +,5FLS;&(BJ7WA0]FYWOLV@I MLBUF/X+T^+'9_^N^5W_#<^\ T^R7F90IRV4*LD!E,8 3N-M1PO&LQGPYX?\#3 MH/3#+,R8E^1P6&.>8W]K6DQI6? P\VN]TG#>-4Z#>M6L5FWS"19M+<%@F\Z^._N95#(*?O0+%>W'K.,F1+X#DM)P#?SU M^8??,+5^V?+E,"=+$04"UA7HS6Y:2LV#CX1PVAE86L\&7WP&OC$8:<;AAD'5 MZ"S7!!78M!0\H,C1-081%@O\HP43=!(CI!A3-N@$])CI>'UFW.B1C<:-0)/A MVUIYR5L,1#W@/@U= #B_\A-Y^O_K?HMV_$=2LC/5F_SH3--;ZDU(>+K#-_@W ME0+.OK8:92I%^8I2E/%:'W?DX\<6@.@PV@I$+8IUPLC=)MP)(:-%NLX"H;3_ MDF;:EO FYP OH[>:3(1.2U"8NM<>HNIQA/AT^:GJ#'0'GG_5+ 3B $\X0/.F M[@/%06"3?M>H-4M)6;&Z61/R0I-Q8^#E0P^@UCUP#'SZUU\O7.)5_]UE79W& MER;%1''SY6I1]=D$G5NBU!CE+T? 7;"UZFJY6Y1'8U;D 6UQPYJ4^_,E/$LEW^@-$L9)%X@F6>T' HBSEK)"\Y?//=?S FV;#& >P_0OG3+ M2!)=4[(8NY(?W5DKD]0+_+)D15C$+$I]\/M*Z;' \Y*H]"+E1SLQC^FL?>59 M(P_JV'9:KA/:1*Q8K;0X[!;C3:SQ2-)OP N65E"R/PYB%J@!A%O.R"),?SFT/"DG?J+'V>Z/>;-I!(/1!#/?= M4D>S]71NJ-KQ&XL=GV&9XS.0?8J*V, QHU*&@D SNWN]=3GVN6]H:B%49XV7 MC1=8K?>OJ.FWU&MOW*,E)NO;!?/3MFH+(V76+&*AZ++.L MG-*Y;2-Q]\AN+*3[G/"F#8+G* ZRZP>40$]F6:$UC1BH'1D)#W'&-V?'\5&;@DJS="&-ED*G[&'W*E67-_?X!*KXDS4*4P*VP7%X)S\VBX^X M+1?P8[6>O>*E;HGU_-G6;UX@Z))@I)MZTYDH_971Z 3%:^5JP:DF=1<=0I<5*4Y W;O!LI[VOH.GVXTTXK2O:MPBQ:PH8ZD " ME 0?-/>0+A*&.?XJ*S]ZOI5Q0R.>:TH.=N2Y.NRVP!IA*@TS+>>-2 M;7_]]@QF.)\]P];T(&:77F*M 8IT M.RX'\[?C(E59F>(/HWTYV-QP!JB6WFI=;:=;P@'C+3C":9S:?_%Z@W4?OC7% MFI$LBDD6F3"Y&X83-!H^M.(W9 98Z##25V.A-Z@8OM;'VQ5Y@RVXJ16<"2E& M/L<<7=ERHT',&)1S!AW.;50&NRLWXL57!W.&@XO\BW@%:) M4A@-AGE59@64%%@_0]0SX,+@%/OFHEAU0PP6:,K K<(5Y9,885_UAPEQOM>@B-"0'^PR'2)TNM:F0JQ=])P/6"%.KX-;FHP MAWO8=;H6B.I[_4H.-KP;$"W@;PN8I:)?#RD>]NZ'KM5Q? QV>394 MY [2KJI!8GZX&)7PV$'0)F,BT#W,T+;TH8; "X,9@1N%7)DR(N/-+AKC4%'Y M'#)J5BB!>DX(6Y!H]QNG -_HP&^QNPYSH_B0F DX'W#!RYDY@UOB#5\(TQ@> M$P2TM%1U4LCU-4[LV(PB+P?;)\XSEB<"#)P\#%D6Q9)%R*S$RRR.Q8Y1E$5A MF 9YP J9P'>"@+.B!*,H2XH\R%->8U=\VIT431]&?^D M_9;N]4"E#DPF4(Y]SH %WY(T.*IH\E_H.!W;44C"G$>![['$+^$ %+)DN0I\ M,)(]*3+8U3C8P02&B>"A"B3+@S1ED8!3D/M1R JO\#(1>'&61L=V%.*C.@IG M6HP/^(A:50:H8DAFZ;6Q6"4%K_&,L?+RLC=N FD%DA>)TW!]=3EH7T>GC3U0;*A)*)6*H2,C%4NTG9&<1R,WB+4(V:I@ M,823]]K>Z$F,AT\?QA.P*-2$%$BY&:8>LQ+(J3)B\M$*97?%MA9*4S8-K)>J M-KP_O66MZZ5'[H,.7I'M8%QN$\FP4^\U7T=!<8*2T!QAK7"P>[?!&F&G;*+: M"I\UN!;X:KGJM&6_TO >K$7%% .&#L_Q#NR1#L[:/\UG%6S2LV M(\8DDZ?39B 6I"\Q?H^)-,HY&8/L+I(SL@:W",'*9* A =)V,'+9@%8P?NG.GFB.,;S0>^.7 M^$+#"O<1-ATVXM8C=(WA[6O>PF\-491C;\.G;'V:-@,.A(L&+6[F>L=?R:(E M?QS7'!_S'FOV-:;*XJDV(%6U(+55OPP/_PTE.V#9M+1MET/&NPWM/3CMM*5+ M2FVZ ]00=UV#:3I3#@W"E92DKJ=SL^>X%<.H@J54(W1K/*4] OQLQ M--(NPDWGVSM1$ MZ]49T@$,D>5TV$'6S'L7!OZMI8CQ-!!0YN3 M@W-%:?:J&X7+"/U,$;^!>,0U1#MB]*1O)]LPAW5%CUGKN9 P,4*-KDM#F].? MDGX>H_.BSP8\L@/A1<7GC25:Z>PXSB:;JF>F MZIE[.VU?05V-PARDN>'-UFK!?[M--&/$^7R'I%O;R/"('8V@^:;GF ]9-!NA M.:3G[I'\LF[(;]-OPD3%VOIF(PU"]A@9A_013:]M(SI(0=Z-U*/FR+,.Q+;K MXO(P^JU"KA;-C>Z"-;/1AA[GB,^MK_0745L:(NX1B[>QCL9YU07?U&!?&]S: M^0:^1K;B?V(^]_T:S*[W=GJ.]YO#GA+%.^5XZ5H.^>=G@B]UBF!C4CI7^#!4 MU$OM"/0Y:+ 9Y?651@OO-X')O.C9T9T#;WCR/Z$5(NO2Q.8TV>.BZJX0_"FY MT%&5V1JQQFM-5,ZUZ? [E4U8JD3\\NLQU[6NQVHO>5W]CPGMN=@,QGVM*='G MH?#/%U>55+.7GRQR[PT:F+ 3!$<;.A?]T%T[",.7+Y!5^P:I)+6#_X\&/K#I MA@DN@W\^.Q)SY,2LX3VX^)ZS%ED)#=GU!<7(3*+N^;/S]YA6#KR81>#^$$74 MS'!$]2YL'RZ&>Z%SDG0_#.NEMJCU222?"=$'/1GF-FS )HQ;CG&_H6$Y'"=-UM""D2M+:GV VR=3_>MYY'!65=>!")N. M\H,!(T J$^@)V%_,9RFXS:5!2R9HV%K MFOO@";+Z-O $H447B/)U0,H8(4PS(I$9PAY0"CN\'SM8;B9FTK8.Z'UF.MH MCVT$,V;S=? +)^1V:I,J0^O2O_&K1=XI1Y'^=D7M39P^XPMD#\5^/@2M$VCV M46B^I609KJ[ID;'70IJ/Y8([YU8*(:?Q$J\"[NH@L-T-:5EWWZ6QR9C)F^&A M)O5&H>N5ZZ31E"4&T@?UM+U0&C5?<5('K.!>FKHV.10@W=?*!?]H.&,VM1%3 M^V+HVF08&,&[(LA)1VKHT0W,\DK3#]>U-& )5,1@3V#L5S>3Z:XP[W,I>Z"3 MF2?9VL9BP#M >62;*B=0/%7/$&TSW54=']YJNN,R8@16&EG?-@SH+)Y1ZJ9" MMT826[*%'UG)V=1;3\)G$Q"A!]'I'182"7FI(]M6\)R.Q[6)B@_JU.@$S(>T MO,C+N#MX77=DVS*8UU'J0.HT)*:0X&35Z^V4(2H[51'2RYQ2;-95:QM,)_PM MCGX(E?L%V8G7EN_\0@/PI&8!UDW#+JJVW"S18,3OOAX^"6Q2.C7="@N.*"@+ MAV==V;><;S[!WX?-\_"4(RRC&RI3C-=>H@0WHA@+#8"/_\N\7__T+#*FX,3=CC(88H!6HQQ )ZO.NXK5^)%+MFT"!Q.1; MZ5C@:;%N+J_@XK["WXO9KX1_>ZMS#Q:1^/S9'Z]^?7L.(S@,)+'GE0CGIJD? M?% _C6ZF?MC/%-:"!S1K_!N4%OP M3'@1_PB"QGQ[TU'=+0K(Q6(+VVGD7H]('4I O>&V=L9N.0@H&,UBV.W HN4' M^V3-ZX&?UV>I41K8JF:G)(E"#)85#N15#?;!Y8W&\@Z>H-W*O5/7LR)Y7&-A M(F:,W,FU\ F#9L9SL%GCS1D85.NV60R%_A+;GR&4KEF"QK")4&M.CK$OE84; M:Q/!U4:0F,:YHM WC1D=],4=%%T9/"A)MP(87JY IO=@E#_^;!&+XK3C;Y40 ML,[6:U+2_W> M?Q-5(B* 37[-UL]960GJ2F\0/F+,NJY7S9CV9$^0==.:B-KP]FJSQ\P=GZ2U MDK;&7LS-08)M^3?MP&#"EWY D$'GVGV84X8XP &$NO^-$=9;X3!XK5U1^Y6A M!;)3C]^,AJY5,#T!-ZX MK<87!BXR:L]I"ZW@JDA6NV2AHHGVML]G+?JY4 MUFHL,5L>9C]N[ _=R,L E(P,&V>S1K!@:M!C'Z$[*BXP1(&48W B"&J:57"%NIX%_Y 4MM?/FHCQ83U\VX!+]CXZRF/G/[68:JH[F6G>L MH3EJ++"ALR?[&/[.EAHK1M9' 9.3:UUV5:/K-!^]'99+;1:P8Q_U+- H8PNB M/1ELZ!C21,V>J'&RGG=#*$SZ,+6X MU6M4M[)HP.TAL\F J=A-&3>FPU0<$U ML\02-]YDZRA&.+>PR9OQ.4/-;&JO:"&HS?>:?Y(C+Q81U(;YQ"8/:3E' 59G M!.JS75J<:&$#B/WUPOAL#X<9I)#++\4R'3^.=-CTI;*&VH_9>.HQK_ MG+Q\:X7ASO9S%5JKMU5GK!D7)5E_52O1"4 S 6CN6MGFWP>@F> S=P2?.:@A M+U64QF$:L#S($A:5L4]%@BPKPC0.O-*/$GD(0Y[RP\BC@0+G'8@[73R&_[H' MJ]Z'3Q^M73]:&K( M0F"2N&$;?Q7HVA"NS&E$JC$701L<=,3% V:F&J?N5_4 M;FM52?6#F;G431$IGVA1-V0XZD0IF@53.O^AZM!T9@(!5(XWF#;*]9[?$GNBX&%X*8\I2Z\2.H'G&3]!U5?NR4'7C'(&N:^#Q:Y/Q-TFW@:.!WICF M!$2,U[II_IS9VMUZ)FD>U*N/?!(TDDOJ&C^:DPC\^5KKUD_ZB33N-*PV)@90,11=J M]'D[R\&!V?;]G]?C>SC54MOFOL?&<$!D7KF2R+0>LBCQ$[!$/?RQ](H@\J)'QU<'/ [/T,&0&_E&1&3P@&U#3:M" D6CF\IW- M?D-4V(Z8TR;:-IAD/@*O#Y#IL@;9) DC/J>"T(WAQ32YGQ[*8GL:O'SKV@D[ MBC_,Q)')H(MJZPF!FQM+L])UO7HXZ!2[SLA M%:0J%F$1L+#T8$4PB>=I[JP[A09M[)?I1.V431\A-#MQ U^!2N.A@4U%1Y&Z1V] MH/$S$#;55I>5QI(ASX;.$^O"9 -LAK2;Y,JD!^MEY_7R0CS"T&>B9(0 "!(!Q\,&"6"Y!=Z-7!3I=EF-5.$'<< B7D0L2I%!%0E5BR*'IWIE()%!]?MM+BLZ M?\,3I>G*7^%Y.E]?\+9%H.PANTK&4U/)\0CX%K/QK MBS(X^7DJ?!8J*8*TR(HRW>'7 TDFHD3D+ '+@D5>YC.>!@&+HR16X+E$4H4/ M<_S]<#K_.^??85=-"Y3PX89SIJLS486:J$-3[U'(8TX5!_?3#*CSOH35(3N0 M[W<(##3HCK[%RUZ$S 70\B3)4SU"CZ'R#(,?-ZW%1^7@8@]T"@R$*"*PBAE M>2@%**5(R33W4A7]4"\0>Q<_((H.S/@W&*@Q)8_=.^?0:'/^P:QX6@P;P?I[ M[V?]?:7'=116_OENA&V.I_"$C7PZ53L11T0@M4(7FB.@M2J'F0=S;S\'0IH; M:EO#]D-84GW+*;QLP*1@B9N/V&X$?1BZ+]]SX8"_SJXL,'S(&3E&OAC(N'W@ M0J[7IL1(#W#N8#WV3?,AB-J9_63/<_&1D%N&J?RD,P\$/[=;O@=V5@U2/ 3\ MKI2D]CVN>&OP^>W8F0M^@_/3F.S0EY\RI+7#T! ^F$J*#(<^.7]83-;I2A'K MSNJL]>V +5= .Z[YP'HA[.X%?B25=UO\NQG1/S><$-'T!%,$X##S#N ^J"/7 MW)!P6 T.D[OE^+<1=S2:6HV#QT[6&HS=J("BAZM2!8SKJM,',&UVU8:&.\T91H%E V-% M3.> L<60R0]K$EP%XMGLU1XJ15./HQHL3-+]2(V]9H\0GUVU:.;\WV;]OF@" M*+5_;^F "%1%].J?=)4JS/P0N[ZUN30W/5!W%?B#&-OW;+XJ+XR*(I8L3"/. M,$+"LBQ2S,ORO%0<'(_T(.;K:PL\GN+.(S83O2K529=&#%:!Q""Y>,+6#!@N M!J6I&$#WH?V)>)3J?P@$3<#QN0X]:[IB5'Y$$DOI)56U'2[BW/P+@0_46T.7 MU%D EA:C+CGUL9+7W4P'EOO1H>HU"F ,JW=B5#-'8ZFW#I28(2%)E$/.[YN M*0F "=^8I+]&YQL>4&FBY5=N8.%-^TO5K9J.+]ZH7YOZ\E>$7YQ3:<.Q2"]:F[[$XJC< M['XA3UBF@9?[<%=4BR]77CVNY-%)]1:K8!>V6EUNE^R@,$)7VY2)H-@MK[#G MC*Y&&_K<5.Y4:E8]([*=\#/-MBP3D:;O PM2AP7(^(*7D!0D,!G&&^!MKAQ) MN0)PRM=9A-* '\CZA=24E#RRP2S,R!J'S2 KO7?&;"4S%=?;7*&;S'?-@WQ2 M)[P=D1BOA^/"MEBNTG=85F^(=.'38.Q6G69J$ /V( W"J[KQ4 ::LEL;CP$W MU,1<\:I5JJ)E=H\RL];==F\=G6V!;0K2C)-MJ:9[,A"' ]VW;+9V;+MBS S? MQ89KW6J,NH!@/*'7F#JRL &7=O8KS2Z$!0+MBRP6NBL9*/R.YM*O2M5M:5'- MW#T@-AJ>LR\=L+GNYHU"9=2USGZO?RH]SA(U$2TZ?G:U:5?4C!BF;A>47$U= MCB70ARQUGYHCT>U3G=94IW7'YPV!AM]3J#65:MU9J=9Q^]\_M@ FW/F0&,AS M4TZ-L3^4I[J1#[;)M-88\NF9QC"V5SMV>P3_E:+/'WM$TB :;9M @'+I>0#F M]#QA?!GJ9J5#UCB$_:7.?832U>(/ZKH_YYQ;G6_T>[N_4IR\V/XOSCG&\/2] MXR^#K$@R$;.XQ-;-:<)9H>*4)8G*,L&3P.,'"GV!H4Q-U?3FOP(S82W)J7S@ MK.UQN(MN>=S)/.V<[,Z"[.1D!Q>*! 4O3UI MIL 9:->41:$F+SUW1\^WW@N&(2'%?) O_D$DUBV2(/2]U,MRL&@]##&5:0&2 M /XC>!&&L><7:13NP F]*(^EB!!/Y;$HEBGC?I*RTO>Y'T4B][Q\6Q(,;OZ6 M4/B#YOLK> XCL!3K9/F3V+1(A?H@9S$XBWN?8%LD/Y0.97=T#/(T"+GR I#F M?L0BQ<&L]/*2!4$@RJ HTF0752KR/.&)G[$XC12+BE"P/) %"P27@2IE*O@3 M. ;AF7=\QP!7 X2#[F&HB7E:CJJ)89+0@ "0.%*W,+3A%D1A([<>A?*IE)+( M5:46"]UV3#^>X"VNS<3V]W>8GO4AU6?W;245L5 !3T.6>#)A4CLGXX!XW9IQG)4$7>[0"=L-/UM&*:TFV39*7O,!ED=IEQ%LW;U MULCMU%;2Q5#'A%@CYJF!#7:;S57:@*Z.NMN[3U_M- ;!2BV[I1C%Q"AS;SUA MX7_5]202FC-8)R^'A?7;)%R66IW7]4:W;J0(\3C.3V;A_NC^.$B,T6\30'XS M*NCOZ$^V/$>#HG1_Z&W>4,>4VO;H+D.41NR=5-'WD8S!0=WY@&4-NTD: MJ@S86\NR99^DF6Q-3YD1TRLE@9GKCVW8L4[[0FD*6PW()K*[2QU5T)VY3?^) M'IF--Z0W^5WP JD$!G'XJAOP^U$0'HPA.JSNUO;'[%C2W$>S]P]9=2+!. Y4 M%#$NO1 L@21AW ,;V5-%DJE(EEE^D'B)%7V]T?-KTW6W%IN$HV*3<-=PKC?+ M:W"=.UG?-C-?>ER(/&1>X$L6A:5BN>2*^0DX@''LIWRW$AY&%F61AX('/ MF*(!!8*,)*V2NJ3.M,_4U MEG)<==:T#UUY<\^V?NJ',?>"F.6Y#[:^4AG+E?08S[@LP3..5. =XH:_)-+[ MW\C4>=T7$D_1T&?_2R^-=0?[*NNCU$;W9HG85B]RM#KHKO>]W\C>'52E5_66 M)3*D+4<\WB?9EM2:;=AVO%9@]9,=B78V6MZ.#U_WIG;-R\$(6JOD@@@%UC1S5Q#?.3^GZA^Q4U_U(?1P(.4&&'-*5\;9O M1]DS]9LUT#,FE@QYR[&TH^I<\@@?]Z>\V;'VR7(G\A-L"FG+@>;PVDN^<#'F MX=+->V"]X1DT[/<-C)J"UH0RP)OS.9]A/Q9-N&NHS+2KSI;\3]T=H32% M%-K'P$XT1%:V;CG3-BP"Y.O.-$Z;;-"'NO5#YA=1(7-"8GID0U_3LW7F_[F#1]I:'5T2A4/_*B6:?P]UU@**\3TO_=/*=P#8')VA)Q4R[J,>SV2LC[JT:Z%$*%F!/F4J- M3-7J\W:ELC4K&TS26JJ^U!2#5!;H:.DQDD_!,*WS]\,-;WTA0AX+A"_V*/N* M"@E00PUOM6/KZS6_"T^9KCW<-#/:;;-2T=Z.&K@A*K%9B.UUUEQ7@_0HSK7O M^6AZ?F$W2?S@B%^>]N3F;'8^"M=I;*L!>C!-\R>78)-P;._2;=6X#7*S?>!S MD@,/)0<(0\KKH;&K39J97)A4/^[O7 -D*1.&&")3^7FK\"!L+_G"?>3! MK8)!.\VT3<1>R3!J<]"-XM08)J*LO6>O.)=A6?A%QL#[%2SR@X3Q("M9D<0J MRGPELF0G+?P]7K%M7OU6=P'[F^EO<0Q9+]MKXZBR7G:!3E@X?+!TBO/1M;^E MDXWSU=!#ZFP#%;1=1RS"7'_ *DV;;C'9,F4[AN$9W8^D/ @I_3CP$LRYGMQ MQ**HS%@N<\Y"$7J9*&+%8W6'5^X7RL(3&]M#R7P2J\(V&VIU]Z:6N!?6-RLY MW+S=%KM8;F!D:0^=:C&G;J7WCV_;\)L8C&;5)W95";AP/[WZ>UI$,I2ESS@1 M5 618D649RSC*N)E%*:I$@]S8Q2XC4Y@C/[G ;=#@;@& M8YH>8_!RVX:NJDU1NB+5.^!&6CJB*5?@2')W.>JH[ )4X*BZMPW;Q%''6A@M M&L\#OAK3 7K(RS%<*&OUZT;B!D#2>X^]W;^_DYG#8'3KC1CW-!T$PRC\W9*9 M7MX8?A+: '"[%_@!ZO.J*QHJ. G8:)W,#ML"W;0-I7;7EE]G7(]@*4DLF,;T M7S.<4:[%AE%Q1^*>3E5S4]7<'9\WWY^JYJ:JN7L[;K?TW+B?EV]J@\G3S3-E M^U%V?R4^*N1U9 M ?C22@?2AQ$KZWA1A=\5=BL0.HIENFB"+5!U5X/9G#3(\*K"8D5)94TAD\VABBIJ<#F@-7YM]9 M>VKWM&W%R6N7><"-[ID1=-B4DOM$\;8;3[\OHMI0A#(3*5,*//$H]$'\"Q_< MO=P+DH![62CC@\14$-WP,Z9/+P9M>]]0-(7 _:@ZP0M_N^#U0T-^:&FHQ_#? M*>'[]V&GX:,*=K['03*=E1X.\I2%AQPE+@8MHBV3-&7'0.03X,8LGN%R-6VD M*;L&TXWMF,R>7ZZ9P-A:_"/B-;L9L^?O7O_1_?LQ7P,%?A<$0&]TG[P M$L5)WX+/]BF7>U*7XS'U=0,_+SBR"MXL&?3IJJVZ\YN$0:=5@ M<48OWL'R:_:U\41Q14?CG.E(I@7W;PU[FW+VL3UJ"\] M;8K>#]OZA!+CBZ9S;=X=HRH^@+Q6QVANGO8[[P3_)RP451O,-('^W"BCW>UU M#]MS-$[X>K]J6B4KC#5H8VIVXT4='9[!6>P='9MFWBNUL$YU;6^[8J M0K@%/6+'@H-TB5=_ET92V!NX&:'L7;@UO6 ^BQZFA M+E0!A0+'B&1"+1(AUHV;_$"$W+,%E8"Y$Z$A%)0)9Y&, I;+(F!9+F02J3C- ML_P0%M0[S4W[KJ>F/2K:P:_E];U/\^C=+IWO"8M.DYEQ#-;$A#9H(GI[KGC( M"*TSPG2?'9VXY7Y#'\=\=DY(LH^5(.('3!Q3+%P'\0V3NG/%A\!:AXNR0T&9 M8*2*XYJP)!-@+O1_-;\I2\W=7ZYM35L+OC=QV)\E"".POZ#PAI'ME,?%7\!^BFK'-QE/0=47^M#X#O:6KP=P$L>.6R+_;K- R M&X5JMOE1;/'_K0?O ?,*;[YY%?K^FGBZ+9J+)MC=*P+ CT CBB)D/,H3T)6% M8!RT'#HVD4\(4Y<2BLN^-# UPW1XH&&/(Q=9JIK5_;F<)J!J>Y M^SN__3DKYW31$2AI[90R(9W08Z(<5$>UT,_635.H#&%@/>X.J[B! M/R.JG6R#&2*U&)R@%;4P@2/WT^RY_\(&T&_L:+2",U1G=AKSV?-@ZZ-#1W@( ML3#^IWT2?#-\,2!P)O.@-UIU" @^%+T@!+ZCBM[YC(4N?_5[\50_CU_O[L:5 MOI ^Z+:J1QWX=*!H;'?GH:PAJD"; ]/GV4;DC9':)W!U$>S>)\,-K,Q4W3RT MQ;M<8EDON**H&=>:$H:N5E5MK8V[Y(83'UO"&<_ *-8U(FS)FL8LPECT$_^*B%8)+O.6JR/1H,M.@T'C]V086,CHAPG64+I M3H+:N>(R2U&/QA$&]Z@M56,[2'57E!LMI&$R,ENX$XQ%J]KM!&VR,KMCOD4X ML/IR>/#Z9^\\;HDNXFIQN_C4:J>D!QC=0BD65[EFA:B9- M8FJR =L+_1""L(PYC 85=#:.80;1D%0%<88,0^!6MJ8?5T]&Y&!XL"T8S;@YG.K MS-%K=/.9&1F!XL1XZGJ?*/F#E'D4(6$Z1&+_>@IZY#:I?.&NR;74HE9+6I*H MH]Z5/;/S[2&W=M@8TT!#X4[VZ 4$_I-S,#3@M57D.,WX92N-98\GOX>!HG$. MS^UO]G-3%/W6?O7T=B-ZP93BT,F;7-91T9CM1XIGK[2=S!06P*(43D2B7TW5)VB MU,J1U[KF%SGOL"V&>[/.D6,=WQ:F94+"3DC8NT;"!A,2]EB1L$]+Y'^G*_F5 MWO]/#XBP_=O(=.DUCQ/[U@[^R%OLB32D-.T&A1_;#EK/_&YH3DJ^&@,.!&D[ MXR_L&*>=! L#'93;UK!W//9_ OV-4KL%2_Z/A@*+:$KS[L\MCXT(0TW)*[=N MBJUD;\S(R14[F_VG[4%N+6VAZL^HDLW^;-; M[AK([:"JD K&19!<4W!LGB=U4W?W8!U0L^#3@<]H=A1< \5!-JL-'GLAX0*L M1R%F%Y,:'@Q473:PY7R59G$V>S>$PIGG\_^65'Q9=B.E8]?C-&9?*;)5.X;QCARX$[0^ !0 MI)6^H8%%>PZ$@SL.7]_3OXTNPCCN/?3/=7\KDU5!#G;KJ<_U92&LZ2 Q:J^! M#M?1+=C?V)*N)\%)-;AY=$%/X8Q^O?7\R^[2I#LYTJ&$':93ABD#S*AO$2KU5HSITU:-LPQ;^4;S0,N>AH;GM>SSIFCQ MVUQ1/Y.^?MP&@0R"=]^';:,X^)U<[]%%J(FP1S$U4=D3K>(C Q;U9]L16^=6 MN+_LM3Q\R:G5D62$/ET%'6U*>MH(+;4BZ* P_ M^QUU[7 .<9K#D*79D[N_O%\O:2:Y.^I+^44PPR,(9;S!L5FZYV'OY_T@ M#DJ%#J=-,?6]D]=I\/UA!KI=)O^GC6C7V*473]\(F_FL/J :H:81SS7;JU$/ M^-..@OC;]A2_>7)]XYNMC48MQPWOR$=+5+70C4(6B[Y<"E1B=1)&SM?PE]L^ M-UBLS%:+#6::<=1[B(>O>"L05C>?+7C1M',C@#4Z F7OE>3Z0;2'0U5\ZUY\ MSO*??U/,8F\B\+-^@SF,7?-=J^$^"Y9X*Q@A4L8N-+T+\87ZX+K6LM^V,N:) M\]XCIT9/S24Z,F5WFQ2DR=EYZ?)QZ1H8#9HRN8G9TE3-='/;4X^$T^:)7MBO MUX[O#H?)>TC]B$6)7R?L23GV6!*^[L4^!M4UW-A&O:^MU_RYG,<@>H7+MN/# M:]OY*XV,GO3P6\N7MJ79V.59=7B!_I5W7,BF]2'UH[N.9? M8\BA0Y);R)\:5\G:F)YV,'1M_)O-K>+1M/SXSN*S5GXARLCU.:*;;L,[=MFW M*L]U@$D9$%?ODWUI\-\<&OWRJ+\0&_WRF#Y7#/6CJS:WN4 :I4D/W&R;K3.S MCMNO1^W=ZL)X$UHCKGNX,V@4M5^>VA="[I\1!:/P,G[.C'U8ZVQ;R(Z/P%Z$ M/@UF6+G1MR)T;R'S>ER,3J9T_T(GDBV&\6]XCS4NEPB03+V%PWYRF@\#&W*% MVVLIP0TG'WS#2C,GR@I9B.C#2B\Q*QEIA0-13% M6,*Q!5X=<3:-AXQC&S#8#E(A7[\XN"VGX'Y\O35C88NWM#)]\!AKM30I@W:W MJGL^@V$NR$(G)8\]3 ; ;0UC<_;"%@C:)#UM_QC42:#4:WRB[IU@?JFEQ9XX MHG;+32]9,Q#C$ EID-Y]J:P]A_O:-!5\02*JNY)RK=T'TIC2!-_6O9NTHO9] MR/N)3I"@!A#P>LW(0#PH==E*$XC3;@]Z,P4J/UU*TP.S!P19N^B((_$V)MS@ MA!N\:]Q@..$&CQ4W^(A5\*TEY^I+8,!QTF9LB%;#MD08N<(29M(8B/@RK=!F M7'S4?9VH*&75=$A2M@>"7DC5M')H8/7Z;6[TIU8JO=H8& =#7)\I#-4@)%-- ML*T&;6.USSCF$1OKI2[HZ[%EB]V:_SPW:ZU(38N MW+^^:J7AM*@^F4&#]XC9M5'/VKG>!3#V<,_.L/4B(^%>;%-IA#Z MA?#C*&*A\D,6%4G,>%1X3$2)$+DL5*[2;=ZG7\P..?ZG(0T4' C_UD[1R:A3 M=#PB7L NT4PT:V8^\>Q_>6?!,;6&7J(=W?,U/1#YPG3>W7E/_2#/HB)@881G MMXPSQK,T9K%27JSBV ^3@S1ZOZ_S'IS%TWD?C(#4/*;3P&Y8W!Q(]80_J'J" M2?7LN8K2@3U5,E'F11$$85BJ'=)F7F1^(4/)PH3[<'UE MR?)4):"]/"["TB^RN'BHJ^B?I=-5G%3/K>>]R NOR,.4>=('4RLK \;#T&-I MQ#D/_2 -Y0[%IDR%R,(,SGO@P7G/05-QGBCF*5&*V,OB. @>ZKSG9^%TWF]7 M/2<0EK\]"-^->"H<^=>JA:/35HL;C1MS7;!T4+CEUT,FB;Z^?^DZ2XW[=Z-: MIEB3B5+KE-O"%K"?,R M,?#;:(U?G,W>;CULT#IKBUL2'KZ^FNE(KH8^Z:^,&D3IAUAR9@T7;H@FN,\' M(TD(9OH'G2-Z3]ZDK,N-CIPCB6D'UL=B:;E77'+2!&]45>N^'7;AAA6$#PG4 MV3Y(S34&5#:Z3?>-7,]6O!(VSM.:DC'=:$WLV0.-8"I+#6BQA,M?$;.Q(G7[ MF7-='*8!&!9G!2M P^KSGI25J&U.:NXR.8[VSL19AITU"KF^EM+F64;M/XC( MX*,.LY@,. 74N"/XX<1ZL)-@FI5M1=?+WD@O#U_7L]^:C=@E-)!(N M[2M=J, 7L_X0SFS7WF[VTEUS^#I6H+*YQ^:%=RE(/->_#1[O<2:"^D:_NB/D5:QW_REZK +!&&WGC_# M-YBG8P<0 ^;613T@ZR3VI]1&#F62-SU>#6/WZ#U3M-;68?"%Z2%A#PQ^$GG MP!08_*60L'.4TOTO4/8<3I-VG>.SV6! MO(;+(E- 5=SID6Y:?,L]#S&=>&= MF:1K;#F$H^@_5;JP69-#UC5B/#0,6 ]2@R\(^*/99'3QN?VS&*P>:/3-FI#C M;I'-2_ZMLTQ=L%C(U:6) 31(P;&J&45!>!!ZBS #PE#&.5TI_%4!&THHQF8E MB4:@TLD3\RZ-1AX]SC"BV;A'!:M6DL(:+FZC\QB.J6X_6&AVBY]6BWFS)XK'--V:"4Z93L; MY(I;CX%< 8&Q7USD("Y>UW2)=4&4D11IM$]2])^\54+DSUX,3T;>W\_]%Q,I M' <<3%BZ<=F@V:V+:/N6K_HB*8DXJL5<'PK=EK5!BY^(.W!P:YH&70BX=O_< M(*GA6H,\,;;778'N,X9?U5+;5C)OX*@MC#>@;ZEA47PQ?BZ:<:[O;2O5IL8& M)S ;?GF)4+2U1L%^9ICZ.02(UX+%W(D]'6'[VV99^>C*(\P4;",B-[]LF^OU ME5G;&UWD8PK2G+S NX<*=[0MX'?A76KP%\DV+0A?V@*M MBV:YK#0E]O-G[U]>/'MA[3GK.:*"WRRD*4F'CX")L9#(0(*")PR9[P=I/"<( M_,OZBAO[D%YCK9WJ?UP%Z,6"*EK8.Q,7&(H>O$>O:VR6T[1$'(*>'[[;-CG4 MFAFN9H7X22/'G/2QH.G2O,*&'H:"A^HY]=FLI821\KV#[S8;AHE;"L/H@&H*\5N@KA M)=KU5[.+JBTW8%%$9SHC%'>,<"_7=S%(9!"WN!.*F]$<;A(:.7 SHK'"D9=Z4- M/VTZV^43_]97K#6V&.*F;S1K3A#AX*UFN>\00NHK/PV\F/E%F;"H\#)6*.ZS MD$>1*CSABR(\3#\K@G#V7),W1*]P2VKTW5;JV>"2Q=-@1XY0K4Z!@>!@, M1:I5-EN[^!67=^]O_Z_9[#LW_;NQG[?L^+W!/W'*!Q5D4>*7*O0+QM,\8%&8 M>JPHDH E*0\B*3SX;70(0?825-CZYCB\ MSL ZK]:R+]NYL0YO3P ^>XYBZMFOOU[T-(?@F5 JXP.OKC:*;GID"RQL3 O6I1\Y+6+$6_\1[#; M+5_!+^?_WW_/8 CSOC@2:T^-'W.^6%UQ<'#P@3C.Y\\&O]%O_07\#U,#>-N, MA<3&\<;2TMFY?IQ]Z>^PRS,,^Y]8VKHI*$&*(=HU/911EM]4%=O27%V:/!RL MXB5]?,#PI4DV,'2[QM(VG-Y_-@@()G_I/?@<\&F0#YRRII>\'O:J,#E%7):% MB562"X).RQ6&;-JUIAG#\S"1;$_%,O=:+!.-3)NO+I:92F7NNE3F-%3BW[:U M'V@R01JN;LYFOG4#MI6)4WHCE3=42N@*_-=F<3,+LK[Z@?B2KG6?:\H:=(;" MKFI-?WM#<6 YXHC2Y2-WU(\Z)PD__,9K./98](Z5U=0[3],>=#J"1LF@+37H M&%>'Q=1[B# 0AF (^X;S=@P/#97%4XC"!"=H -V&NCF941"T L-9V!D7.>PV M+:(J;&.0"UCQ:NVZ]KTU7[/-0\IGI0A"Z8/ B?A._0HOO5@D*F)>$@D6P;]95H0Q2[D?\;)(,B\) M1\U >^J1UW19N_4[6)!SS#J]Q?49 2I7X"LY1"4+AI#*X$M@_B/"4_[EE,.] M0[E3F;9E0E\HJ5,8.CC>+)'$I'0-B,#/J#4WS:"]F>5]V&J78QJ$FYR>$;!T MY[2%K@FVC(!P;QI#(7O2'OU%''!?;\^/[K:*2,6AD!X+PR1@\(-D&0]]EB0R M2HK0]W-O)YCA*1%%/)4L]GC,,.2A8=,R4&51IH$?ISL0Z/W!C#?7X \B3\I; M<$TPD'9YL)L;'5,5SE\T-@5FC2IUK&VL2S?FR._II.4H;-'S2L 9.[-VQA6% M#(_M;(6I+XLL4"S)?02P93THS+/DU+$#W^V8O\QG*VMD BQ8ZTI@7EMR,*L!72;+;D=-:'82U\& M3:R(SC*%']%*M'$2^*H^G/,C/9T@V<)2P2$KN"I8%(F"<3BHS _B)/=$4?!H MQT[)O;24,DQ8X(&Q$GE2,2Y3$)Y^GG&5)#Q4WH.?SN@Q'$X=Y;JXJJ2:O?PD MRPTAA-XH594Z]F0D6Z5+[PTYOCV96P=S0&CS3W1A/C84&FSE,#]SJV,V=]U$ MYNBC#9[[;]V>.^$$-OI4"-HF7I_U54OX'4?'#6.0.M@'OA !VTWRZ1E]A/:S MT^G)JO[8+#[B9T:: ;L2:3*YG@YWY&H.8HQS3&0A+P EBY%N@)B"!LYBCZ0L M-AVVH>W ?>#U*=N4OVB3S46]EUQ(DF\&N%4AY)Y <;M>)"[IT=6S!6%>R"S. M6>AY(8L2&;)84F<*#RNN%^F ML3]RO2[T:EP,7>J#407D1R2[;/W:5H#@;/;*)!<>;FA?HN6P;9?I1/? Y2'. M>G$$US(1'A@982B*6\(9=WB[_+/L"&_7PXW@##NS=0A0MD'= M+>UZ+4W+[T*.T+P4W-RL\)_317$7164J+'F1@T7,\:(D/LNBD+.BS(,4_I_, M G_'GO9ST$MYSM(0R\I4GK$LS1(61USE4OFA+//117G;X!A *;_:(!WPG>JB MZ;:,1@ 6J*)%_[(> !+<3/%VN_-0+=E!*NB;E5]B"5VVSO 6S]+M"LMDQSA442F2S(]8%B2@ MP7@6([-4QE*5%BI*RDQ&ZL$N7S*Z?*R3)5[ ZZ85<)9N786HB&)842:3K !Q M$H4LRQ*/<1XKKU!QD,J=^$Q6\J#(>,)4%F6P"DJQ/,L"%L59)!,%(JW@Q[H* MOS=[!-#Q2"1"7YA;?2W;VRCI'FZ$7TN&MVUP7W%!:)Q"7F[J@00;<-.X^6$9 MGBF!/>58\&LB(*X-L;]+:MV"'^XC;%M(:=HQILOC'5F2P2)L8Z7?ZU_OP*5' M[QDU%!XP/W#Z+KR3"GO=JU:VUSSA%;NS'U4$MY1 <,$C+XQ -/,81'.12Y9+ M$;$HC+W""^-T#T?MMY1 :%]_P1%:_=9,Z0W-Z$$.QW:<:'OGYJX%$:*L7<_2 ME9X ]FNLZFJY6[Y/&JP]@XCLG8=>\T("Z,3='A*\=BH;8H%5( MU'U$X+4=HX4&X@DW?1TT_LS9/I]@OM?-5IE\+R.VRXL>3(R_'H(482,4KQ:Z MO8S4$!^[^BZ&YU9_O!0$^M/S-/F@F[VA/ZX;@0S;2EEKT3"*[*,*V]3*=O[H M:U/G\*A%N5E8P.).PH\/DWV4Q--=/E&\4S2EE/#AHW.VDJ0(O< 73$09DEC' M"2O@HC,0$GE:2)EY8B=J_LT" BR8M[3>YX/E/I#S%)UYQV2JV%24.Q6&[8(( M*1XT\+4;F4/K8RE-]\E/5-@/PO+83B@X_+[ ^)A$@SR*THSE29RQ.!2)$-+/ M$V^'ZS:+HK#(PH(%,4%&O(#QHA0L*\NRD%$4J#(9JS"KNQRF^O!PCV.BN/W+ M UX1P_7W>2%O9;51H8;S8:0Q-3)E6\5;9:!Y&4A<(U7+#4EE:CM&&%12MA7Q M:KJVZ@0!H2_#2=+6>R%O&H,VM2 #:C11J=ERLR9V*2WY2>D8O#KBK:K3)GTX M7V]G HAYT114&VMXH%^=&:!KJ)>F1Y4U"'HK;+LKH?NXT& C2WI%J!PAL95> M,>+](O]1)SHN-<$'E@XN#"-;3?23NE1Q^+)AE>" EF)3]_U8MBS%^38FS^7L MORQN3S3PZ_F%7\@"XT@J8)%(4I8++AE8&WF:!1[/LQU)_RV)21MU^=76BKYJ MVC]HQR\6O%IVY[7]!W5JQG/Y4E/?@0'SI)$S#YG;_YMK=C^\+8XGSQCF@T[" M6V* )/F0,=$6+/&/6+ILO@_?6UJCK,8-PFPG>(MR3.GP9;J&B9CA %&))(J3 M(%$L\?R,1:DJV?_/WK?V-I( M->ZGBWRV:%.DEH_NUO[Z&UDDU90HMB2R^!"9AMV61+)8E1EQXI$1)VQP&3*/ M1C,2/$+VUD''V\GUKV5>J;NNK M/[KFX_,/;]_\Y&_#JKL_8<7E7FO)O)K-N M/BH6,TA*MJ+7;WG);N9\G=/Q+%_XA9+M?HIQL&@(B4OY^N7<8BFVOV[=S%GV M\,U??WS[YD_SAI)Y!G&6VYB179=NPH)D^/\7"]K2XK*VW8Y+,ZR+YU$&\LZ8 MR!%&!^E3\7]G;DM[;C9>..'%Y6ZIVH;AGR4Q-A]B?A>VSBY5_GJ#ZMN"Y:R> MZNB =.1PG$ M)J:=2E2[!R6U[7+]7E;KOUU_FMY.)U?#43F'V.@A1BT[L^.I3!(L&+RJ+E ;;S-%S)B]WQN9=1S0N)*P[Y?,HS M?GYT,YRUTD[QIW;(P!>/_--P-*OPZQ[ M[Y]YC7>1_XQ&KTTYS\E:\0K?TC_->?_[:<'W?^^*XZDO]"Z+(X1R6=S5;]F? M[HYXRL7G0K-X!T;^,YH__.'NP=T2(VQYYRCU9N1C[4?*2F'<.IXWMKJ6#'&Y M#Z;DG#%J';@%@V81F>O!';784NKBG.7L[RTO3SE'7;)M]TS>&H%9@JS-9FI> M#3^ECVETL!<.=WB$HM6'&X[*Y18.1 MKEG(6H+]%:$/E@G&A8(H509!"2(R%1P*GP@GBB>\]@X1>2="S\3E,37<'U[H M'Y99EWA[$?_>C>X(=T,,9C%(3FEVM%5/L=8EHA@U5E.T$)G'T'Y[9 MR DCB?"5VN%-#,:O\ZTJE<-%4FL*%\)VS8Q%OL2>,8O517XKQB*+XG7J@5?@EB6E8T"@3NA M HB<'!B,'<#=)MJ6)]B,TV32?W2"#5_4B#Y(,U9/:QWCAXPDL2@@Z%2RA$: U>ASF<0L MMU%')5=#<^F3U22#,32!2-Z"M<) U)0P'[C+2JX[\IL?9,SR1;^E+1X/"RY6!]5O@WYV&<4Q[,SI*^?E*TE/A_8;W/ M#HI[#DHCOJCLJ>,!ZGB KL<#R#7C ?[//D\ZD=Y M.Z [,)RB8>]]3O'[V7U10B[)-XL/X-/WWEWF56N__=XAI+;\1WQCL0;K]6V4LCOIE;DS7OH9?"//66IUZGEVK; M2QS@+O[M7R>CQU9Y;E0-2IUWX9\?1BA$$>8BF]O_/"ZRA5!B9LV_F]GT\HC+3GN_O+/?"?[R9-.VL^V:A*X\;=+-#>[X)JJ_3R&_;'H3A M=.P&[9\$KM9I]D&$7Z E7I14/^(._-P"7#ERZMM;^668O/(G>]P<;;S MO)\C2(_./MZ-'!W#TG4M65]=E*HX)ZPX/Z(KU'9W<'J_%+,JSS.DZPF7H?54 M5WV&@$N1PXO<@T?O^27JNM,0?XM<]OO1C.M[X9"/GR-_Q[T:.P+GYK=XN ^$NV8.U)#;]W4L.?*AHH%;_KRP9>JYAWJ\05N8[@D2MR=5GU MX5+,BAF((FD02@DHI-T@),N,>Q:37T+GJYIZC%E4;<6]^(4?GEID$ M/)?Z6.<9^( V(DKJJ!/,)[:]=XMFH9=FBE8J ^=:^.N,B:PK'_="JO4M%%7$ M*VH=R2-7U-H>M:332H:$_BQ'5U68+, +B_Y-LK\*ND5_ ZDD>NX-5!(VM0-!/F(2D20*C P: 7#-FG4-JV.0TKC:P;N+S[ M B^F+@Q=W[I]7I)>$[O;ZLR[PF!7$[I=:L^FQ:Y'J%\;;OJ+RL].R=:H0(E2 MG$(49>HO5QZH$%CI//,@":.E%FY'+QF&3*105K*HN,KLW(W<C M*&\+ET4[X;60@H51BKU)TQ^6@3W53-143$W%/"DWWV[([OYS68/8O[I,)QA>,*Q_N 8Q^3UEJ"$=Z 4)8@M&)4P"C#",%ZGHGH.-.^ M;S@V%U+J"L@O!^2#9.';JW:0AF^O\]KR\,\ALJ&@<3@O)X0&- MYF%Z\I^S&*_>?CYN[[R,JA2J@V+E9)G;",YB9)%B(,PDY;A9H;C=)OSX8N-V MD?*7E.[3L#V0E-=WKMPM7M**EQ4O3QPO8\P^<&$@>19 ,"7 Q\A!9Q*DBYQ9 MOU5I_![Q4LD+IG?+D< >#/95O^_/BTC',;/OYNT+R]&?7Z#5],Z_F4 MFE;OV];0R;!QS4^]T7C2O+U.@XC_FS3?OFF'D"Q^?_.G,FK^/]T8/]3\.AJV MP^=_G][<]&^;MQ]&*94WC9O8LJJ\"Y-AX:ZD,^Y*VGSJ3:[P.V8SY/&%,H3H MVOVC#" :]ET[T+&]8$P?4W]XTTY <9-F^ DO-AW7V4+K "]H!*]";Z]HF4EM M20"C!8)75$HEKA'<5B>@^L2"8!ZL*W,37$+ R\2 -BDC0'*AB7X.L=-?7+]- M@HR&U_]9MO*'^>9V-=B+7*[OB-__UA_!4*'YY--64=+_3'LWK9ZB)E^YB"^D MC[WA=(SZ$8;7-_U4]'"F9C$U[J/K]5N.?%3BHM=WFG@S'96!4)/%"T]I^&7S M?AD6FD]NW*3/*4PGLR[SEK/^&X\;>SZ4CS.UT>Z%<^X\HMX/N?NN&+IH6W :[OY*HWBC"C?/J"--^6 MJ[WY=3H*5VZ,XONGYM,5?F(\1I.!MXZ6T^%S#3W">/M0XW)!!*4ODYJ>>RN7 M!Q2>1X?YG(?U^_6!B-\);VL&9\FKHBQ-<..KYL;=MH*-HED-S1?NTU285J@& M=*31L^;>@0\T@_9"&BH3(XJNS%%Q.05+7)EY9_ ?;\ :0<$$*CTGF1#&[@^Q MP_7_=;;\78W3MG4\Y ,C@N:ZU8([P&OQ,: ]&:4ETY%+EGP&XC>]?AD7B;<4 MT(G#=_E40!AAN;B/Z*:5RXW0(J7Q9('H7Z[>3KWK#5P?MZV/BC:Z7>CAPI:- M\5'Q^G,+@8B9/I33W(;6V:WJ#2W#_ 68V M<#;7K]S?BO'Z8IXOYJ[OH,'%:1U87%K7&S4?R_S%.J'\:X1T+FK%$#DXS>BG M6L7!&\,@$>NT]8XIEK>&G)]P+]I1F._R;VG2SFG\ZV+ONII,SB_75UB<(P9= MM$[C:+[0PI,@_ ERHR*0E3,NJP#D7IUW/H+(M.= M'-6_3+%-G7I[_PZ*6G\:]2;X.VHEFK8/J.'%)T!%<^LK7B_/.#;Y>3 3L:(X MSB-PM8LU6L=.7+RM!W.WK]TM.F0S?PU_P%4N:%FF#S94731O[C,=3T9N,)[) MZOA-C4[\>O=9BQV]^?! M4C]*1Q:'7*YO03E+BU.\QBKS7\X_270V!PD^E^. I!S*KS*0I))2"L/(=IU6 MAY'YZF7=E_DVY+GG!;1ZL#(Q[J)$,B4U@I%2_W8Y@1.GJ0.9__@#FB _ZOWQ8HPN!F (UK]_1:[ND(!W.?V!S3\WS@N[' JHX%?LA]U!JZ1PU<'1!< MIVM7-7J>&OV^SDNL2M0=#\@A[/^FS<:[U.LN!??;-B(;3C'&CN-G-:>_GG7: M&?ZQBG\/5J_$PA7J.O47JD:=NT;QJE%5HZI&51MUM!IUB@]<-:C:I#T%M/L= M/8I+=?BF]1RJS?U ZW)HCH.#B\*^^ M. ME)M D>B8+F0$P@L0-GKPV3/P*0H;O&/>K4P)<48+$RG"2BS\+R$3<#8PB)&1 M9(-*@1\3E:2]8&S'W&6OAHR@HMJQ[F=%M2XK#K,R'H$--%$9A,2?/,\&K,Z! M6!:E7QT01W.BLG20"AD0"4E08#U%:'/&><*]CR(?$:K1"VIV/#/N9%'M?"G\ M*K"];F#+1-((=3R#8Y* #(QD M]/ZL]>&(L*XZ<0<8W[,14_;#0/C5TV3_?(WO:XE17!S>+&BQWO[^7PTC5 'E M%TW*>=:FT_R'&TP+ \F\A>%3N,*O3+'Y=L:TD&++O9_'YEU0FM<+5(U2)]=<_W,XQ2<,9-B!PB4QZ$HPX\%1F4-2;;P!+G_*&%X]1' M*H4 GBD'X15:..$)E&/#:)//-M^?O?!&6CEW_^89PC!N M/SUU5,A/SB)V./^W8NMK%H2*K1T4MUH96?8*%&$)O?V(CK[G 1ACD2LGJ34K M96#.&^H31V]?%;;?D$*I&E.0/'&1!^J-]/O%PJ_/22>GAX$UU5?1K*+9:N[" M9$:UYD"#C"!()&!MM)!M9,)+J[)QV] 3'@&:25,KOTY ]"O G<,N=^^N!>F# M%PF"R>BN^=*+I((";3P3S"C*U(J[]N+D;'77CD/T:[G77I.X?Q^5-P]S;FF: MW5P):AJAVJ5JE_:=HF6":BX(!R]=!N%,Z4YC":@0Q@K)G5Y-2[PD17M7V+QD MV'X<3OTD3_NKYJ]%AG<(#)WU;UBZ?K+8:]6CFI>M@%H!M2, 3(9EFZQ%5SVY M H#%:<\!@HR9&_3:3?3;Y&7W"H"U3J-F9.N6GCB.[<:L\;W7_CD+H*VUA5[2%:1 K8>'7GWA."]K>[B,H+?^0B\C&<12[Q@I9XP3\]9JQ,U85%(2[F.8%(V:(X*ST2( M"HSQAA/M7"%+CSB;!4C.@TN!R\!6YJPG!&'K//J=@LO9N9PM7"B),<=Y9#FF MXV* Y!N6RU6(KAGKBM(5I0^.TH(Q%;(NG./E4$^69C6#;G1*C@ABE"4\5S>Z M8O3)Y%(K;%?8?OVP+1W53*4 *13G6N7"1XR(K!E-7DNN1%CI,:[.];D#][KS M@-T-XUVIM#OGHKJZ&&MHT>K"K!^Z=EHYR+K3507.7 5>E,"B^WZ^Y>O_\0?\ ML!_U_G@Q=H,QC-.HE_7;YQN#+U__U6]\[OJ5 M1\9'7[/I7_N*NUS(? WGJ1":N ],4\C*2!"**["!VE*#[;BB0NFX,C]SDY+M MGP^/0'XZGH_0>K_B7_C#\\TV3QL'=E$T<3=.R4"]O*HA++>PW MW]^X&'N##S/G[^\(*[]MN5!TAT(@KK\PV(%>^E>V_/CTD WDP:A M76*1A3(9E8#01(-5/H/*7IBLA3!D)3&VB33\'JY2G/;3NWPG%S],1R/\Z7U! M@1=*1M="H!8!P5=U_KF2L-W&+^UZ6?=Q;SQ);3%EX2G-PY)"1&7X[CY$S,Q) M6+#^!3]]W-.'TW M3C=NY"9IL7:ML9A=^\UC6;*/O7'/]_J]R>UWBVNL*X=MOU;92R.^^?[-OW[E M/?12F*?>\M3K]%)M>XD#W,43M\*K=>V4/4& MJ'3#*49S:1.]_AXGQQK72&41,M M6\D6;%+]>)_A3+'1U%I1V^!EB*#C-&$BA9#:6BY3Y7K%+7#!1H6L; M]W8#/M;CQL5MYF0MZE&+T#5C_ 6NAQ_+3"Q7^O<]QD=IDIK>0J*K$=E6N39- MF1ZA^FVXZ2]*8KQ.^[,?ZBWJ"4;J08/7G(&068*CV8%B3EIJ=1;=-/3?V;/_ M=OVI*S?P6QJGT?S\"[ZYK'JX*NA5T*^AN"KI$44Y#, BU MAF- X NI%Y>0$'XYCT1&M3J-=YL@8E>@RP6MH/MRT#WN0;Z/0/QQU+UOH8?O MAQ/7KS:P6W4\Q3[9V@C[+/X"DXT2.0 /-H! .0,;28:(T0()Q'--8Z=1PR]I MTEW>'LWO/JW6JV]@[18?]]Y<4_&QXN.>\5%EKS/1!IC3+3X&<$$J,#Y:@5X< MC?01%JXM'/SN\)%?6++73,JKA\<7M*/LI0S].8TG^RE"?W]5TOX!HY1Q^:$9 M3D=-OE<,\^54H.F-FYL1RN (OZ$9I;XK!>N3(6K)]4TY0(CX\O ?*4R:]#_3 MWLTU?@S?-G&] ;[D;YLI?GXZ&D\=_AT_5NK+^H'J,PZCG\?4\'>$'1^5F?QE.4B,OFC<+-@Z\R(*"XZ(9I,F& MJ8(.UO5-X_SP8[J\)Y'K.IU*HT?HNS$J_XW[D& PC&EQK3?W^T#ZZ3/$'CYF MT?E2;C^]'GP?>^.;OKO]KKQZUT3S)2#OS6YS$;KBKW.16WQ'^T%(@XAZ_[D\ M>.D;N(. S[O6\Q?4Q^VB\>H S[8?&:3JGO3-NNT6,G=UE])H16Z6IW 9;_8[ MU__D;L?SGH1EZ5N(UIQ 9E6N#B(^+VOA[EIX[BGQXP^Y0;<6S]ZSX!R0Z!)& M8LZ"T4H"U$LK7G4Y8,LPQI6(0%S(('CRX%)TD)D@U$=T M^XS;YFA_=W@E+Y3:C-K_F(6[=OT=A2,[.UE?'-O?N-&D]OF=CSI5$W%O3$Q0 M+);I[MQG"2)G"U8D"3()SA5GG%K6L4O[=]2^WV;*]VO1O"=;+P+> ?I*#,^DY8%G8+ M6$SNN%GUU4AWS=EVY@8HI9D0P7L"0CE$*70_P5-NP!*2DI4( M76FE26\+[[5+E!*BEAG4]&LWRK%H"41)'T]*S]HH?4R#::IVX6R4J-J%9;M@ M$1H$#8CQ3B80IM@%F0+D:&W0S%E#MB+L;4_IEAMQW^7?9BK75=EL/9RK6%6W M]!RPBD1+KCY:TW2E>PZL45!3O%*E5/BVKRM1L5^7TZ M2I/;IB4N0 VO=+1GI#W5+"R;A2B(C$FA]ZH9!Y$( 1]Y &.)MCP%%LD*.^*+ M7=B9NOUPIVT=682:V:@@5;?T'$#*"),2(T T,1AGJP">90M&:6N5#2[*E2&5 M+_9=NP&IEFD)_C>-AF6+#:/L^XI2-?_:B7*\>X)GKMJ$.DNHSA)ZB5T)3(ML M,^@@T:XX2<#P&$%*0Q!ULK5\I7]XD^J#):;$;DO2Q 4C["RG_E1/N:)B1<7= MG&II:H*P"IS0%@1E&;R2A62!")(=I3ENU7NV>:TJWSR,O.O M[F8"FO[: +1=CK>I ]".RT35 3_G.N!'.HN6!WUW*I@"4::@61$49!*UUS$$ M&[>B>'B\M^0^ 7K'G2;BPBI;!__4N6@5-BML[@@V4Q9.!,]!1X6P*7D"BV ) M/BDI\3N8,SMHR=LQ;!)38;/.2^MB>L?;27./V/WB\1D>O4'H3V.*S>$FD/W+ M8U_]@NMVW]3E%),4TGOPEN5%O\.&'^2RYM_&C&X3U]6?J'KK()]"%7:ZOE=W_IC?X[C[>P@'O M %>K<0TN!X+!;/W1=K0;\&6:GYMMP?(,P7(/B^F!90+.9#2="4_N#?"]Y>-E M=3_V)KTTOFS>7_7&=Y?!'\<)-7 V93 @0KO>8.G;6IU\_BB^E^O*F\>',H6< MHR6>H>!J 2(Q 8[I#)*4+G>MHHB=#&7Z6\(G3.]NTLA-<*'^5H8YULE=+Q!: M<_F'V:(].A;P/"S;WU/3;Z> #G/NH5*5^52?W"B563BI:;^OS-S\B*J,?VE0 MLES1S_'%W-@5#2W30\-P=#,L(Z.:J^3B_TS="%&@6,3F;7F\P46#DNE0A=^B MH)4KN'[_]J+YM/CZV3>U*#)HW,U-OS?_HJ;O?+EP.XGTP=7:NW6()V.$FG#5 M_AK3Q]0?SJ:09A?:H53E@[^G#]/EV^CW2]-2N75>9/9\;W#ZXP/SF M"JX=$+>?'DVW(0IJ--8\,@>>IXAV'U'01!,1UK2R*6(\P6PW*(C+6TK,WQ=_ M]87P=\H3Y]ZA:,^YT5J]*J(^7!B+F52>V=0YR2^5?GK@&WUR,MT3KYM+=%&W MGCM7;^/ MW&$8_A.;&K168W\4G7DU\H4^E%*S37^?C5NTJ D3A99ECK\JZI1 M5:/GJ='OO<]5B78]0:\.W>U>)OJQ_^OY16$MC6=LP7B$! M01VBW.5H#I&T,S0 5X4&2)($KC12.,^=BT'YY%;(-3CUD4HA@&?*07@E\3.> M0"D.CC;Y;+->:?>[5[54CN\[*OOEI))8GH!@5QRK.+852;OS3'!F()/"U!X- M!1,%!RUX4HX[)E=GHCEOJ$\\(?8Y"F46!5B=%21/7.2!>B/]WG",J1TW+5<< MJSA6<>S8<8Q+YZ7* 90KF)0, ZNR!U7^$TWV7JW0+VQ21;DS'%-DQSU8IXYC M-8BLH/7:0$NK9$.(D*3"@)#1"$9P NA&21&5(SJM,C3J& TWZ'PQ@D!G-0:1 M3F4@.88HB9&2L;V!%GY]!:TMDHP[8A=_?4G&MB\14+&O:Y:Q0_6I?&1GRT?F MB"4\!@L^B=:Y]6 =XT H,4DSSH7U720H[SJ*N[8ME.YX;/!)L9&]:L>JPN2A MY>!L8=(B#LID"5@1,[K@+H U40/U+!/%N"5JI0=]D_SG#F%RQ^50$D$8JZ2VBJ%!=I%=W!I.,B J3-05;,;%B8E>8 M* )3R5.&T;*SZ#HJQ#?G Q#T_U#?HU9RQ77<)'N[0TRL4Q".L(QTF7>EO>HF M*=]ETI'V(FOIOH\T(]S2?==D\,ZTL5+8GBN%K:=*N3*U1Y6DAI;:FNNH8%G!PE,Q11ZD%IJD$X;P"HP(B MII/!*^X5#2N3(;>B,NT(+ WE%2QK>K@B8T7&7>6*O34J>0-"TEBF0R9T(XU" M9#34^JRX$;*+7''G70FV3H;I(DF\-T:\ Y7^'@%)YZMZOF?SFQP''AZ*SZ8^ M\FM^Y"KD]9%/_I&KD-='KK[)N6SOR3WR=E4MIQ&\;!'M_Y9NAJ,R%:@W^*Z" M1@6-^LBG_,A5R.LCG_PC5R&OCUQ]DW/9WI-[Y+T1L2P7U,L.JO3E*RS2+R>- M92#J*'U,@VFJ]0*OD.^H,GIU>,Y/I<_2Z0PQ<@FP,O2^7M07J>*)14H>>W,X[&ZVL\%4CQ6/?THI5'6*5429BA*<@2VI!&")+ MDR"%I"(U.K)HQO MBG.-U.LN'REH<9&)=,R (KI,FU,&/$L:<*6G67CQ2TE/;$29*!%4X?(3)&ZBE:""P& M)K1.4:SPI4G)LF4\@DJ%-D@IC4"'G[')&)HU>FY$[/Q0I [&K+%@W=(S0"CK MB54I8_"7A06AN05'$*9RUE26,.\1MTH+3Y@@#JS4&=TJ50;_!@LR,.FTXQ'1 M:^<(I2I";9%*K$6+F\V:2_U^;_"AS23BM_XSEV(CEN"%@:"0@-28GJP/GB@+N/'\..&[)P- MF->"Q1,0YPI:Y[#+W1--2IVH4P8(([86LU!:RQ8 MM_0,$,JE%'(,$ICGZ!@9;1!MHH0<@J2)N:B%73F>38%&ZCQXJB5^1M$R9QQ] MJ^0(I82AC[7[80?UI&.;/&(M2=Q(A_X]#=+(]=L\HHOXKMYX,G*3WL?:!UW' M:M:QFAL;(6^#\<:A!4D<#8KC:(1L@B2R=H1)0L)*$P]&\($RPTN-D,?/1 O& M6@DJ1&J%<,G8G;=0[Y,\T913T"4?\ <2?:*4 Y$TP B&X'0FA.PI)-RPC,2Z<[!L4Y?K^!8P;&" MXTX3K)ZD4,ZA)2,$A ZD-$HFB#1;$D(61J^<"AD3J'0L /=2XF=\ L,$ 1E- MTIDP',['7\V'FB8PVB*Q2>#Q02GYU3FH-))9.;HH:2O046=$GD6I)7 MSYJ,"C9+G8!XHC&(SAZ] MR&M+^+X?3ER_Z1>11]49U][S.AYS=\;JK,9C2D)#B%E#=#J"<$*"MYZ!YLD: MF:11>H5WCE,?J10">"Y<=5Y)<,(3B$+%:)//-N^\"%7LNC'TQ,9CULQ&!4%_:5[ER%#^30F&;4I \ M<9$'ZHW:2O/<6= M@,VOMB#C#IHHYC/X=JP)X1AR% HSO.-Q2N]N4JF]'7QH MQ>UO/>=[_=[D]C_=9#K"_W]?'OL]?M%?^L/PSS=-0M&[*8GMT30M[^1R2EI< M2LZ_^4I>FK(G5N;^_JI%RGNVP_^8CB>]?+N!GK]@;]:)S$]37)?4C-*UZPT* M&<)PL7[S_/:-NRWTJLW0X\VZHF3CYE/"C[@QJF>_/_PT7AYXNY"O5KP>2_B[ MZ62XT*SR./A-1>#+VZ'O;H?3"=[AYQ2_G]TM)>22?+/X *Y)W]V,TW?C=./P M-M-B95NDG%W[S6,'(1][X]Y,$+Y;7&/-"BG94V]Y MZG5Z:,N5ZIK)_39(Q9?="*_N/,=+LX7CVY7@O0?TT%J.+GX M-S_ZUS\SPL1N9>D8EJ]#Z=I;1]-Q!XU;,:<7&X]R4P8U/E?^CGLU#AU"'UP MZNR-[:KH/>56>0/6&(]A1LY@A36 L2WWU&;.PTIH8H3@WG /3&;\C" ,G \1 M3 C!)R%8#H_0$'\E-/EUYF&/?YRF7_!KWG]*_8_I/_$[K\9U5,=K+90Z;MS< M0I'0<,AJ.,Y&8:J]N$=;;V400AJ0VC$0G!86EE#X56T6B3.NB-JGO?B_R8W> M?QIV==1DZDB.&FQT9B94-1-GHS#53-PS$SD08QD#'D6I8LV(!P@.H+PF)E/. M8EX9%+!S,W$U2JFK JY=UR2\&KFO\40'AD)70W$V"E,-Q;*A\!%M0Y0<5/(! MA&4:G%4(^B($)UF42:U4\.[:4/PTG(ZZZF>V=5Q6#2@ZLQ.FVHFS49AJ)^YU M<45[J-JY59\]#SJI/V=A^IUSD];=SPX<_31AD;C2$N O64 M@7"AL,L)"C2;0+RARL>5,O)=VJBN8I@+2C>C(EDG,7<56J>G,$=-.WV"YJOH MPG=-[_IF.DFQZ14P296.I!)F5<*L9\C-MXLEV^U9$)>4:Y; H37$T$T+,$YG MD$Q'#.0X=]KMW"S^UR#VQ@$Q%V'BKY\#OO7M=?FMJ_A-['A^ZY&2=3VO%G-M MS\!QLW8]82Y?)7'7KV@>2S/31]>?IE(&_;#;J3_7F%ZJ86!M,*X-QAV1>ED: M5;1@.3$@L@U@:=;@C=%.B,A9Z*0<8HWQZ\K(75BU5_+RDVHX7K9OZR/ ;3L4 M'X:%KR0"W!%0GZPA>G:3X0D\ZPD_7RV>VM;>_C =C8H_>S,6B%Y0LF-;=*3Y_R,/>VK:OZ;]#V[::MK_7-/^ M)@4JA46;900!$7T$ZU@&1XGAE&DI4B?-+37M?[SV[0F>T4?_BA\]#LQ\\-U? M_;KGKE1YN,*N&OINC.)WXSXD& QC6GSFS7WRU7[Z#+$W2JW4%>K*Z?7@^]@; MW_3=[7?EU>]O7(PH^TN^46]V.PMW G^=,XPNOJ/](*1!1,G[7!ZP<'#>">'G M74O:"ZCB=K$#!WBV_5"YTOM]M#,%6RC4U9V;V8KE;B-:\@G55K@XB/@=5WR\+VBE%LI16)6L4,!MT*1)+N#-C+/RQ6M'&#V*3%5Q:Z&;2H@-Z0)(M6[R,Z?I1MNPG.;F/\"XJ9??.(+Q2=E?*[KU0=C^;+KG2=3][4:KB MG+#B_)A"NO9IU'#:*@^ORE,K&O;:&.G&Z0HEM#1'CH8?4^WL?ZU%0;4$KL,S MF9 %S]XDL#E*$#X)\(HF\));GB+-E(N'J8- 1991"LC2E\;^J,#0I($3&I+7 M/FJV,E]];>K@WT?#<5>T]ISO>([PJSERJ0!VQ%M: :Q# --&19FM@Z U 1%( M!D^I!QXQ0HLL6"-6"X!5WJO: M"M*5NOS42_VE#'2U%&>C.]5 W*LZXH9DCQ ?A=(@=#GHBM2 YC$3*74P8<5 M$!X-+Q/A&7<>1-8.\%T$#-.Q4"]RS_-A#,0%)=7'K 6Y0J%E7,8*A&7]>4@08*G==L$(X$U .@EL(GA6W:AJWHX$$PWYO\*$:AK/1F6H8E@U#(M:1H 0H)?TL MH>$L#2!9X)$E&J)?+5#P-@L1/7A5"!4T]6"\9GB)G*EVP1/Q_-Z&;I,@FM*@U&1POHIPKT:)DV0J^D;YG6PC,'(E..H7A, MX#->PIH4Y]4(BIWA\$'S7?*__4*\?'.D'W M !-TJ[$ZFVBX)GWN#697SHCD'/K3Z(V+PM[DF5'XDZ'>1N*#-EUP'.[G'/-" MDI%3>]! 8_ M+F$!_MQ/Y0J=%V@M.IGXM]:N_9*Z MBS^$V'&WTXF-0^H6+FF%RPJ7)PZ7D7#AH[#@RH&$X-(C]&% D+6W,1/KLUEI M:N_T:*([N*07ANWX8.+$X/(%T^/V,FSFWF,>=-3,8:WWPU;A(N16SN#2]H_?M"Q'[13$K%#KZ^80:@@R?YE\>^^@77[1QQ M'$V6^N3!6D= .!7 Q91!$ZT3@A#G<:5>D%,?J10">-N[XY4$)SPIO',QVN2S MS2NTR,M;N!9AU#V$D4\@#+E@*M2/AM2 *NS@N2)BSQ0;^1**>Q. M1'M]\^PYBO9%,TKCFS(+]&/JWUZTDK[ _W'O;1?S]':B(K*J2$7_M:*=B8C.Q +=OC0E,P4VTPA6:@R8HM=1 MK7!*)AVCX0;1GQ%$?ZO1L7$J \DQ1$F,E(SM1;37GW.?HVC?1__+>_'3DV.T M7Q0A;1P%K@F/=K4B:X=KOUSQWCP^:953Q:B) M#[01^?$ Z&V.)!&1$RA@96 MJRXLP[\/A_$3"MC;0?QY,'&##ST,>]^.QVDRKI-Y-Q$-2B[_\&4E&]#\'JY2G/;3N_Q3 M#T$W_0W!846$WIUG_Q[B1NKXWYW9B3K^=^=#6L]O=IOBDD= M-]_^W^1&59CJ2-R-!:O.DJZSI*OBU%G2>U:>V@ZX;9'*C^ECZ@]OT"/X,GJD MUL9VVEC]%47K;!'N:]J:M(T7UNA(P;ED0<1,P"==YAT3KZDT@M&5DZ#LI(PZ M)>!9J#).0X -PD!05CJ>*<-//4S;K$_6S)S.O_5RNI<>AW$*W\7IZ!:]T.XD MFUW*N\.2E1SRYGGN^=[\\0=<>#_J_?$" [$Q/L&HE[\B8891^OV&7[LV:[]\ MO<>WG.7LB;0)A)<.!/&X?%(MYQ?DB=VO$+:5Q[Z]37.'4/UZDEVT*WAKX]1:Y\C6,\X0@,BB?,2 M_[$\>2 MG6PK&!YRF"IHV/2^PR2HL,L' ]@0FH+_5VP ;UJLP*6(7 A4N$M M)MPC6!H&5DD&R4D>1([2A!>XVUV#I5Q?CE7!\BBZ?2M5Y]/B>$KKM2,[5Y>H M^C_GP2=7:1.7719IE1?>6+3ZO@S/M0P,M[;DC++(1"F,W+IHY3Z=^.[4!;UB MU\EMZ8EB5YG_DHS-$$/.(*+68)31&$3EA!$8,TJN3"C;I*_Z=,*M5R/H]91W M6Y59)GUU2UQAU5K4AZX/_8ISNI4Y\C4R1UHN&3."H]\1# C/"!A',U!/F)39 MZ9Q74L,=QUE+%F&9/+(S[X7)O1)I'4VRN!+Y5CBN,FR6S5"AQW'#KN&HX)W2M1UZG <:7LW7>D^GA?\TL/K5[_$N[A M9*\N4G6\*I%IES[8>1&9NBQ$88$H],]E_($%SX4$C&QM(BPQ:COA??Z*U]0A M\[/:Z]R95T]D6GF?*UQ6N'P)7*H8N*99 0V)@N#.@=4N0-)6>\HEX3'L.,CL M#BZE6$]>6>'RZW%DY7V^=S*YE.VHO,_=\CX[[8BS&K33Z* E*1%QB 0>M;). M4![5"N)LPON\O(7O\D/0Z8PPD5;"Q,H%NE;8"8JWX@0%MU";"\8Y>(W!">%) M*D)C(&%%V#=A@J["?G!VT,H-W9F%""9BH.X+!:Y%!<@!'', 6XAY_]/.H;Q_E\UC#?ZNIY(ZAMX"^0V&]M12LL I=#\N)"EX(W@EQ\A?^ MVP6%CWN!#ZP(<3NR>[7P4%?W8F]PVO4$SG([N.)H;[_IN$%+S MR8T;_.^,FG=\@L2\4EYR_AP:VZ?>PB]1OSJXSG/8<%D'M+S[OX\C9.4]EL3_ MDY"_7Q+'N@!U 4YI >Z(/E4E^GRP>K^OVTD/Q6BG8K&%8TK&N\9C7U.05(:@%B' 5[R%)PA"9@RU 85$GMD.N0&'1&' M0V.NSG-DT4%HS^HQV:/'9&D0ZP%9?>CZT-MA:V7..5?F'$:%(<9S2(J:,D&6 MEEFR$7).FF@A1:0K;LHF1&.=YZZILI4EIT)CA<8*C;LZUO/<*.DC1!7+P#;$ M1Q.E>+C-FRWSNQ)CC/+(<4]X]-.J]\E&_ M>FA\ 8'8HW_%CQX'2';0=+VR4N7A'N_R?^HKUC3X>REE-"F!<8& B"2#$X6P MSUJ9HV+9^972GDW2U#\F/_FQ-P[]X7@Z2B]L[@=QJ87]YOL;%V-O\&'6"[Y3 MHKBN.HTZD %*+_]05F]97\Z,.>_==-3\,$JQ-VE^L/IN.F7[L/1^ )?#?UID9SF+VX4^NYVC#\,_MG\^K% MSJ]7;F8ZF([Q_]!JO;T9]?IW_ B7S7N\YH-G:*[P>H/AI EMFG#2OVU\2H-F ME&[ZN(3Q\HRW_.=V=\>32I38[:EDEH)'1/IR# DBF A.$0P6=4A:26F57&$& MVH0H\:?>P T*/<=B'_\ZV\;*&E<)L/8@YEER%&:4\, =BFR(#+QG&BSZ)UDZ MA=Z+[((B<>=B7JFO*CGB'JR"\(90PD&U+%\2Y=^;S(%;FP0Q^#)?*9G=) C8 MN;JL+T@Y1W6I5N'!\#/E/0_> 2?,@*#XC_$2,QW402P%?QLGN=;$?GO/*D,AZ9M>#[Z/O3'&T;??E5?O4D=?RE=ZL]M9%'K@K_.'7GQ'^T% M9^)[/_Q<'K"P#=XE6S_O.J/Z@@[Q7>S 9YM/W!!S3V%FR62%VIV=5< U(K< MK*K'9;S9[US_D[L=S\D'EZ5O(5KMBCPF5P<1GX.FJ;\L:+?):JZY#)8#(64. ME_413#(1F-(AH)$V6:UD+U[BI^9)Z'WW-H31-,6YS1Z_'<1WB-JC62G?Y&\] MUU*!]M*XIK,W4C]V^8?Y$B^,\[BUO<.RRHM4:-/_LLY/,QQO*$Z,J,RL"A"X M4"!B%&!8EACQ2Q.S%%3ZE2S![L3I?3GIJJS'=X+R,B&Y[]85-VO&+UQ ]_08 MAI6]-.)I0EZS/2'OUIR^![B+RIQXBLR)3U0R5)ZOD^#YNI>UK81?>Z!EKHIS M$HKS8PKIVJ-SQ&FK/)4MK[+E[;,-:.&NEX1H<<%'Z6,:3%,M@'Z%K"V5CZC# M4R<=*='*&XB.)0C,9!48T]FO)*U>TM.QG&7X 97O7?YMIGHO:#'] M>I^_NF"*5&JBBEO'OJ45MSK$K2@)4\8@!E&E0%@1P:I$04DJ$[,Y&+F2'7T) MZ>/.<8NI"[WKWHM7@UN54FU;+?FMG/&C@WOC1I/;QE5W]V3,QEX]@1.U%I08 M2:TU0!W/B/R1@=7>0N264TNEM'YEOO*+O=RY"OY:-+"U'&@(.C(62NIJ*2I4 MU2T]?:A2/$7"4H9(E #!B0%GE0:MB>*9YM+2LK5CNT.HHA="KF]_.2_)KGG; M[O*VUZ7.HE(&GY<"5=-P+^<1!/XW2=#2.?1(T1FU4AK@Z*@2IRE:#KNU%]O6 M?]TE/KYH74?F@5\(OF,JP%.7[@I8)[>E)PI8@;$H4E3@%9$@(G7@N:5@8C+> M4L*,CUO[LCL'+"/KY(N:INU&3UIAO4O/+HJ'JX&H9-R5C'O3A(GWFD4I(;!( M023BRO@W#SX01857BJH5([,)*^6RG5EJC)BW2G1U*G@AS%X)V8Z&*;NZT!4A M*T+N!"%SX,02XD$;'4!(ABZUC QBI$E9Q![/=1<#,O>$D%JM9QBH"'FP'/1R MYQ^NV.."^S0<+[>[R47#W_RR9!=D EW/MBL$/M7#KTS+E6EY)\9,!N=(B Z4 M1*]=D)@!KZ8@^T"9R$)IN\(&M8F[OW,[QB[,KC/A)\:]7,&R@F4%RQM3[?ZWZ^*JLG\7RU,G);A^_O;C1R@\EMH1=-HX\UQ?0JZS!J M3VB7)\%)..Z%!A^U V&SP4"'$F":22VR#T&I+E)#OXZ&<1HF"PV<%]#_4,A@ M>[F78K>QC[Y@:L>C[%]-4%.Q[(BWM&)9ER/A"1')E())G6CA@"?@#*-@7;*. M<:<)VZIT\F!8IG<\BO758%DMIMQ6<^:RV=P4TOL9X?WP)HUF7/?]Y,;IWGR) M^]\+XQ2@]QFN>C&FP7<__3_JC$V.&E0QFD%$A=X#J@^D'"+/C#*F=82Z"]R+:D#HI MKMP';FE1F?1J@KH;=?EE.("<(DIMOYFXS\W0X[>TG7DU57T^>E2-Q7UC(:4W M@H+6"IU)4Z9#5VXN_M&,$IK7GK/>>G:,+34,/2L M^7+5TBP]]+Q>=S[7%#KSVBL6) ="0@(C%@M+;@&15: M<9X=6VFBW9AF8'>.^@4C;"-#MTZ([BKCS[70O@)Q!>(*Q'N,0(S+5K $BG - M0LL GDL%)AMB>);!^.[8#'8(Q)1OUM!4@?@9@0O^7(;B_GFQPO/1RG^>3U3? MR[CB>X]YT&'%/P]FLEB4:%2HGTN!S&38#*>CV>]/#8YHW*2Y-_NR'7>\,M2O MN7:WC2_#C3$RQ!_ZPT]-;]#\,IRDAJJ+YLW]*163D1N,9Y(_?G.Y7*JSW^5I MEB7JS$3C<4*ZYF:$,#7""^'^A?XTH@1L)^V$HY2"]K;8!>W &^9!,2FRXHG3 M55ORDAGK"UOR>[A*<=I/[_*#>LN[<]PZ7_TA\?>D]Q'7I?&WS0WNV# V[1#G MU!2.3S>X_>.X^;1H@7%S"GO\2Q'$^7#U\0F.5I?\4NFGIYK3)\>O/_&ZN<3H M=.OAZO4V#GP;1SAK_A'7[S6/YCVKN=:JSK5^F+R_&J747./O5^,FH5F.=WYR MG7!=U:BJT?/4Z/?>YZI$NVZJ/X2UWY1U=I=ZW:7@?ML&)#47><'_Z5E%J%ND[]A5-\X*I!7],@7C6H:E#5H&J#J@95#:HVZ!4(U%$U MV>%2';Z\Z$6+^Q?7=X/0'L[[A-\Y*&>MPSP_+ZOU:J^P9+]R*'58*:8S\UF4 M\9/2:!#<&;#6D#)/79A $$?2RKQ<9[0PD<;"(:= A%S>'LJL'$:2#2H%OE*R M^WNID$V[*HZ9H&O M&%8QK&+85\)+;Z2P5@-QJ30B"0$N60LZ2ZJBL=D'MN*'16,4T1&4\A8QC&=P M3!*0@9%L=;;6AT/Y88+M>*[JJ\&PHZ+F?7UYR;F$]O#K>^-QZ2LI71ZC=)UB M;]:$Y&(I\HK34=N(=)5JRO+<5*R:DGODMU8KSXP&PR4#D&927#"$R@^5-ZPZ:75+SP#)F,I"V<+[1#PB64(XL\H9#.5= M-H$:]+E6J \W:A8_#)(I7I&L(EG=TC- ,L.T29$H0+\,PTT6(G@A+4BIL26 #C8I5*D)K$0;(UCD M7AJ6B5HY3.L^ _JKNVVUO2-3) 0_.4/TO"/D9[5"OSHMJEA9L?((L)((B]CH MR]B8@ BI7 3'5:F+HDY+[ZQ+*XF([E.J'6,EO6#\],:<'P8MJQM9H?%,H=$% MG3FB(L\ELT&X N^,A"P#IR$Q+]7*%-GN<[3=0Z,]O8Q&A<8*C14:]P>-3K(R MP42"1RP$P2D!KV. Y(*C1GB:A=Q]TK=C:&07G)]>]]"6T%C+5[=2GQ^NW.!# MJ5T=W,WANFTIS\LGT^?>N*7/_W1W>E$MU+8JMBG[W>G8L!>1I50K]Y6C373_ M"2V5M%E;M'(Y@4GOT*\#B:1G'2 =J27H"F!5Y9"$I'XI+S. M-NTAE[T_O)9RQ]T0%:^K,UW!N8)S!^#,%7K3%CUAC2B-CK'@8&V6X!DC1"(* M<^KVD$W?'SC;71]!5G"NX%S!N8)S!^#L;@2L_0"Q8,0=L; M95<:ZW:0S]\?.!M%*CCOZS1@@QKP]C'FHRG;JVYR/#!?FW8D8WN1Y:N2K\RZ M/);3@R52WC2(E8YW5^IYBO/A-S:C9S4 GC 6J$H"_^CGO-75?0;2"Z)8@ M*E.T"(,6?%(,A/88/1@I0'*F"*6,\C*9Q T"C F&(@N<^:]0M?35[>S M(F9%S(J8%3$+8J)Z,Z*= (H>(@B)CJ9-B4*F/&HM?51AA=6R^IBG@YCK,L][ M&T)^H-KS'>'OR=J79X^4/ ZN0EX?N<+VN6SO&3YRE>B3WMZ3 M>^3MZF).(U+9?LC+;>-F8?:X<:/4C-+-<#1)L>D-OJM04J&D/O(I/W(5\OK( M%;;/97O/\)&K1)_T]I[<(^^-^6>Y*E]V4.HO7V&E_[O)51HU83H:X>]W5$&5 M$*B#@]"#A\)U-/)6)_^>1!)TH6^GD8.PR8,128$U1!KOB$ZKC<.;U$H]?N+_ M0]^-Q[W<2_&'F7)V5 *@+Y@Z/8KB6H1?X:W"VXO@35G*E X.9"C#*HR48')4 MD"U-UHK G5^=G[1!8=.^X4W;.JFWNFI'OZ45R[H0 MROQQRCSA0865P3O55:M85K&L8MFQ85G@*C/--%#G$)>,TF"(%9 -4\1IF]GJ M](?JE[TF+#L(F(7]$Q9;6ORM,)FA*XD)SHZ)6H M?N3)8N1!JF0K(W9EQ*Y$6Y5H:R?V3"C-8N"@E0AHSQ0%YY@ S6Q4B,V:YY5S MSTI->#I$6S6?7$&T@NBVQ2-)2RYX@NR#+I$!!@5)%'P,/'MG4M KDR@K6^'9 M@VAU.RMBGBEBJLR(RB%!,%J4+B\*GBF#Z,>9$<8:12LC=D7,BI@5,2MBSNJ^ ME*+!QX2>9\_PD:M$G_3VGMPC+P)W>N\\_ M]L:A/QQ/1^D]7O$O_6'XYYLF8>1_4RJ51M.T++[+-48@+K6PWWQ_XV+L#3[, M*I'$I>3\FZ]4'U'VU-)W7H#4?MNG61&7'_9C%X) ^>4?%F)P!+R=Y$-NY#FFDSEJ3JUFR5I!%57;:?U@) @(D6$LC& MP6-^_;I[!)#(BZ3()/.*LFZ1S,01$>[^^!D>,(0=C@ E8I'_(['BA\W_2S"D MUSS6LQM]DB4 A6]^^;]!&!AAF@1Z;,$_3@ Z-S#M5 >5FH2>X7+;8;O!,F-L M6CV4+_PX2?ZL>#WC(*=7/+\=$;>F$NSK[$9!_7- O6F$H>F9D>Y&8$PZ;N#K M$4L=W;,#D XK9=Q=Z=;Z)%/TN:!^<_K^)$5I%>J/@O_O@_HHL&*/69;NA6ZH M.XYOZ\SU8CU.H]0+7!Y9IKDKJ#=,!?5KH7ZL?9MPX$PV+=NBJ0GT.8LGEP#JSH@#D=. "O M8#PG)F!LXIC;0-8/:2H6LH?8K[ B7T$)%G&69PR'=-[\PA->L?RB6[:%BQ=0 M>-96O(=AW1KBL'4/#%N;*P)>GL5^&FFS"L95P4U:T@((EAK3KEC>TI)H+ >6 MHLU)O,: 5U9/T&:X9%E1-\1COX\OQC#[E%<5?(,8RNJ:-_7XA+WO/[@V85?X M3[)W$@<2XL5.Q'3;,PS=B3F8^ : ?Y($J14YB9T:*V?./T;B?B_0Q+PL8)8) M2) T9>HOA%8@6!5G-7_/Q<]'%=R@7D/QPN*.FA=G?RW*/9(L#88)I8X,_@?,-9V5!;;+ XVT:GR-M?,:OUGU M7E9&N+O%(B=J'^4[=9TD=$T?O'?/!#_>1E\EL'0KC=V >T$4)\8V:HXWR'>O M,K]TC'%>@+@+CCD7'+0=:=_4.,[CAFUS/0P1JFS/UJ,H86!06*D3,)>']DJW M9LX3#,"%NN=C5U0C,'7F@WGL.IZ;!J'M\-3>N^FO!;O]0;\5L !S]<>P8L& MN#^?]D.6Q:-3;!O,BL/-LGE&:-M@:F.3!P=X/\*=L;&M>RGW;)^91AQOQ1QX M5TZG63.%::%$O(/G9: 4P?CFM97!(O@9($EW-9:G+-L6H^TG%W7+>#>"*\"Q,PNR06K18RWI%;#LZJ, M05O!PN+'508FXR4^"QVQ I4%6)M@9(H 5M3"U[RNR8P3> S&5]>A^%:[GG", M?0DE0\[>%"9:L&E6P)]HV6)\@0N: R&S&/Z" MWQJX T<:T:/@C65=@ZE4PR+0"ZFW2X*F(#P07Y#(X 3^OO;AN #XI8A]X*7T MS!B(&:&%RNJR@)?=HI.:H=V=C+6/XGG]E[S_4KYJA\IQ* \ ROPFSMN$_Y60 M/<8FZ?]Y-F.77"]* %EYW]E?%X _YS=ZDE6<%/T;&'<[+=XF63W+V>T;_+9' MQ7E+FDP,J>OB G]*T>C>03?JO$C>1N4-3A+N?]/O,+AY[OJ=>9703G3K#N;V M,OQFA@NFE"A0ZLN4>NX;_"Z*G/YCTN^_('84>RE8"A-YP_)K=EN_/?O+ EMV M/$=+M8[A=L)7.ZV+6K?2#YCLP2J\'O@)HC/T]RN,?PRRCIAS86*G59^[G)8U M=L__S@&#W)*$"$UP8 M4F'R[36JN(H#ZL4BF)E-83U(P13\LFQ$7'BDU;QI9T(HY MOQ2:MZAY/E#7"\H5/N57I,YFO&I85J#NIG#KC&'Y9)NS"E0:QC]^E<^K4??! MK&1@A'1FIS]/.;[ZL=!^8U4\P;47&>UW/W\A.P76J "ZQ5P8%V BI2D%I.L: MR8>ID::W520C$GD:]AV,$R;8X.-T5E:-=C'C:(EDP#2OLC$?C^A+_.HUD/P* M2'V=-9,N2X.T!,\*HWV@AXF7X$IX25J54^W;!&TKX($6B%,!!S?5K0;^/$:S M#,/13<,-7,_27>T5ON3/?PHLRWCK6:YVWH^>/C3?OA:\M/H$<-A"6P\7GO"Y MRH"$P$VA':X^:B1M]3SOTDQB2OB Q7>+N2\_%)=]?DW=#9!R5=JFJX;>?RQ$ M 7ZM_M6BT+)I+8B$?-_6PE1&D?U'>0LZJ/K_T;+$+9OB*LIZ]2L-EP([6&#\ M"9-XTP@$OR!;T&WTI MA2FFV86KO)G"7Y!ZXN/O*LBW@0F2]KI#(5;K&V+BA\M:_PH:2G^P6:S/!,K0. W9YNQ]C/#60> _#F=K]*6 MZC*L<;#Y)+;=Y;U)BB[XK!$A]T6H)<4&_ 7^*Z'-V5=^E2'#+<+,F1"*IKSD MI!#O!)?^&4O2>O9:2.C0 [SF'9(NR/GBV[5KN"J*YCP*([D6[ :NL.6)=Z:/J>GIAQ MX,9I M1:09\?":(2J=[S.JZR&2[EY_2;T#G=B6HQ@?ZN;+&Y_2H5:QPC; BE M-"OK3%A8G0P/-:W4G80N[D]HX_MC_"F,>ZQ#Z+V @9(< 2^"18RNID:V&VFS M>&$Q1F@L7_,\QY\$'0_1S%@. 5!1MC5 @K ;'X0T:*V X3E4MN*UM_156>#C MYM\A^N":Y5Q:.Z5X;D-I8C(_>O-^.?.QTVHY'.Q(1!S11&!("QFV$Z4AEV69 M"*=%VFE$V\[Z/66GY7>PY$@/P95=L)/%%#H506&A*S,T_(JZS1OA-Y+*+-NF MSA*^Z&B21QUQ,"2O^%RZ*CZ5OF57*48!9F$=XP4;M"S1#)/Q%085GPLI;=N/ MN<=B/4H]ICN@PG3F&8'.>1A'S$D";L;;14HYW;T%S/U'Q#78-@?$);^A+T4' M:LC8NPCD@V<4E<"GRQ[SD",7,178>Y*!C]]G#GJU$MTB\^X=0(ZUW\J*PR2! MJLO3!#2:;)*\]7(L@!1D%OSB6B !%Z@ZXQ5HD[@_3!7)B1Q%/%,W%8!N6Z&3 M*1[4P/"IT(:\Y'DP2OC/F -:\TS!E\(=G\>SNI*FNN>)NHW^*:L%9 7D,,)V='71NN":B'N8AF*9Z99CL07ECBM9H,Q MSTX$ESWZ-<[\RN&9E%,F()HUFH"#&0V<:%D3.(=^'S$JJA5,SG" M01TU"B=F*?NX=1GE,O5*#ZA;F#NP_11C(@D'^E#<4%:V "LT_*%3']$D6BF9 M\#@4S;'V=_!F"30B'K.VQJDW\&B9'L6(-D.!)ID;R%M68,0;WM06,HHFX9I( MD;*KLJ+YR'@U:I($@Y;E3*(.*/N\)8V1MN(% VL WHVY'%P&6'PISTB"3CU= M"XNBPSC,#1-&U)-L)A]1K2BCTDVM_.GO2NG@ RW ME,I'7@+KK(L;4#P>:SRK2SX(71+']1&T^6ZK>GA$\%B[H)I/? 68>%0B('3[ M@ M@8/BP"+&?)UF,,R#UTH]3@+5,%]1U&6>LOPB^F9*^\^XH/9-G_P).SYI;5;KU$J5; M?N"8AL],/8Y"$^QBA^NAYQLZ+&!H!I[A.N&3;.FN=&M>G_4Y14'@14V,\%4 M.8:0Z@O@?TZ*X0N[)5'=QUHNKSL<9O^JN=SQOUTTL%JZB-O'@W7>HRJOAJ>F+/'O N?VVRE7 M-JLQV@J0EKB]J'ZSB)*BN1#9+ETOT<$)3ZQMRJ[K*WH$9A M6#<\>2N&:!K&V/BINP$SG6Q6\S],] M8T,_4?%:UQY[OOD3UL=LOL@PGCHM]*Y##W=._IPZANZXH:,[26#H00@W&D["_8!Y0>2NG/(IL_<\69_G,@]_^[.O=]4!A@.H-_#]:RS2UNQ'80^]S: MJ<((;:4M#I_7%:*= I6W?_*:8T3,8I;N&JX%Z&2F>F R//G59W%B.> 6)RL' MI9BN'<>!I]O,0!/83_0@!%ASH]C")(SE>ROGQ+RL"6QN/N%2,?O!,+N"M%.@ M\M8AS;=2+\04<9!:>+HZ6&H!MP,]L=TX->!#*UWQZEW72D/+3G2/VP!IGN?K MD96$>L@#@$2?QX'A[!;2_,W-816S*R=S3Z:L\.OI^&6;41A8CJ];//5UQPE3 M/71]6P<< F\KSO.M4"6_]SK&WFM(5)R,^2EXF*G=Q[J M@>.'NA&;H<,2ESOQ2O.OA-FAP8Q4CT&5Z$YJN'H8Q9%NLM0'G1':@>'OV'U7 MNN((F%U!VBE0>?N5D\SE:>BZNIW86!4.EF^8>."*.Y')>!3'CF^O0)KAQWX2 M8#]Q%T^[YEP/XQAK*"TO-D(CLKV5%G O6Q7N;SX(0S'[P3"[@K13H/+V/7HK MM5,+4\!T,(QOVF"E!9[NIEYH\20R4L96NEJ&89Q:IJ'[<6#I3F(E>FA8MIY: M86#[B>-SP]BME>8&"M*4EZE(>OSXY7#;\UPKU'T/0,RQ4T,/_(3KW/8M[H&Y M%@0K&17.8S,Q6:1')MX3>*8>,@OL,LX,TS0LL,^BG>*7YZHD\5,BDJI*4B[N MWWC!*R9/ TVF> 16@SWRK]06[R?+T&,;K>VAE#V2Z#_4E^.8E(X5,M\,8D/G M)D<#F#,]\))09X&=),QD(6,K.RC!VX]-*["Q,BD"I0.7!V'HZEZ9_1 (!9V[YH/3A.'B:-K-BWPET/PQ, ,(TU$/+Y#IC;NAS)TYBTUP&SR"(31=NT^T( M =>/N!Y8CJ&[2<#]U+#\Q-AML,,:F?8S[V]7X*D\=(64IX245F!9;I"F>IPF MX&U;GJL'AF/J,588I;'C-R/#!0T\CG;EVHIN6'5IAXL:A MM]M">W?D&\^N!A^05WX3>;,YVE'H]X%.,&V&7=9IM18KJ.H]NIB1O/0!\R)S+TQ/&2).11 M&J8[+JP=6<$S)SWO9)G#TVXJB**P5&'I4R,J4> 8V"70]ARF.RPP]2!U(CVV MF14X862;X4J_0!8%9L1M#OQ$1MN$IBAO9+:B[S4#WKD14D2F8&7>BO!:NXG28#-76W+ ",T],&A9UZJ&VD2)ZX1N*ZU MV]9]_BAPE1'ZV' U_,Y@&G_M%O!3.^55%L/?27:UX5.X=3[38?C8&;NV_=-S MQ)#_V=9-EMX^"%B77G_G&Q^Z?CAEF/H&\M[UBEX6Y1IV#9J,R&..8^@\-<"& MP2,N CMQ==M-'#>)K22V5RH['V/#?.4Y"N(75C6WWRH&$DCR4;_/ZC@OZ[;B MW^ %/X.\?C_3. C@#&E:M7S(S4,:Z\[8=\*?WLY8DF3%I<@CW$MXT[J/$@NT M][J\Q),R"/2^X2EX6^ ,TQO_FUQ3;8:+JC6#51U*W .PX =7Y2$2L:-E&;"6 M=ITU$^W\MF#C\X_:K[^^6[LH/P0;.URGIRW+QT+K9O_R+_^%1U7+JEO-,BQK MI%USC1>7[!(8=T <[16KM;J-8U[79:5E8"J@O%==\HGV0-WZ> M\8HU:Z_^_*? LHRW^%CZU7S[&N^NV]FLK!JMK05/9--955YQ M[)Y=X_=E6VGP";X:)H1;1^#QI.N+F.-0KEB5E7 W&!$PRJR(\Q8Q!ZR#&D@[ MTFIX0@P?C+2\O,R SG$]@B=FXK.Z3)MKN)6>7#?P+ZOP,- BS2[;BBR1L?9M MPM&\X)@8>=_97Q?T M7LYO]"2K.,W]#8R[G19ODZR>Y>SV#7[;ZX5Y9C\30^J2X?"GE,GN'72CSHL$ M#*T;G"3<_Z:WN6Z>V[#Z@3-#G\.TV,'<7H;?+&/! !7V9&]5]MPW^%W8I/\Q MZ0LHB!U%501+82)O6'[-;NNW9W]98,N.YVBIUC'<3OCJP9& 9^&J-2N]WQ;) M$S5MG25E5>Y0W?YWFU7E)0/56#5__I-EVV]!&3%MRJ<1K_#,6U1W48DZ"/X0 M(%I6> WNF=0F8(F)ZZ:@CK1FPM;;#C\PTJW'#Q(;_%PSB77']\!I<0*FARQ( M=(NYIAT$29 Z[DI762_@J98%NS8OHXEQ'KD)*[#K=@-_#Z)E39Q]N9S MVY"R!F%]QV99P_(+K/7Y.\^3A8C!#'R7/F2@6\.8@75??=O&<,'+L\U/'6N4 M\WEKL9BXJ'(::1E:1V#_7(%9)HPTLN T,"\1^7 &(PT]N@I>6I!9M_X6P6R= MK*SA6+IOT6!!5FRD,3.^]]Z\!KNN@'OX&E['/\3(/Q?:!9\U(!N[6WF0-M,> MH75L"^OXAL?2W -5 W>)LC(8,\YFRFKX5*MY=97%:*Y>5EQ8BM*\;,1?;&IIYZCFO8KFL'3K2,^:9K^Y'- M#-UC)A9%VP;X\" M "-QCU2 !E?G,(0=C@ %1#']O%K'#SS/=@(]3.-4=]P [!5L]A+9H0&FC^. MV;,:G0U2-TU' -.'W- C$!>."1??7VE6]:),;XXWYY=/D>E'6L7K MV5Q%@U:]W-C&I*LN'PW"4/(C$1S"#S#FA18;T+SFR6)U.KL&:TA:^U.6<+#Q MZ@DH]EL1#H.7*_F;.QJ1P4,+5(UK1-B>-S!UYO%8]\TT2IF;FDZTTFSI1Y0. M.1KO@ !?Y/IO3:]L;FUQBB*F],HB7_/8MXS0\_0@32W0*SY6=$:ASOPXPLVS M#D]66E7_B%YY+KXVQ[[BZSM4!ZOK,AZXS.C/#W()G=O[O.G!I:3I?B4(%W.F M%8]Y=H6%!S+OPV[ICQ-V6/_@VH1=\:5,T\)"-0LNJT,K]QXNH "C;7:.;(,; MY- <4< [!U[N\)0;KAXS!EZL:^+)6& K^"%CKF5XGNFL&/2A&3(>AJ'NV[$+ M1D@8Z(&/'6L=EH8\-6T>APO ^Q7@D@MB_5*5TT'I1<:WA<36>',+@U-$8F5A M+(5KN&-$8#KKS'9\W3'22 \MQO0T\#W'LZS4BE8ZQQLA@&IJFGKHX#X3CR?8 M8,[7#3##6\RL!MCWVKE-:@5<%';6HMNM?-\-F':1<-YCMD!N+3@@_H=C)VB?QNC M+B(M-",[!H;8IOC("C4,^,*8&+A"[73%LAQ9 E\Q?'A;8%X+G_>Q2'/A#'_E M22M>=AXW6$(A1H[%>,=FF,\-196\43A@XWN^XG74N/NAL6OK_Z5PL_VDA: M%R6\G"I-\*6UR&=< SVUB,-BB$5)VSS%C_IW4)JXIJAP7;?+LSKET#I8*I3F M66.NY!F+LCQ#&%AF V6]/![4 9>CU&"X!QM\1R<,;3U(F*^S-+8=PW=CTU@) MASS">IE7BI['<06@L3TL5^ZC,EHV\[<1)''DIIYNIC$8(%%D FMS4X_-Q//" M*')#R]^"T?)L_&VJ=-*]M@H: R7G0+C-1D3%;_B18M*)"XO"WAE@K4#,:\: MEA5=740,NJZ<"@7^3XX*?#G:@H_N'KFHY=&@B#AJDX&!D-!X5JR@4U;I[X4Y M]P,)9&>1(!.#O,!IVS/U5/'@_] M@QOVRDFV-O?@?Q'333],=2=QF4L#<&JQM M;@)VBK"FU/8B:\=&/@[\,Q4]XS(-JS0"[UHA;6=)'!,S[5U MTTR9[AB!K8>&Z^BVX24&\P+;3J(78&U+6:1W:NQEYZV008 K4 -9<552"5Q: ME=,E'UWY;BM-M-P$Y"2*=2MT4SR,T=6C(.%Z$(+0)&'(;7,E(/))]*$5$IFBW)CJV2W$HMW%4\%? D23!#C7W@' >9W3!< M<.ZBT/0]RPS3E2KQ'_'F7I[C7>7?W:$MQMIGW-G $ [&DO)Z4UUC)KGTJ&Z[Y(^WL2\5G+$N&P5U);W0-.58]L*B\XOB>LW^L M&\Q"U/)LK)WCYJ)Y,1:5?\UF>1;W)>#+O!3C.22U3"_Q48]& 0>6D0 MLPC\'1O+AV// 81'L2)&27QBHVX/?6W-4=H\Z$;IRC_2^8A\/TDBR5TP XG\VK?9,8US-2QG5B/?0-\),[QZ!K+T=/( M3*S0#DR6K)3<;T^!/E!FO 69T6L>H]Q@[^J:%V=_+>F/8(J+>,*3 M-N>?TV7V^)G560SNU/LLQVV1WU!';&29KIT4=9/JVU,-CAI@;5-VC;206K@7 M'\0:+]=S=ENV#:SW#4_>BK4W#6-L_-3=@'LIV:SF;VJP_"L JHYKJ&^:>/;9 MNA,8KK(ZHXJ$VS?=,]YN.)>77NL$X]#["?L+;+[&')O!?9?<\WTX=I_Z"#6* MW8[BGC,_@ME=YT6OPZP?.0?DWB[!'6ZNJ3(/7KYMRM-;7?Y(*\]M3? E.GD" M7^"W9%S?.=4?.F!I9]1_C&K>V%*,$M%K$]"/YYB''#NT#PNIQ$B)T7;$Z&)3 M%8<2HNV=\+4+;?_R4KM-MM047!74J$C!U5+3N'DL6"'35M3[,4Y82=!=$F0K M"5(2I"1(Z2 E04J"E XZ (9ZL1.D]_N@I">44O2IN5<9MA\MVYH52?U:'1ZE M#H]2AT?]F"BM+8C:>I63[\0\L RN^Z8;Z$YB,SUPG5 /#1;;CFWY+K.V<;HT M ,/'(BZG_%= AX>?.84G3,!O]U4&6B/+V;Q+ZKA/GWJ8"&X;@O=#O!0J*U0^ M1E2.C-AS@I0!KF*?_\0 A$U"3W>M@''NN+'MK]2>/N:WQ5\J7@\=HG$E<+3M& V[)*+[3+UPC%GV(<+IAFW M\OR,"'>-U'42P\?W;"/FW@G_N9#]3RWN?OV:#3 MS9'EKVO!*!'7#'5NV;$+ M8.O'WDI'L\>D"/9!B82N';D&-T!7>O /<_&L)A[J5IQXH1URQW=6MN9O<:[/ MHT1,:^1YX<@*USF'2HD\-W0HMT-IC-/2&+[)HQA$6[=<;&CD,4!$ABC*?(NG M=LCB8,7M>$Q&8Q\TAFF8H>%YMFY;X#@X*:A(Y@:>G@1.$@<:Y/I/; MX8X"TQL9P;H^:$IC*(VA-(;2&-L]==X+4\NV] 0D'#2&$^F!Z:/Q;86.9=BN M[ZX:(PH2FS#24 =&I[N!!SFRF'P5LHC)W:2U Q6?(PMSO5Y-(81 MCCS;&MFV\C&>!!UJ8\A3 >9GE50Z35VMJC .O K#-%//C6-33SQTI2P,I#'' M!",@HF M-]!I)0]Y(0E(MMIG@H>J1' M9L#2)/8#R]I*MNW%G:9UQU,JA:04DE)(2B$=ED)*?8<90>CJMNWC*<$,? ;# M1._!B:/8M3PK=K:1WMH/A11ZMA%Y":A?A\%L;8?KD9_&Z/R$J>\[7NIXSS'; MYU9(EHKB/>_.LA=K'PX+LF)R-64%VZ=" MWA.X\4J(3KAOT\UA=G?% M2&,U/+R\+K2(Y^7U\%CK(SFXU@O'@7/O,:F&]=235JVQ<>_YN/LXC'TZP&US M!.:0#C%[A-US2--31TK>"?C-A,/_\816K*ROU2&31W;(I,*H YB>.H%(G>&E MSO!2$J3.\-H'AGI:S]#CR/(^H7KD?.BQ#WUZ+F,R6EJ5TX5^H?W5BP&&-RI> MJ^*U:LK'/&7%Y"N!P3W=LJW4Q?V1OK52_6LXL1L[EJ7[*8]UA^/NE22- M]#@P[3 V>)2X*]6_3TQ>GD\!*)M[6OQ\_/3+?0=,C.S &UFA_;R5P$H6#DQ? M*RKO+96W?Z* Q0W'- V=F8:K.V9J GHE@'U.S)W8-\S07>W18KM.Z,9,MYT@ M <3S(IT%+-"YFR1FP!A/ F<_$<\;N88[\NQUW?=/419>[)@<99D_P#*?P6=7 MO*;0&%SU]>+W6EGBV]V'M"[P?S#2NI6]D/>D/HY)MQE1:J<)M7*V4$_%6(^( ME8E&&GFFFR:NL[*5'O0ABX/4T6,PYW4G"@(]-,&:]VP_]+AA^X%O[Z=N,\V1 M:YDCSW=?$' C"3V5P[8C.W(=SPWAHM\C+#XJ1X$MJ.[H>6'S'$L>!?WIJ4_U+>@AA^93[UU!?\&;I9S[/"]?%LKI.-)> M+.KT@Y?1CI$)"I!S4V>6%^F.Y1MZ8#A,#WA@VTYJ.HZ_E:Y6^Z$=37L4&OXH M])XYJK:W'464ZZ$ 5@'L2P)L;%LQ,P.FVS;X$XX5!'I@6Y;N&9X3.E'D<'\K MQ\OL"<"Z(\\*1X&UKJF@ M@M[(5>^RGW4R06NZPXI]^NLV:B_1]6 M%-K/%2N21H-K(PZ./]?*MM*^@(;)$KJE2+1WDXRGVH<;4%]4:_\Y3;,8W'[\ MCFE3CJ>(8;H1[_RY9%6"?[S/*AXW956/-);G&D]3^!/O9I3 /&\O@6::&8J1 MC[7?JK$<"]QPR37'A-G M>+EH"0!*F*,3G1OAX?\DO.;O_%"^U)>PP<7MW7# MI[7VL8C'VJLS^>79:Q&X^%1>B8'"ZRP:^OSIOV0%*S8]G.[^A4=5RZI;O-L$ M;=QD^>(3Q]K?N0:$O=+;8.@776$^(6L$>PUT$[+=XF63W+V>T;_+:'VGE<,Q-#ZD*!\*>$ M@.X==*/.BP1LDAN<)#9MZ,V3F^>V07Y@J]%SZ.8=S.UE^,TR%VPU87KU!EC/ M?8/?A?GV'Y,^?$SL*&+"+(6)O&'Y-;NML57$D"T[GJ.E6L=P.^&KG5I\ZU;Z M 9,]8-7^KBQX=7D[VJ&"9^ _71=U PP[Q5P.JZB]#BMNM>L)*'IMP@?*9JZX M0;U@AX9SLK!930UPKCEH8OCYM[R,0-G]G3-2U;^QZCNGFB'4,5_ 6P.;_"L7 MH?R:-%M6@Q:OP9[0P(6M\/D1*?JY\L>77=#P/M":@1I.@'05[M\[K^L2U"L^ M;KPGNNI^?^V'S-='"_0&]GYQ+T[I:J6KMZVKK0VZ^O][J#Y>"C$HE;Q!)6_$ M+=TTQY[A+P4K3&/L;-$77[,:%-&!)9C^7^O_3A.VW_7UQ\_/Q).__T'OY__NO_N?AX MH7W^1?OEXZ?S3^\^GO^JO?O\Z?W';]TU7S]<_/[K-[KD\Y+P/<-H!][US[8007Z*;^!# M\5&\J#EN&"ZH%(9A^<+\774#'V!,I)8OR^F"HFQ@SK+I(#W^(URFF<+4@4'_ M4E;PIZ'_MYA+7L($Z:U9(4+QE&L8W(^CP8X:VGE1M/#BKWQ65LT8["0-A9.N M!\\>GMV4:++E@T$.GCDB2VOMHN*ZLPS6!BZ^!NM,S\OR.UXSF".U1\R*JS*_ M@I7+ZN]BVK!NO,*;,3LQUC[#6%G@Z& V40]&"EJ4;?Q MY(ZWCK5?&,6"Q.O%HV+6UEPKB41@)D9MPT5DHX2/Q7LXC*HGPDB#2ZBS([:# MS+-IAG1JRI&\A+,UX(EH\TKRZI]$:"3I\856C?1Q)>IZ/M;.OL S=",\> M1+-S23!<@1%=-2!;MV+=4 L.LZA9!:($STS@&HH#29NYNYI69LIND:/YS0PL M+#$$-/33MFGA8<#\69F,%<@L@PR(XU:Q10H2T0?&7L-[A#QCX#+!Z0-M/OS\ M\=O[\]'\@T^\T7[%DBA\\/RR+Q0C)7WC&$P5&!P7\/'[^&*L M_>W\_,OX,:^B=T0?RD*G:^91^-_DU6=+S7KW 6VT3?"[EUB[Y>3? MYRM>767\^C14T,;NI]_>B5#72.::D/?1E[",MQ)2Z2_S[:C[^)HO?P* UW\$ MF"0_;6OYX6M*[J18V2SDQ#),GX0O(XNHK, 285*'X/O)VJ+$&Z JV&&<+,OS M&9@=E+2BW"#*9LZI[S8:IQF5^\Y$P*]$BPL5QZNSCU\^G[T>T=LD+L\W&\KX M'V!84P%" J:(]W]B=<+^I;UC,Q0@&5.4O4)H?+=3X,)NGK"$'^5,3\2>V<1, MH.>H6[EV*8*R$ALIIBK"O;#.\7>LLA;YS1'HLQF:H:C929\#C7F#R/![QB5 M.:6M#%R*QC^\BNP/H"_H8EFS M=A%1B.:,/"5>YOUXZBLPO1/H,7H X3#7#.X+3)TO#>Y,?GCVFDPG"M9/ M&*;;-5I;HGR)=6C"S90\1,\;+JGP!FM"$E3?.O!NFZ(OB#4%8 D5>IKE4SG3 M6G+@/\%=T]R#0C5&M$Z&KU@GL^ M0@ Y4S+"D+] S(;+B#-":TZR$G'Y@&N$KXR$@1=]!B,&+LIU> P?6OHP.R F ME43,8 '0_NL)>LTC/:('GW_[]?Q"P_4"OSLKAW=U$USPXPEKY>HWF+>!Q01> MX]=D%1,,/V,CK)HH&.K7!/^Z@ E.M/,4'6QZUL4, MD$=I#H'U&K B#O%2NZS*:U@HF2"DG%_"P3&8FPG_U4YG(.T@^2BF/[< P<"$ MV@5^U,YJ[=5_??[YXK5V'C=C[?<>(E$ ME]4RI#._A,UF.2DDP)PKM('$[#&.=5"F^M.8X3^BZB]_?8J?M&5/X7_SVS[H M=RYJOX"PR'-?YA&"0Y??1Z[9PYW-OX$M5A4$Q%_Y9=MEY/>(SCNLC'@W8<6E M4!R(0:0IR2XR/H\Z\E$:"""3#&W[Y]M9(BV$UA 50X%L8VD=BG&C) MB/8L4L_R7O/60J_2>V1H4B W0F5%]A9:/,+VDH-'\T@$T] Q)X/LW<]?Z$$5 M7[1SYT'^VV[1A'4)>@0=38#@20:/0<.JS7/A+6:#T&0W?TY61)#J0BK"-:_($L,B5*2U4N6IXA>TG@:]AW&W46_Q#(*DYLV MVPHNG&:"UR2+"I:BP.-P\()YF?A&,BI^(;BE%,F*J%/HP 9@B;4QL5I+Q!*4 MA MIP>A>7DPPY":O(7M?6+SH'L#"QQ.&1MQ0A,@5I,N%E! XH>V6SR8,R,)Y M+NV..JZR"'-M;45DAXL^E:"?P:\Y^_"O%OEC"IQ4)H,GG:UF:%8CL&/MO":S MYX9A.&-N;=.,>;(R89I-AI*2=;-'_N?5E$*B4RZJG_"VX<3A&3#,2F;.*-$5 M&C_)8$R(W)%S,J 9?O*3K&P6+G+#^W'_M["+X:E]^H@N[$[(F9=NTR3 C,Z% M&S@?-G961=,?[A+#1X[K6%.F."A*DXB&Z>0P<,IC9$5+C S^PW?RK)CHK5X6 MB5[#?3%NW)YU DOA<1!]? NO^:+W-^#XSD43*R[8%FT_*B07 +FRFOCL.8OM M1QV8*G]2Y4_/5?YDJ_*G'90_[:6C\+1I=]8A6G-U&U&,!E.J-YD(["R8"93Q M[*R7?^$&DQQ][J1"5=4?GMF5%%3"JR@KD02^[/T-C$278 <1>*.9/;=I%C88 MH9V&8;])-I/FS4!E@.82YD2VQG8;:7_'FIG_#?^LC?.,1)!GI'UKP4:]A9\3 M#)%1>2$V?M*3=49%:CCQN;S2L/2JEH86X!\.N92!0 M&,4LAE%@Y%/Z2DDY12\G'@1,J;5DSM&V$D'*AL>3 IC\DLJ"_EY>@\M2C="F M>L]CN?M);.$"J^Z\O8%!#C-C9)Z7,)Q9H[VCYWZ0!?7T=9KE9.9DS8(3]P[H M2%;NQX5HX34[Y#&$MY_P2O@,VR\3"B#QTA3R=M2*8FZ&5B$R-]U0# M/UK[F,K41-90XH6C@,58K@,.T&B!C@-W2]0OP5K PYJJ9,+_D\2!I;DLL<*! M"GJ$"YAC<<4MK2S94137?IH;OUT3Z. B+T^;_K>N5J$HQ:&_O<0@%UQ6('S" MU1IZ1G/?"@/9\WHO\D^E<_KQVSMBPN4L%L%W7P:$* +\P6YFK ..$O";4S8F MDV]+.2 .%:70KDRX6@.'1IKIX-VQ'A5FO,+1XZ9)X7YD%6&=% I,$PR'T^7Y MP&:-!33+C*!P*N8;+=M:QOD_%JE,#GWE'5"<"S]4(.B,47$=C&H@P\4EJ1QQ M..AET2F,'!QIN' 9=/&12J]J'EB5@-\/#!VZD':0W\-()9 MIO3Q,*&REAZ]6[VX/ /],4:"UD*(B<;]((C(&)7N']9YQB#T(.8P#\NP:9_I M"%4$%V=9RQ!07L9]/1D;A#KZ# RA%HY0TANG '?4H.,ZJL/<2K$%M\=QR> + M;NNHY\L!FV!PJD*MWD=6;'1?X5FN\=-8$'!1C6-F=L9C\$OCP28DZ0R*NK9K M#3SNRZR+F^0LFPXURP+)R'UGN43W>8X8Q@EKO@&N);P#2R,/4=$1EE')]8C! MT,#<>).!^RHJX+ B*@>@2-8$4."OFB\\?>@L8PTFYL^93++WD3I:"8S&+63, M!"NMKMC20HG4Z&+81$:2IEDCH@Q3"H.5PW *J'; M_B?CAGWT 0>[E@P=U)%A%P'M.-*A6UYZ9U3F@!750/XZNS'A4_QP.?"UP="; M"+M!9&_X1GV\0F J_^MJ5K#6N"/H2%R&03Z, @X#FR 6LDY!!B0PS(LCZX.P M..!AY>,*!&1BY]KMP><7GST_\3ZKJW8FB >D_X99/[22YJ4$%P).WTV&^=H= M&#R?6Z$4!5HQ"K'.59;X!HW?#DT&Z$:B+2._(X'ZP,BUB'1.2TIQT4597)5Z MC)[0PF[+9G%5I!OR3NZCE!'XOBQ9/&LQ3PY?ID"&IJ^?QWQ\5Z L%=9"J)W4 M@J"-V"Z V+%P!?D5BV^Y OG&N<3SE$6W-EV,L9=STNJRD&C1 [E"JR77*A), ME+W>>)#CE75.&($LI[>=4337L1/@64H[PS"0!=Y]_L?']YH9:F0,P"(OU-KC M:P#!)ECH,"<>4I.>"+8[%V5RHBQ5>$+XV/YIE<"H7HNF+<+ DG;*LH5BSYC6C0 M)34D>7GWEW!'ND=CL;O :%GF I01"(/9CCD+*.]CAW4;@]P0X,BL%N&<615.)39=M,J&\*OS.?JEKJFKCC3'NKN7;;5! M020NTKK83)^FR60T;HA.T[+ C1/2O5BBB<@'9932G=_26;CT0EGR=P5$!T)L M9*'K"X6VJEGXZ%C[G@LZ;OIF/3DK9@R@OKO4LU MZ\C\MZ3_8-F$B5]-A^6,+=%^RJ@Z$/@;8SH] TD-AN$=":+#W2IP7S=[AJ08 MICV[>CI*F&48L.S7>$2Z@CY;*+\E*F:UW-F6:)=H7(IEZ0()8TQI#M*C\WV# M8!2S2B9+ M47>^W)TTFQ>IRMT]"P7%U%!Z!NY W-:=LA0D .37J;!95J]WSN.0KR79.ZVW MD I?Q-*A:3>W 1NJI[=!?@-B'[-&EBZ5V>__7'V6OO2%VW#ZO[VAW8! M\#R3?YZC=7C)0=KS' GP!,H]JG@%/E)6OHA( 6=8Z U^SE66M&*K0Q_M&C:01[^,TD8R7-9OAP7/ M?M;*T 9KYH7G KZIB%T.$.N7;H<;$^> (]5*OZ*#,B:R^F5(1C@](I0/.$FZ M0D-&7ZXHFZ\8H&#&_"$ M$](WO2Y=!>JY52/]>#%'$!X9)1UKHI]G[Z+3%E?T'O6!]SCJ3-FYHU;UI62; MW&ZR[KH-P1C<%::S7&G35P(0H@$ T$)<=[@(FI? ()1L4R6%2/"W+M4JHI)?P,1J1]/F3G>52\]]X& MSUZ),XN(](Q1N6BOS!@%?.?[=##IW: &;&2)K @/==N*N@R3@/&!=R4P,P;U ML:PG1X.R2=+$%6DGW/86\Q77-^N36KU3 ZO1H:38ES3:GSB,*H13A7#/40CG MJ$(X50BWC6DS@*>R340!\:C;3:NSRZ*D8)G(XF$Q0M,%Q!;VO?;U6^(2L6&U MR]WBIMXELW0RV"NZ$B_J:RV&=6"RW=%BQ O4P&_L=E[FS8JBQ)2E4#PY@]\G MG:(Y;V')R1[_.\MR[:(IK[&BJA7;2ADL%.V&AA7"J)N<7;=56TO85.3W6UF/ M@75EN'&_FI)9F=7SQ4"]?"E-W^2*B?',5:ZHY>,-+RNJ_\)L2\(:1DI5#%)6 MOXC8L[ ,Y-X:N<%EN(M\- _"4'0(>RYAY!D&J'/G_8>X MW&L4DZ4F-C&+/ D&.:BL2=3==%D )F+;"W-/.(:PQ2$M=_;IHT,(6O &R+78\&11/20U)YU<, M,D0D'H,,X8@NECFZ10_[G/K'D5H5>9=?9.&H;,/]=5[ACX=H9-1QXG_5\R[= M:<6ZSA%<^WU&6]?P;7/$$H/$*<$HAIX(M0GCA[3 NVPRH(V:0H]+S(<_?NP26%$"7H1M)+U%M(>QKH MK-[-!YLSX2*Y#;*/RU<5> M97P=7EFQIJ^1JJ>8]J@6!Y0R[/I'+<'P"=(>7R+*-1$;EA/65Y95U#$EP*7: M'NRC[XN71&4KC6L_IH!&1-,/ZKR!7SU!>?:6;\HPJ.2/2&_ M!8>MFJ7<6MFEH&_HGWOT M:_)P,5UI>]Q7S!:\ 9-.[E3K/^7R(%Y*9].1N]JKLP]?+LY>'SHB/EDI=P4T M]W>2'JWI3UX+0Y5+H[)OC=.IZGF$7?0 I_9UR^_"Q_1TF^5@L;[*7HO6J80C M""ROY+8HL@A>#_91HH)^E66O1?".?-B;&=9$CO"9]!U\F7!8-GEHU?R"5]G5 M:_0RJB;[GWX+'Y8M%K3S#9\,%U"G7&F 4E/SHI9G-^!ZO+J"QQ<@M:!I&YR< MV,*<8'AU5674: ILI"7:KB7[O/WX.L(O$R3A42.V\0]JA1:IA"3> M3";! EN@D:0XA "&Y?3-+T=<^(%IOHFY'PO$B M(&3S%I5 VU6"8S1L ,)B3W/;%\H+Q8$WR])2.FR==@4P@I6VH5:1 M=_!&=_3%]7"+*[_M.NP*MNXV\(E#0T0!DM@NUG'90F&MR#B)_5D45)!'6I2B M%79Q6>*G@E'!X11'95*H0SB7,BTA3[?HAB56>G@ZC*BH6]C(M: =EQL./_9 MBN64=Y^Y$%'L=#&J+0,Q=[57/1%Y&L0:Z30B)K.JCQ(TR0T53[&[+FDUHC^K M)T)5 *'% 1IE-6_>,]SG3]T;I*Z#38;=YII^SUDMLUV%0_HI:MEGKJ:>]3B%+BZQS,J=8,P#D&/M%['W130I&*@].GY+ M])%>,OR6UFEAV/L3J5.5=*J2[CDJZ5Q52:L$1#N=R7\A,4C MUX8&=.\V##8?W740GAC*;=D.1U!A/YA2Y*$IX<%7#T!;V26WO,.FZ$*GJV>G MC<16Y]Y1$0>75?(\-=[OG?P#U;WCR5G"":1ACXZ?N!N"WG,UJ M_J;F)"6\X]J*4)Z>?8;OAP'T*@3C:&)7U9ON?GD17)7TH$ROL[QQZ+@_2?6R MY@)S'-SU[5W?.6/'LXWY?W=>K(:P;T/XC[\TU3)K2>LB &"+6/S]DO*-ND3% ME/Y;CXK7P,_"K'DCC!O\8 U77N$Y2H M$H8%.*^S+]8H^.#E+> ?L$R:Y(&3 M?=[)/=@^>^34@!?PF_\\,YVSN^?9VZ2=9S2CYJM9HG7Z=1_(_I@DV.;=X=@5 M5M;0B;!0Y[$R MY??9OEXC358RM MIGN4TU6,K::K[(YC)>M13??9,N// QN=;A=EZWVRS(X]_..YBLX'0VIB!^?1%6!B@=S%IT9B4W]7XFHQ.N%[OX*3H]: MPDX53E^I\M$#)+@29R7.RCHZ"F(K43YFZCY!E*U T5D9TWLP726R2ONJ(HK= MQB;.[SNGCL[P73R44('L4 M$T*I::M(A*'0V@EQL=,727&)T)H)<;'3-TGB;&*1B@+>A^FJV16R:PJ MBMA=).*B*>/O>L1JCIUEIU@405$)!:)'+5LG"Z(C*U!=+P^'U$J0CYFZ2I!/ MAM1*D(^9ND\I51R%WD$WO53!""6U2FJ/G]2J,.(%PA&?RD*'-6RR@FLYOV2Y MEG(8RJNXXDG6U'V_O,VOP]GHSM@+PN%_&]=SOB3>V(>+9F6=8?SC3<5SUF17 M?'-_0J8:&1^WQ)\JN-NVHO/!T%E)\3%35TGQ:=!92?$Q4_)^]=N,QP9']"7_0VZ[%>D1EGFS>*)+\LZT;GF@8&/G;^?D7 MC4UAU1JU361YPA'P":_$4,?NK-'J,L\2;1T9[I0S^1PY$VMLX;.2LHURWC]L MYTRU::G^?8NK= _7/&2=#A_ 36/DN/<>1+)I506F&?:6N*]_W-[RGSK/1"&5 M0JI=(95O&PJI%%(II%)(M<](Y8\L^][VR@JH5&Q,H9)"I1=$)=.[-V.F4.E' M@WZ;JZ+64>>AT;_]"/0] [8=)6X#X?&;_SRSSNZ>YWZ@R(N154WWP*>K&%M- M]RBGJQA;35?9'<=*UJ.:[N,K#0[? =EFI<'OXXNQ1A4&!6^TO*QK;<9A12>L MXF\4?)R,/)T8?)SB=!5CJ^D>Y7058ZOI*KOC6,EZ5--5N\E?8#?Y^RQO&YZH M#/H=T/+41/!B6GG-7)YSO>8XL"6.^?27\RURRUT+UN=X]V+)GGD+TZD6T#VM M'&!1M'8>7WIT*0MVM<,Z!UI$H%%'J6JGK_577!VX$*]VL M=/,=NMFXMS;]E'7SPVH\CR?%JH*6*FBI@I8G/%W%V&JZ1SE=Q=AJNLKN.%:R M'M5T'Y\L/7P'Y'F[2:W6>FJO^JL^?+EXK4H_3T?,3@Q53G&ZBK'5=(]RNHJQ MU725W7&L9#VJZ:ISC57IYUY BZHE4;4DNZXE.2ID5^4EJKQ$E9>HTD^EKI6Z M/DYU?>!&L-+-2C??I9L]I9OWH;WG<@#C$&(5*L3Y?"'.H]*V:K8G8J^?RM35 M=(]YN@JOU6Q/T>8X$O$]G>FJ1J#;*1+]@Z[ABW)BS' *92>*.10*EJIZ&-2T0=N M^"I]K/3QLCXVK9'GA2,K//Y"T,?')^ GBW).OS[GJ+$+39;>/@@#YJ\/X.UW MOO"A\\;IT437A3Y8VY0=:7$HF V%P>/E>LYNR[:!Q]_PY*UXE6D88^.G[@;@ MT)S-:OZFYC-6L89WJT#\+)Y]MAP)NLKJ+,KRK+E]T]V_)L0C7F?_]/;L+QN^ M"_W^RSL"3L&F\-!#8TTSEF"*6'# V#"S8EUDJ;M*3%Q>MUX8@OV,)[UB]^YC M>L)2K,.Z9UR;#1+W%,NL!*X&:<@*KN7\DN5:RF$TK^**)UE3O]8J#L^HX>+A MUZQ(M+*9\ I,W[H97IX5<5O!'UI: LO.>)RE6:Q-60/:IM::"6NT:UYQK2@; M#1@S*UAU"[]HW1B:$B[B6CGC('=96=1:F=(G45O#]W4]/ESDH]=O#?J2[$J+ M9$ :M[@!!%B>V5ZLT<&]W-08#_]KRW,U%JTK("- MY+_(?H%/5#[ MQ0K&5NC<8<28X\"ZZ^N[OK/'KN\_]N8GO-<9>_8NWKO_\[W'#GV1PLT?JHK8 MEKVUET41SVEH/TM4U'3N*8I8=,%!23PR /J\9-]F#>]%=J--X:])K8$%!>;R M?[5@_-K&Z'&,1KJ W/WSBYX_?WM];UJ'P[[2M!B5 F\]XX8WV:UG72H24""D1 M4CI("9 2(*6#]IBKGGW_WV/V^^W/CKX'<]^GX9EVOX\OQAH>=:<*GQ];P;IS M=GB)#K<'7[O\RC)'AFD=/]55WW@EW =)9B7<2KB5<"OA7A5N:V3ZV]MQM+=4 MWZ9P*QM\/VBJ)%E)LFK ^A2F^<+A 2ZMR M2IT;RBG7&G;#[RT'4'&@/9KNB37N>P+_N_=N3%=)K%*^SW)RI0I./)BS/J(X\+K1^,V, M%S4?:05O%(H>M6"=*HJ:MJL(?3"$5F)\S-15QM )$5N)\C%3]PFB'!QT4:@* M12B1/3F1/4GMJ^HD7B 4<3XM87[_0P=0X/D3"8\:+:OKELOS+K("_K<8KE @ M>]1RIT!6$?LPB*U$^9BI^P11MFSEXQP.H948'S-UE496X0HEMRM4L=3R D7H@R&T M$N-CIJX2XQ,AM!+C8Z;N4\3XL!M[JVB$DEDEL\=.:%44\0*1B(NFC+_K$:LY M=H^=8E$$1244B!ZU;)TLB(Y"2Y5&' ZIE2 ?,W65()\,J94@'S-UGR#(_BAP M#_HP4!6,4%*KI/;X2:T*(UX@'/$WEA5TR(:69/6LK%DNRB.N>-U,X1)L)]$6 M<'U=YEG"&@ZKUT9UEF2LNNVHMGDL.%7=&7M!./QOXV+/U\L;^W 1#"C#X,B; MBN>LR:[XYM,SF3H@]KCAX%21_Y4S,H*#WIZG3F]7(JU$6HGT$1!=B;02Z?4B M'80'7:CU\@*M;&PEO4IZ=RZ]JNCC!:(LG\I"AS5LLH)K.;]DN9;R^B17Q'32=E10?,W65%)\&G944'S-UGW*0B:WHK,SG/9BN M$EDELJKH9'=[8#A,D!4QU^**)UFS3X&06 5"CEO"3Q7)3[*YTD$36XGR,5-7 MB?()$5N)\C%3]RF99_.@'2Q5-J*$5PGO@1)ZGZM&'A,6V9_ ![WM6JQ'5.;) MYKZDR3_;&C?58(7(W\[/OVAL"JO6J*ZDRQ..@$]X)88Z=F>-1AN2M'5DN%/. MY'/D3*RQA<]*RC;*>?^PG3/5IJ7Z]RVNTCU<\Y!U.GP M\R1:=R;6]ZTJ@+3 M#'M+W-<_;F_Y3Q7T*Z122+4KI/*,>\U-A50*J112*:3:J5/LC.S05$BE@F,* MEA0L[1,LN9:"I:V'_3971*TCST/C?_L1ZGL&<#M*X ;"XS?_>6:=W3W/_8"1 M%R.KFNZ!3UQDO6HIJMV MDK_ 3O+W6=XV/%$I]#N@Y:F9X,6\\IJY/.=ZS7%@2QSSZ2_G6^26NQ:LS_'N MQ9(]\R:F4RVA>UHYP*)H[3R^].A:E&>#F .M-3'&IO\BG'.@=20*192Z5NIZ M?]7U@1O!2CCIB-F) MHRJ MYD35G*AZ4%4/JM2U4M?'J:X/W A6NEGIYKMT\_9.\3E"W?QR/3^7 QB'$*M0 M(<[G"W$>E;95LST1>_U4IJZF>\S357BM9GN*-L>1B._I3%=M5]M.D>@?= U/ M= 9S8Y<C %.H>3$M-Q18'HC M(SC^1F0*.92*5BKZF%3T@1N^2A\K?;RLCXUPY-G6R+8]I8\WQB?@)XMR3K_N M!0#,WQW J^]\VT,GC7.C6:Z+>["V*3NZXE P%0HCQ\OUG-V6;0./O^')6_$J MTS#&QD_=#<">.9O5_$W-9ZQB#>^6@)A9//ML.0QTE=59E.59<_NFNW]-?$>\ MSO[I[=E?-GP7^OV7=T2;@DVQH8<&FF8LP?RP(/_8,+-B75BINTI,7%ZW7A*" M_0PFO6+W;F)ZPE*L [IG7!ML^I2EMUM^ V<--]&O%XJ9EN<:F95LTM<8JX/[B4MR*#ZH9R"4\RS(L M$^\OVPK^O.)U,\5GP###UF1:"6P>@4"48,(9$7<5A6P<5H">\YX MG*59K$U9 T96#3+!&NV:5UPKRD8#)LP*X'/X1>O>UY0D..6,@\;IQ X_B5H0 M+5[7SRP4:XAW,%*R?4YX%3^GH!S::EQPK#,K8J[%P.%9,Y<(E .-43=" G;) MQ?!E4[6@(RK4"BR.*]06%<\9:A&\BFGO>H&T"$8GXG MO^^Q@4OOWIJ%^X#)F=9]+WS^2L4M3/]_\UOM73F=E07Q%:#?9S :OO*ZS>6? M/31V:[0'H]8VT6N8=77&K@TV__.0\/'BOH7I?P-A3\%4+*]1KI.LCMNZ1BE. M>!U7600/B0$4T:S,49 V,(MZX%E]!*10MWX$L/GR,)RZ=DD1+;IET MQT#@6*6A*_<=&PO?UB2::-:"#,,\X,T)2=\_0]9 ZCB9VVC33FKVXK&TUT)L 'F M,DP''AC=DF4]-ZS!:D" D&;$E3"92V <&'!WFYHN' #H _,%08*3_TG?%[C MA7%9T7U4=5M":ZTO;NX8X1K*T+H@U7-.!JL<3O\ MR5<\&6L7;81J<$;756*$(Z!I%D_P/0D,ZPI=1J00R>3@>DDEBM+/JJSNZ(2# MG98)ST>W"\0"2Q^6MF((VCJI%3X\;0A&&[83% H24*Q-(A.0Z(KG MZ/(#0@H\9@"7 &'7!5Z.M/GPY5V_EF4720#K"F9&WT=MEB?R9J3:Y6V/>V/M M%Q &SI =YO@C+I77 +MPP6)P";EEW;OF.#D??HR4)CFNJVZU.7M=DZ0"SZ%LBEM+]/8 QC@^;=96\029?80!1?A Q%6:"7P)D_@L M3,4^Z-B_ =8M*T7 Y6Z%)I _D= ; P]IV?\Q(H(T6YT!ZC"I<XN M!Z[%KSL[,^I)5(C2+F89V6KP%NWN6L]LW^&T?<>A$8>QF8B1=H2K\*46B M>P?=J/,B>1N5-S@W3)?T6;&;/;O9^%%%N8J;78QP[82/Z+/#>IYH$L M8#D1"60I#/8-RZ_9;2VS4$/N6PQYK>&KG;#/3F,T\P5]9E]PIUHLX3-.^TG1 M",!'=5J^4V2(LNR*93D3.5#\_@I-_WP8*0>+7\2U.P@?:^\DL M8)H,.#:TK MEO=F-.]BX65;P[/(G.\^A%GD7; \P;1KM9?A@=.Q=:09BO8G2U/AE:$G-T'* MDE&/;'.%>HL39YQ??%GCD9*I*C5X;Q[@@Q8-$GR ?!8\ WTL^D-#;QP MZ ETQOIZBP.C6NO'M618_*L%BX)78"@3O!5Z&F(9>C89\INP3C$ M4;&.A6K.:KP4WYFT7#CU8/I>"$L?8 "D77BZ%, *S; JU$KBH" M'83D29#(2^F2=,_XO(YQ8M9;$(=H8XT4>?-F$/NE[7&26\.G'%J%:4D9&%]\<4/*,'S-\I M$$D"G)@RN7BWG%4B]L;S''_BA1W_P^J 9(*-!W*!GP-#? <_4QPG!@^E)TB= MW@.- "$A5M<8[ZD 8!H$!!HN.'_\9D;:'9YXF9<1YL;+L@'/4*0""V #N!T M23$+>B6@"DY%S@*072"VQ 242K@/XSX=0E) 4BX]A0"%RRQ "^-1/&2Q7BBI1: (15H23XDD!C X^,\6#!@'!BO^K!3>K3T,L8>T: MK:%2 [U8OZ,P;-I+E&1@/,.N*N%2[17F<5ZKU,'^(O,?:+%$B\$@8/0JT3&( M(B" %9E0\_"@-L7H3,6E<4/F_8*VUT34(B2*J:1"6AO8CBFT+ M:PZFE@CD2@9CUUAB [C*A!R.$,57Q.$(C!O.A"592-(XX&X 7W%Q>OYT#"E:!]& DBAKF0UA ][=:AZ # MK 8TSD!V- X3**>9M&ICC.%7O MA8TZUO.;5\GC'&A O*:G2:([9$YZ :\6P MP@_6;LD>IUC>RH*.-%"NA/P#_ 7(!_[#0B4T&%M0JAT3P&^7F&"A I"L_DZ# M!D#E&*H4 XEO)9Y/IV6"_/FMI$D??CO_18(;WO7CA?B\A!UV#$;X78?X]WNMG^69_O/ MCB)1)#$- FP5$"9 MT+VTYQ<4*D(IL8L!CN,4GL*/!MR#!/0OX2,)*UP1&#%G#"= O\78NLI>B$<= M#$<;)Q=6[<0$MNTII]#5RN!=/*.Z5,!4'+W%R2M$.AB/AIG"[H/M3\6>::T[65XMB ;YU5$'(8SCFL/=" M)PP*9]B'057@5&4OCODH4VF,'0&Z-65OPH.>^'B^I,.(?:[C?+&[T(F]E2H\ M'C0W[NSF&1.M#8;O$=XNP?<%^AUT>07]@%O!?49C1*'#G M]0FA970[C<9_FIMF.M6%"3LL>8=E WRY#=!'C,&< QXY0#;?"!!C0TC9W78J M=W6KBO4T PF,XF4I1&^B?"6\NIZ2",-FRM$XN@7(HZ);]SGH/KB0$6SB7@X! MU+=ZG)$^>)A9A=YX B]0\4KW!QWG$\**.3KHKD@]ZPLY!R.MPTJ0\(W_EJ,_ MV(NJ9G,'C;,:Q3XLNL(81CF@H,,9G?ZK$=DWOFF5/<,5"S"!-4BMYU$*B)3- M2.GEN'@TTWP9;6(NL):!QY%A>!N\CH*7^7)SW@'%*,!IT*3 )A'!92B*S_!L M>UY)LIC1''#BX%-%L9^7LQ94DD1CG\P0'?'(8&DXOI2]CHI_8V,G)H*$&$X_ MS>V)N>?AK(=5;T&NN>6:>Q_7W!=RS7W(U]ST>#-S$C9F'S@GSK=9K+7S*SPW M2YP?P1/QG/_)0NT,NB[N7Z>4R* ,:/6>AP_XZ\YE[G],ZO M[_KNSB_W\5VO,WQT9X]RG/?D&3X+RO2BM8T:[^^7TH;2>JSLTR^(52'0,"JZE.[N4V.9QY>Y$2#NTSADO7X6E^M*%9\#^>4%![>U0(?2044&>XQ#U<$6X9[E,,5 MP9;ABM]QK,MZ5,-]^('$7J$]HO@PM?C4ZL/42+G50R@__(7S/J0*VQT#OK.< MUHN?5[>-\[NC*V'Y!#&_<,_/ZRNA=A#5T0YZJ5NFT2U;W2?R MV.W%L\:0GH)\&=810QH>8 SI&Q53WC%'1"))#1INR_;BI_EFIX.NK/7!K+5H M\C&O[E,T&?E-#WFI)?8B&BT:73X%]=W!L+YSD*RU:+*LKNS-C0]6"&_ ^[6: MH<(?<. M]_3L7-;Z8-9:-/F85_<)FGS9ZQPT)8CL+XE%UEHT65;W M131Y>%EC,MIA;V&YV\4!=[6Q?@YCI+$ M6<01?.R\">"/MQ)B.B H8,NVZ"<8X#=]=W!:7WBHL>:U3OUMQJ*+2HM*;U'I M.N,WC=7HUZ+2HM*'M+I/*BS6[QYT=<>6+;4H\C&O[E.JM+:VD/KCX3&MYJS\ MO-"Q2OUPZNC;A0X3G0AKY5WC;(:%$*HH&:X(MJQTBX\DH+^ET46A2ZLC-?U)@D)TLMBBRK^S(DEG+!*H4V]LMA&01X M'8L1"WCKGQHO9R5><4 Z)L9T=]A9=W#0;/TM6VI1Y&->W:<<;\Y;ZQ8=])*+ M0HM";XM72-&- UIJ4>1C7MTGQ2L.NJS=H>2VMS=>\;,.=:P"BEP,<=GAV]Z1!70RR& M6(QZ+,;@0ER-ID"5I Q'OAB_8!6.21S-;:0I"B7"=$CPP);MT4\A[>_UW,M^ M"T@EA+5?=/J05O=).MT]K?&RKK$J+94X1*9O>.V#F,:&,YL0JMDWF)Q1TG:2.'XZCN7;>& 3,6]<) MM?#7'I+VB*'<^6))EOE@EEF4^)A7]PE*W&V%KW-T*R[Z+/J\I=QO"ZB=)!HA M^GQ(J_L4?>YV#MK/?MY@Q .!%L<9C/BI.)MN*CAZ-17$>2@#8<$ M7,1RB.5XB+Q<]'O]9Q$8(0P1DR$FHR$2TA 0:4/-A?"%-"701&_;F2]DI"=1 MK&U>3JINA97VH"*V+=NFGW39UG=[YP==H%DB0:+3HM-5?H&SSO"0UUIB-*+3 MHM.KG"'#@>S3![CJHM.BTULY0UJ@T0*,J5-FOL31M9_X4>A,HOBM,]*AAB<8 M*R/Q"@D\2^#Y?ATZJ^]P=-"!9_&UQ&Z(W7@(CEE@=1)Y$($HDLU:2+_4X?E=&+LE&@ M7])T[Z:+W^W-AF^>B(.WX@BMZ=>8RG[GI#7?ELN1L06FY(6\P*.U(-WS&MEM M#MR 2-"I#19$G)&]X8=.>_LZ5AZ<+1%3T@)3(LY(W6BE?46Q#\Y^W(UI@O]5 M,!#ZYP[][_7A[Q<.^JST[J[>\*/XJG=^"KT8;YVEK_I:AYFV4]7(/CJEA:RL M5SE>=]H9#@:O[PC:/7 )SVP\D!?QGUF2^I/E8]=QMRG9-@&_:V>J0RR-K9TH MBYV8%\WQ0R>]B: OL5;SQ*$$[]Y[YTL<>=DXS1]3H>=X/=1HNVS+G35\Z]]+U.!LU!Q2DWS@V,P/@I&DBSTV)_X8WQ/F*@Q ME0&GEY2[ E9Y?C)2"?),19/T1L7: =E!1NRDLSI*1-L%F0N%#-U*=I-5?X*(@[=4X]A?8 M;]-#VD06L9_8/N*OYI&G VIL#L.&%5;AF-*LLC:R)1XF%KJ'9PL=/ K6,LA2$\%9[[UD@>]UNI_O: M_@#$/E"+1+]+-*PFB*55'MK1N.U7JQ< B(D<^8&?+M_9WV_"A-+K3ON=7O_B M]?M7_[7E@5[GM'_7UW=]U^MT'__CPWQO]]$_?OQ+A_W=7GK'9='%G2CC3=9V MUPND>\\)=M?>X!Q5^#MC0P5_H7[CGATW\)REGHM&BT>6C=\_MGA]TJ2U1:5%I4>G5)*++ MB^-?]3H1N>)NBYUNC (/+]I0_?)M3:G:0O('[1BDH5C$>M#EPI!Q= P9??=L M>/0<&2W;9,5@B,'8'P-7S^U?'#WMIU@,L1AB,6HZN%VX9X-]D2\TQF)(<$;L MA-B))]F)\SJ++1VVF7AYOKYA#71]PP:S]6W-RHE2%=A,5+'6]:A?8Y@LA!1G M7X?"T\&^BA WB--"CH5B0,2 [,& #/KN8'@I!D0,B!@0,2"/.3SVN^YEOP46 M1.),[;0;PL%7J[DX.^V M9=#]./!#70?YVPI1VTMPX=4Y;T^;C&\S[/FA/ MS:,L3/'#7W\W/84FH0DDM[OVTR6UISQ0_41#>SYT9YS"(Z.E(=;3,?[NGQI& MZ.E +1-X)]'28?.!2E-\ .GTX!W<0R+E@Q'X88;/^2%T<.N $S77SD+'?N01 MV1P\V*<6L*V.\_?H!J8UAF'#6((D?,VT@-,+3:_^"-4,-Q<[; MY5CESCLXW7HVF[3"LWCH\U:O34I62"CW;),*>\0:90D\W_AO5TS3^?EFTP2F MQ0<]-[:II)BI/T>%A'^5K! ^ZB/I)3Q\HX, _S< 2Q%;8XQ@;T\\/V:>3B2WS.;A>\]/%F"RW^&W[Q?* M\V"DI4M#GP7*WK+!GT:([3OHAR?047 ";U%$D:$S]P=O]^WT/2#KO08=6C]K M//_8GL=:K$020(S,?Z/,S?+;5Q(YOE)5$^CL.Q7

B_#D$]IF:N^/44)6O$P#/8VC!%W8"!YUWF"IN+?MWKQ7)PEW)3]) MRVX^?#N.\*,87/"4-Y18W3AS^".&'0D9H__*_,4<6H0/PVP"#B6[Z<:SI.UR M$M."TS*8;73IY@<8V/IB%:;P2:SGVO/):6/*:3@=( ET8'KQ)E&!XAUX%(59 M0O_0H89QF0T73@[C/PU!-.Z".DRHN;<=Y\M*8\0P79T!PYD-C:H_[GLF69JZ5SK6#5R!/E M$R8,\(3_16OFEU5,32;:GGR12QU1YX)W.@6E]\>)?9E51_LWBC-I FD+CCJ. D=/P+=/ M$R.#"C1+!1O.D<+!OH4+O5O\1_C8=_RQ\+&O>70'0?35&D(\X6,7/O::!:Q! M%JF)7./"Q_Y"IDZX/X6/79BE16N$CUVT1K3FN;5&^-CE^"EZ(GSLSW74%#YV MX6,_)H)(H7I]L)CWNN[I67WH[F,&^S=CK46E1:7O4>E+MS?L'_*BBTJ+2HM* MK]""U4@DV-A%EU3,0UK3EIGII^COZ;!S;SR\R4LM?.S"QWYH%E%($(^9;=\^Z^R#H;8S$D."-V M0NS$T^Q$MR-F0OC8F\#'OI+^+%:['C5L#+NAL*+NYW X<,_/ZPO2-Y;G4(Z' M8D#$@.PC'-UU>\/ZBJ:+ 6F&1(@!$0/R3(?(WID[V%N]T 99$(DWM=-N""][ MK>9B>%HCJ.C0C<7+0(_*$2)J\:EA)VJDJ7&GG1/T?KZ3E%&,^7' _02B72FJ MXPY.VX#Q/+I%%]T6W;Y[T?MNOUM?4?9C=KR;L=2BT:+1]R5DN,/3>WF]#G_1 MQ>T^I#5MF9E^6@G+LTX;$B)?'DQS_&&-!T0QD/D=-49-M4!L#E/QQ,@^P,BV MP<:^EI"&J/0AK>X35/JL4Q] I;D*?70KOF=>R5;/A\Q!"_U440)1@F.KWUYO MS=_5(GK/6X<\]N&M6#MMO>:O*4=>*D#NC:6!\\)H6-&L*(IF"V3G]7SS M@K[E8H54*NW@:V@_32X^9[&IL=U/6\O;#Y-L M,O''/@QFK=HYM#O)L$HWMXZOQ++>6%*(JWZ+D3"KGROM8U9_X 3P/"Y620I M F*8=2R>2J5=:T"^+ARE'T*_259( MJBJU,:OU84E<9N"*K%3K-/O)5CG8SZ(WNEKS5YUH%8]GII0IZ&%$%87;7E=V MV[PX^A8+&^O$EFRN5FPNBB3K^2*(EJ!+19'D;062;9NL!+&"E^4?E8H_HT+H M$.9+ZSC!'1XTAVK3QMOZ6JI]C+\'Y]P/H377/D0_T.%,A6!)L7FC+$G'^>!Y M/O9-!<6(;8EF''D6I&179V@.8&PXGBC$ERXRZ(K"Y['U*$4E9#. -F:7;ILM M(XDF*=KPHE=2X+;)Q66EJ.WZCQM40G+#CG2HU5):4U5(BMI*4=L]1=$:8)&: M6+!5BMJ^>(Q?+)V6HK92GE.TYK%:(T5M16M$:QZD-5+45HZ?HB=2U/:YCII2 MU';[A.YP)=-R8-A#0; -9=H1AJZ]P*=[[G#0 GXN 1&*_1#[L1?[<2$4PV(_ MQ'Z(_7A<1N9@T *"8:&V:*?1$'K06FU%[V)O)6D.SEALSO&6M)^UM)^MR,D< MJOFLB4 J36-_E#$YXB/6,0B=0HQ(BM!A"@5&-)LYWW4[/@;D) M_"@T&4/;*0,I+F/2.TTQMT3G=.I%E?O.&# MTG <%"L_+,0*?U7JW%8IXXF"]ST\[2.EF5E% M_7K^M3,.5)+\[=4"NGD21IZVN@+:B5];XQ;HVQ-.$H"W(# WFX?O/3]9!&KY M#K]]OU >RF-+"36!SKY3P8U:)@;O6Y8^*UHT M(YODZD7$9VWY-ALGY863;:!]D\52 M] C_&F%.(;@/E4T1-LXD"D,=E'-G@B5TY.Z1%4DUN*G"MA:-?>K$C9_.JH[* M1)ON)-EB$<6IS;ZA_3?/EDFR43*._07V@!\'8:1WN3A>>%4RBV[X&YA6V&/I MR09EY4I>3Z/R:R2O1_)Z!%@E>3V2U]-DW6F016IBSHKD]0B&M"&63O)Z)$-! MM$;R>D1K1&LDKZ=IPM2&XZ?HB>3U2%[/<^?UW'?O(_BX8\#'":AV+T"YOML= MG!T_4$Y ^6(_Q'[L)ZEGV!?[(?9#[(?8C\?8CXOZ"M&*]9"C2A-,A:3RU&DA M+CN7QV\AGE#;3?)X_GLUX>(>:.B+)_'8$@H;LX?D)1SZJ[D\YP?=EF=%J+[ M?]8A:$!@I!*>\A,06\P0:SO$?_O,O'11C5L]SBB'SW4F?DA&)=5J[F[LJNE" MTG$^I8X*DLAVF@Q'H*02;\P!^.:=H^9%-811H 35T.I77 FML>'*P0?3;"#T":\]+?:T\#Z(!DTR]25[A@U_@ M8^>3ZWR"_C@]1XVB:UVM7[*IX@@1>G.VP;!2]23_V2J4=^UA3JZXOJM,RFDI MLX)&CLCD0GS6,C8ZSBY([?OR'H;]SMEC\Q[ZYYW![HD/;EY2Q*2B[%Y+I/Y$ MA17 ?:-3%3[A]JZ3O#Z-ZX0Z79FA P:%#\[O 4D_ ;#T6 M_]D+#OP>C'CW]++T'\&+RX6]X,4%+WY@NM,@B]1$++3@Q06;U!!+)WAQ0;Z* MU@A>7+1&M$;PXDT3IC8/'GQHOG47$X/XZCN7Z[+3PNX(MC %\( M9FL_*(R>0##JQVLU0RS$BH@5>::J#Q?';T4$-B[&0XS'7F#C0L@LF/$CM1F" M&:_WM-(==%I07FI':R'\[;L!)ITT2E6@/4.T"X<_7\ )+*6S1W(9_&'Y-!,2IP54;4G-B_XWFI8Z?)!FCD!TUCT#J_T5 ZXZ3 M3PJ'RQRMXA"[$A)L?*R2F:/_ROQKF*@P95[VYYTN ?V69?B7*$F<21S-G2Q$ MP<'X-ZURDHT2W_-5O!0(<+.1N$?XX@$T/A38KMR;U@+;'NS!>OS'OU_T>_UGDAZQ(&)!Q((& !]!-QAKZEQ B#6%JR4PQ MX2C^.M2I$RTT,EZ&4WJO1@K2<18C/^5HZ7P(%C/E7*5:!V5\&OS$C[Q5N)GG M7SOC0"7)WUXMU%2?A)&G[=!@,O%K*Z2!OCWQ_)AI3A'AE,W#]YZ?+ *U?(?? MOE\HSX/7E2)K/L^:C2?!GV:E[#OHARIVWVKR@"!K#8*R M;GJ>?VS/HQ*#:H(EB)'Y;Y2Y61YG))'CX*&:0&??J>!&+1.#M"I+GQ4MFI%- M&N3&Y%A3KV MB5>DN"<(<>P1$,<>T:RVQAZ=B3D2Y*Q@ $5K!#G;NOVZB>DA>TNA<1U].]8P MPJ(VD:35"-3Y@2+U88Z5L!*Q=.(?B.(\1'&^;*H()VHD:B1J)/N/*(XHCNP_ M#96LAV'$>GA92E]9Q-[5&5T^&"C?SH:H&>B\E]AP9+B'.%P1;!GN40Y7 M!%N&*W['L2[K40UW[[0)Y>P):O$Q/ IEO"HU4FZU>T?8XTQ698EB>(>>_2/;NHKRC5,><7-F.M6Z;2+5O=)VCR1:]37V&7 MQAKOC348#GK)6Z;0LD<_6+.' _=L>"^\L,F+WC(KWC*5;MGJ/D&3SP>=_B&O M]!/VZ,??HTK8X@$2=J7C:W]\[]6^A"UV(U79'=U\'!;V0=.H+D#;47DCP10R'&(X]W*UTN\=N.L35$(LA M%J,>B]$_ZUP]>#.ZM'2)KW9BU%DT^YM5]@B9?#FM$O+]X^%%N5$6A MCV%UG\(@T'4O>P?-#M*RM19-/N;5?8(FGUUVAH>\TL(@T/0@A3 (2):.9.G< MZ4VY9S7&.1J:IM.R+5D,AAB,_45&!S4Z;0VU%Q)S$<,AAJ-VZA&W>WGT&<'B M:HC%$(M15UYKI[ZLUH;:"V$0:'H,B1D$QE4HOT24Q&J+U=YLM2_* F_K8OP<1TGB+.((/G;>!/#'6PDQ'1 4L&5; M]!,,\)M3]W38@HR,.O6W&8LN*BTJO5FE:XW?-%:C7XM*BTH?TNH^J;!8O\;" M8K+4HLBRNB^#[Z^Q"$=S=^9ZX3&MYJS\O-"Q2OUPZNC;A0X3G0AKY5WC;(:% M$*HH&:X(MJQTBX5!8R9:MM2BR,>\ND^Z8*T/3WY8&[,4VG@F#LL@P.M8C%C 6__4>#DK\8H# MTC$QIKO#SD[[!WW.:=E2BR(?\^H^B>Q-XA6'N.2BT*+06^(5P[.!+/7!++4H M\C&O[E-<[,Y!U\XYE-SV]L8K?M:ACE5 \0KEP5-^DB*B_%I($X661&A)MMWO MNL-S(3(ZKEU:+(98C/W=.]6)"&FHO9 HC!@.,1QUNQJ7[MGIT7.@B:LA%D,L M1DTH\K,:200::B\.!@?3\CHX&F(QQ&+4A"@\JQ&)U%![<2AH):G$ MD2_&+UB(8Q)'_13>/O[F&]UT#3?4HM#=%ITNE*+H]OK MU F#6MTG[=-]]_RL!?F4HM.BTX>TND_1Z4&OTX(J>)NWZ;TC M9AX3RFA.K&+;9'Y"0==):J$OKA-J8:X])*41^[C[.69PT/1XXO"(0HM"EQ6Z MVVE!I%'"$J+1![6Z3]'HBQ8HM.BSZ/,AK>[3=FB)2.P+;7&<$8F?E1\R6,+S MDT648(+.Q/'#:YVD6%8'_NED(3Q/6!R5:IB/;)3XGJ_BI40N#DBYQ(SN3+#E M=B\..G31LJ4613[FU7U*]MQYISY ^XOOZY+G(@I]#*O[E.2VR_IH#&2A18UE M=5]F7Y:*.X*;>(C ?$YG.G;\"GKBT#1'3.3.V;@'S?'=LG46 M+3[FU7V"%K?C/N;H5EST6?1Y2QY'[Z O!@0Q(0HM"EU%3!QT32Q!3#Q[+**@ MEQ!B@.8/$RQ+#(8;C 4>O&F,I!VTX)$-%+(=8CH?( MRT6_UW\6@1%F4S$98C(:(B%/NKB+D)H-8A-AT>^1II"=1K"T6)E6W4C_G MH"*V+=NFGW3BZ[J7PX,&_$HD2'1:=+K".'#>W@NW@UYT46E1Z:W9C,?(FC:S_QH]"91+'$)R30+('F7> P]9'"'W2@ M69PKL1MB-QZ"6Y8JOQ)J$JP6Y.._41X%QX/9#8D]M,"#BB^P/-W1>7P&B ['_[>?0AG-I94;]1GI7]W]8]\U/H MQ7CK/'W5USK,M)VL1O;1*2TEKABMW:8HGLK2R HN]M0/IRA/^/A)H)91ED++ MM]I[SV_I=;N=[FO[ QANH!:)?I?HA8I5JNVJDIYRVZ]6HYH(\1KY@9\NW]G? M;T*XT>M.^YU>_^+U^U?_M>6!7N>T?]?7=WW7ZW0?_^/#?&_WT3]^_$N'_=U> M>D<$_.).S.0F+=LU*GZO]V,MT0:3=U&3Q2ZVSCW[/@\)5]J=OKI[G ^Z8GNQ9:_S;N/*OW7F\-#;)'C[T;WZ<2URFH;_S026=1EJC02^X]QA[.'.W%T/7%SJU6.NCV[\5 MBTEKI>B)[4<-:6F MWYWYPEXVEOI]QY=67R<4XN O*7N7[MG%050NJDM<),Q1_6^QT8Q3X;- &QK*W-:6?"F,9(BQT?.V/ M[PURB464K/^69OV?NH/!OC(T&I/WW[)-5@R&&(R]1CN[1\\4(A9#+(98C)H. M;KVAVS\3%E1) A7;(;;C@;;C_+PC=(:U!H:>P$LVK(&6;-A@5K)M4_\M2E7@ MQ-6\4@DF/4W]&I.R+^P?>S'=_5.WVZNO:%!CD_?EJ"@&1 S('@S(^<#MUPC" M$0/2#(D0 R(&Y)D.CZ>7;G]OMUL-LB 2>A)3\K+!IV.U(&?G>ZO"WQ'M>2 E6654_\R2U)\L'['T:QESU*JGQU&L4C\*WV70 M_3CP0_T0)K![4J(VQ)(.-AG?9MJ!B8ZU2K3CA\ZB.CE493*%9Y)M/#D. M,DNXCDJ<<31?J!B^2J/[?S)PG1OXS2+V86:@PXX'+X,?JJ(WT<0YNWCM$.^) M=M0\RL(4/_SU=]-+:!*:4./4O_;3);6G/%#[1$-[/G1FG,(CHZ4SAAF.YCK& MW_U3P^@\':AE N^,_7!*S0:AQ'[R%+WJ%69^>,9S8.O IC':#))-(;HY]1%;(*GUOX%ZX6: MB1VW2]$Y=)UZ-EMDP)%BBS;9HJ0Z.?NT184=8EV")R9Q-'?>^&]73-+YV6:3 M!";%!_TV-JFDDJD_1U6$?Y6L#S[JZX3Z>J.# /\W L16P.,%7X#&'< S[SQ MH1?\K0YAY;0FLP43A^\@/0+\H?DG+F3=[MO3^X!*>\U*,CZ M >+YQ_8\IF!0]?A!C,Q_H\S-\EM6$CF^.E43Z.P[%=S QF[H,LO29T6+9F23 M7+V(^.Q\.[@7XR3L0KAS&#^A@6DC8G^)I<_C@)'3\#C M2!/>76'OC$(5;/!NA3=Z"W]SM_B/<$CO^&/AD%[;B@Z"GJ@U-%["(2TTL.&*U@B'M&B-:,US:XUP2,OA4_1$.*2?ZZ@I M'-+"(7U,G';"3OE@,>_WW8M!?10)QPP\;L9:BTJ+2M_#(=UU+WOU<1>(2HM* MBTJ_<#I(_\+M7@R/?]6%0_J0UK1E=OHI"CPKR0BR&6 RQ&&(Q=N.0[KNGPB$M MT1DQ%&(H[F;LN1#":"&,;@1A]+B:WBM6NQXU; S7FM V[@<+F^CI$-LB 2;VJGW1"6Z'I1 M11>=%IQ7&HT]*D>(J,6GAIVHD:;&G79.T?OY3C8Y,>;'@?<3D';%>7-/A[WC M7W0IYR&Z?9#+_ 3=/JVUGL\Q.][-6&K1:-'H>W;K"_?LHKY8;6,77=SN0UK3 MEIGI)Z5$=H>=-GC;+P^F.?ZPQ@.B&,C\CAJCIEH@-H>I>&)D=T<_7W1:D'7^ M6D(:HM*'M+I/R9FL\<:HN0I]="N^9V;)5L^'S$$+_511 E&"8ZLF76\ETI4L MDF>LBAS[\$:LF[9>B=041RZ50S:E0C<6+,V+HF$ULZ(@FBW96RX6"F_C:J-O MU%L8\EQ[/I6^M=72WHS>.M$HB0*=C*!K'LV,#A-N6M_BOW6Y)/,XBV-HRM27RZNN/;\T..TNR_LY MBTU%1.[AYK#/CCK!5;J=4$]AW:^U@Z?JUVN*HIQ%E/CT #CIKW=K>R B\E(B M\KNFJ^GB-)8(U%DB.M1-&J9-DDXD_]M$H@)",(]B, MG3%LR K>$NN W@U&DXHJ.OCM3"O/6BUCW]Y2!MOF&18 9W?@[_" M\LI8/LF:4?ON"(87\WL.OO1Y+8*0:^_#!6$ 6X#&R4=AR,O9!K2E,$]S=<'5*)3P3VPA]KA.8%ZQ/>JT"^+A"FJ-Y'#SKFS$<[LTU28Z]/@> MP) /D"5^%%]U7ZW>KSK1*A[/3#U84/9H@2(@!5F;7 Q5BK"N_[A!10\W*/^A MUO=H31T<*<(J15CW$O-I@#UJ8H%1*<+ZXA%IL7-:BK!*.4G1FL=JC11A%:T1 MK7F0UD@15CE\BIY($=;G.FI*$=;M$[I#[+OE,*:'0C8;R@LC?%)[ ?OVWCF6B M_32#4>/(LR!%(.TDCN:.@@\L&)>!QV.:H _9%-;+=%@ALCP("'@^>DMC5*-$ MAV-*:Z!NFC=-8Q42ICC/3;D'RX[3[(=H?!#S6Q[EQJGUDR13]KT9KA^^-KFC M&0?6.80&=NW2P."FS1) .Q[^#AH*U(C$A3'LA00QA-G7&U:$8<_73-^5(%YPIP1!.6/HRQ,W0(?;?H535+$V#N!#X/.8?9)-DK&L;^H2HE: M+.+H%N0M1>DHO[;C; N6%HI 62B;$UDHW:#7[YQRWLD#5678Z>^/PQ+T* [RG-AV#05TJ1@XP9 MP81A_*G1ZC0G\4BP[XW"H OV7;#O C\0[+M@WYNK.0VR1TW$=0OV77!6#;%S M@GT7%*]HC6#?16M$:P3[WC1A:L/A4_1$L.^"?7]N[/N=,7?!D!P)AD2 9WL! MDYRZI_>?F@\?3"+ 5;$?8C_V GP?GMT;/Q#[(?9#[(?8CPT3=G'6 MR[E!IH ME:D0N'NMJ;FGG?[QFX@GE.N1B@S_O8J433:%A!J"<[>$T 8:;4L;,#CZ?!4< M;9[>@(Y^4V67-L44:&PP$9Z?.EB&,4=HG^8M$Q>ZQHGQ0^@C$>J/9XC[A0$G MT=BG;V_\= 9?) L]]B?^V!G#^D9S[,J8.K [WKU=,1"YT4:VQHVQF,#>N3^@JYV*/))-%I4:%BIV2"80$,WQA) M- _?"PF_L)#P76:D+%:GGOO?\9!&HY3O\]OU">9AQ4(KT^]P3&_Z&/XV!L>^@'Y[ M'(%-O\6Q(60Y-^^W^[;A#[@(J&'RUSV'YQ_;\XC9H!I, #$R_XTR-\NO14CD M^*Y#3:"S[U1PHY:) 1&7I<^*%LW()KEZ$?'9V9/>B_#D$]KR;(V?=0C;*F\^ MRH.G_ 2V(TRGDKR))N0^R< MY$T( ERT1O(F1&M$:R1OHFG"U(;#I^B)Y$U(WL1SYTWL%/T61-(Q()($O+@7 M:%*O[P[/SX\?G"3H9S$@8D#V84 NW;/3%J ;Q8"( 1$#L@<#\N;<[9ZUH/"( M5 YHI]F05(I:K<7@K-,58Z&;6#F@6D29\732&(_@H\F64QD^_#2WZ)4.[TSUWGU MM?(\3#\,B'J3O,('O\#'SB?7^03]<7J.&D77VF2([#J@*(OO+XM ,J!O]3BC MY2^-N%+_8!+A&)R_,N@6C 3>:VHJY'D@F\HIF/7:4M+ ]/PA62 MXWD^EV+ 'U1'F*\133!.(0LCOZ!:\J"#\E-&R^AZJVI A8?]4!:5GNB5]><0,;0\:[UX]8=A_;*I,_ZQS ML6NNS%IM$"EBL",L_A/Z-CK)ZV&X3JC3E2DZ8$3\X/P>A/@3T-K=T],G0-,/ M\L7=TV[QG[V X.\!R'=/+TO_$;"\X!4$+"]@^8/2G ;9HR8"P04L+\"LAM@Y M T1L#RHC6B-0*6;YHPM>'P*7HB8'D!RS\W6/Z^F+C 38X!;B(HM?W M7 =>A>XB>(/4;8NTX-TMIP_^.SXV@^]U."G4\T%@((Z>T?^8F? MU)A D]!N$$''&)E>% #P]"AU_"3)&&'LJ'D$(O\OPD(C4MI,B1_":[2C51QB M5T("'8]5,G/T7YE_#=,4(E$_8H)7)VNP.EG#VB9+$+U5J@^%@/XXFCM(NQ\E MBM#/?G@-*TCR 5]G(4H4!KYI^9-LE/B>K^*E('^;#< 5Y*\@?^7R59"_@OP] M0,UID#UJ(JI5D+^",FF(G1/DKV 816L$^2M:(UHCR-^F"5,;#I^B)X+\/73D M[\O=)#^%*;NF\+G7%V(]Q'J( M]1#K\0CK,7![%U+)0XXJQV4L!"I,AT&RUT[%AR9>=#&J@P5:[SLXY@"I63SE3J M+.+HVO=@?+$.]0U!/#5W QK*F/\8>7>#:$QTPOP:7Q.7-,)T_P%_P@NN4AA8 MTG&01#Q1 ;(!5[FO2QT.QT&&@"%8((0/1YGI!GT+JS.>%=W"5RPBG&$?WI]& MT,^Q1M9AR]=,O8)OPRF^BL#1H%XY&W>VP!^M0)![IYUN#CE.9W&43:&#T+ E M]89IYGF#[XN.J_',U]>(3QZ#9F-L$"88)F=.=,S0'BQX%&Z;!14DD1T[$27' MT3_U.$T<9)>.;I :G)C7>0)P5<.=!EF:D^_.\U&M=_\__OVBWSM_S]3/@;83 M9(>"C::QH0'/^^;3OV$,"?0G96IL:-#RG.,8.PX(_EQYFCH\'D<9=116+?#' M2P=&-;;]--_F1,ZE,4VA#_"*&(0 ?DLQUUPVU').8'+&P5//5B8-,>ZPL#)MY!:6SH^\A%11_Y5A'PQ7=![K15T%37L$ M)/U&VS7Q\F$0A7IUJ?.1(5GX::>WBHN_M!^L9@20ZA*G-KPFFH9@MTC'<8)C MC\0Q)W=?68>.0.-#@=8+NJ$6:/U X U/@=8W2/V: MB)(6)+F@EAJBUH(D%TRL:(T@R45K1&L$2=XT83KBLY;HQL[H\4: I0^/)OEA M<4H!&1P#R$ 027M!&PQ[O>/'&@B>4:R'6(\]6 ^ZY>\_D_2(!1$+(A;DR"R( M^!^"AQ8=N7O6?ONO#P*#W3(WB'T,[@\'Y"# NT%UB'R#WB4,D\MB)YFI.,[504WT21IZV X.IQ*^MB ;Z]L3S8X;4(;HIFX?O$3@8J.4[_/;] K&;X;04 M5_-YSFPT"?XTZV3?03\\@4D );K%54"(5JY/M_M6D@>$6&L0DW7#\_QC>QZ% M&%0O?4&,S'^CS,WR*".)'(<.U00Z^TX%-VJ9&)156?JL:-&,;)*K%Q&?G;>B MO0A//J'U T;W C&I81)^\?_*P):F2T+9?E0+Q)(Z7W4"9G*LD[T#:5]Z7AZ MHK4SM6U.VD%GS\!O!GN/]2*M +PG?HBX<4Y?,7LJ)G\4Q/,6K\V)#; #TU9, M_\*\D A'$XW_=$V2 ^ZUV-:G+Y\I_00:"BAYQ25V>0*IPT^);IZ0_1873GX# ML:H@$/A+*+$1U \,\]/@NC&_+P8@)_ .Q:: M%M?RU >8'H-O7\21QSD/+L'78S7.$PX<,,+SQ*6$!^+=#PR$?E,7:0CDSJ2Q M#J>(O6=<_31&7XA%(LD]CN=??*?=LO^[$?/<.1QG\RQ0)#O&;TQ(/7+5H!6E MWRAGYL,R@\^*HHZ"%F4IREJR*FP=YP/IPXH+2SKF.=_UNIV+/&$B;RN$+T// M=;X;#$II2?#U313_2=E&QK1CAU8RFJMC+#QJQ#Y_A M^RFK:ULOD@R^Y'=SN0_LUGUKM-J5N5I2PRF_->&!0Y-90%D]I6%Z/N?V80>P M=7T+ HY]IO9GL!&CU6VWQ?@7L*U#_TY]D9H8;T&/.^R>+FHR8FF%#QH&+66 MN_N+$8"O&8CE\'38?:/>ONF]=3&!3F4)YXMM? .5EH$.@\B64PP+:<4:,".- M6_-*9\@@#;ID"/0X(UL\RN -F&WHP=D'R\VLY;1M[/!%K_MF_/;-X.V;#V_= M?#I]3%55 5B)*;2-<\4'?^QV[P)>C%5J/$R7A9?Q"E("('H6\$AY?5TGPBS> M%'P8,NZ]2VO<*?]RJK8LFUV<8LI*"^E:LP SA$O/":;:ZS@_3B:<[0<2M'0& MO?QEL2+;8M***_,,WX7)1-/NEH_%S-;/030"O3?B:!(=S7?VY,!?@J]EDXU[ MI?WK#J$WS50$F;8I?!R7N)K("A-_ O-MEJ(TK[FV](P MO9A!F3J]+@LLS ;&T*+UF0,_).6-$IU7=UU6;/]H<"A4VE:)VB@4I1TG6<[A MH.:\^NG;QT^O0$$GV"_*1A]'J]0RLKN&E30^.B*GI_5MDNC&6F=OR1X>C(J2Z^ M*Y\QX>_2#0@Y?S=TZDE,L[D9*B(B63R>$:4";>ZK/]]^\@/G^-6/T'&0R+E. M9Y%7(LI]OF/@)WX/C"8LO!%XG[7(4U]^>)'$3SL()++WV*AZ)BX[N&*,=K/'%6,RJY"0E+CE4H6'/ M('N!!N!VK.'A[\JL*?DOI[C'I;KE^HX'OSE6RX0I,RPC>.6$MMT>SWTX(K&W MA^+WC\Y5IW!7T#ASC DOU(,E6VF:Q]"S6J82?8# J5;<@ M+AB,1(,\F> Y#]KPS=LF&CEC ENY$YX&Y]0&54=+E+B"U@9[KZ;V@.?'7 MT MI!*?]+'2G629@%J"/\I["GZMXVMT:=@5GL^A/=1IV(R8&^=3. G8['W5)O[J M? "_!-X&B@&'[85*$K[!)8XA[/['*#0\-+";);#B]"H8::!N\,$O\*5/0=[O M\7_0G_V033/TE\]W@@B;L9](:YYV@194P*C2&QS8H/N:VAIV7W=X 4%_L@EN?#&* M*-X?L!T:F^E"+SD*F>F'8B$W#OBH4]_,^#A0_KP4L*\N&=,E!; 9A!S4-6=< MZ"?,.1(>8>=QQL!>98$JF*UH(T$9HO (>NN6$0EW01?L"$?LB)<(MJ> R';L M2K-6&S5)=*7ULA,UTKD?16*=$W313(1@8'@2*J*T/F,K$\47(U5"^FH%X(2I MF:J. )\7R&H8)\.X;W;HAMQ+95DZ'->4 4=E6T=N#:(K'Q#%=8?VI M4[[B0.:V6X5:Q3Y,Y+$_05&3L588&:)+77:$8':O_2A+ CR=TN7$C/PV!T=I MR* B4GCS=42Q37"E4-6*AU1"VU#./9<_9SH'W2#49GBCI0LMMT!\JE.(DN(1GNC>?&* MYIC/H2?-.6X+WDGP3OO .PT%[W0T>*<7W4EQ.\E]T9++@7?;Y,?Z2+:Y$JZ: M1Z&?FM/RVNY%>QIY/QLC7$35FI UOX;M$;:LK9LM<4W>J!@^3?G8CM<%$( !/ *]C\JV6>"'C"*\6M.'5+#&9 MPN_LZ!5N6N58!TP&B 5XQ0@RHWN-?(Y=BF/39TDT26_0B:>C%*XB/$+!"AB$ M >\02ZDY '>K X8W:@";]7Y+PSZ"(?!3H]E/]WDS%ELE5> JQC#9,).)B2F%9Q5_^+1 M&^=JL"K@UF^B(PA"OU/%/+XYIRP>.W& MN,%F)LT!M9W%MT0, &DCNYK\)!3 M2+,![1#+*P?J%MDHH),KW4A70I[F)@;]7O:6#4(#1&^I\>QE*&%S@F(2F3L6 M&5H;$28&W?38I0@L[,:9K_REO'2T T21R,M9=2(S@%X]VC MGU2BA+1U4J"SY*D2N(W(5DLM)7GT,)W%6IL RMVH>QK)@II)>2QDK8S5)'V, M:'$**2G&49$7E@UH,@'KB,=7^"%;-I78?IJ9R^\GDFS"5[P4?YQD >'OKHTB MP$&&Y9NM:KM/FU?%K-ICEA5D4L"'W>28Q:)PLN>1BN;8('/&@K-;$.APBK$1 MOF,LFZ/.WSU^N7(RA!E'FG1#]MILWJ:9A1$X, MOPF#FZEU5"I#)=M!AHP>B6Y"BRV%@8'#S+'=?!UQ.G+TX=H^GL=N+2?\(H@8 M8TM.$ZE< 53 =L.9LA!ABVS%0#+9YZ30Y.K51Z"R<)SC73]D\#.R:W_'*Y>K M%$S$E1U>P6T.TNTY%(H(T6DRDX!&6(68JZ/F'%;,3!AXAHVA1,UYTRKNH<"^ MZ9L9PWTVFVO2 Z)?SZFLR1B#A./O;U%=-&&?*4 SYNOZ9(;H#:T\#L8X*8*% MR!YA-(7&^AN!J#[ +(&K%R,A>L3>[C\C+%69E(/B MERN$VR\?CVB9Y=Z ;?M0T.=?@:_D@>N;.!\INF;B^V]>?;CZ^.HM+-WPY!1V MZY\C@@1$T$1<0O,7L690#;[*(!4AV!,XOGXAC+3%)VY>5:!\+6@N]^P]4ZPP M8EAVY#"Q,T6T3L:WJJ7KA7SCH4C8-#*!/>PG#18A;.!RD.=% 8 2]HZVE=W= M\DW+\I!9.; :D+7]DK"($W- M<:YD_XTL,3A+SZ/< T'K.$Y5CH] AX,\;_H<=SR?S@SPE4'%YWM>?FN&\!R0 MY_*69S^S1W&2]?P*+9[JXM:.Q%M3X,2XT!POWG!0*S).] 2A MNTDY4GW7D:]ZA%P].J[= TVQ4@,[[FH4<&;90Y)M2CFV(0BFD\+ZX@&03QI^ MF-?EX,.-P<(7[CY,3!!! WGU"KZ'+:Y>8YO>QI>E*JG*UX:4"=? I_>2&.'R M^21<2YLBJ**]N,WMW!K$N)P)]4"KU_)SS^\S/]"E74T%H O>$OWD):]5L*2 M54R7;3C!*-P,>E]WE=RJ:!#HH MU[3)4;S%FJ#(B<9CC/Z48/:%7:H4YF#[EDG)/Z?R,=#=T%3[H>T8O H,6"PX4C/#:.A4%R@) M,TYRNHW?@&I 5]'VMIW A 0Q'F->%JDK!S4X.< <9-TB3DQ(AXH;;@^NN=]3 M"6CZ>+[! 2(4]G>(4D9FL1GQ(/&Y,**>$."<) MX'W 8 8PP6R]\PS.IB(^>$#GUYFJ1G2-B8%5+KJS)S-T0'$-?M$. (+2*353Q:(KJ9P A!ZG/4=@F'B%OXGAIQX7?C M#DDK(C22\KZ(D8(I&K/*>^#1#S_\U\?_^P%;8I&M(AU*2(0K\"QG9$0_)+[" M %Z&L,?\**\Q5CQFO\.X"/_XZ996* M9:!_*?<*MD,#\C&17]2/2DH6YL&B;6$D!IX*-:,I"S6@J Q\RLE_^;:3&X/2 M_C/2R\BHV?I&O'9GHDQE*13+ (6JE/I@.E1.DC,[,,5T>)^U6"6*SY3V-!P& MCLPU 8UB+)'=VXOJ;G-8YPS3[ZR-99-Y@GFX-'])]4[>0">ST%[)VZZ&2[JG MP*-,J=NE=X>S$+;:Z9(Q=:46^)RV M<>@\*C)M80:6',.%N>1:)(-!%:(<9"FJ1,D]2>,H*-O/N1K'$68H1',POC80 M;IVS*@S%M[ _WFUSS'%>>PSM)_:CC$+)!87394IY6M:6PXLQMW!7P6C$W V=N%TX411S\U2.LWQ=C-[CA2X9]Q MMDC)0)./D/\2=Q=$XIG@JH7P6^L&EI\7")M(S&; UI-GS3C*M#63HQ";*%59 M>]F#,&/'EACOPH[-6]<($BS+?_)Q /^] =>,B5Y!3HC951GKMBDBT]LS;]J MB E>:V?4_J2\F:\EJ465KO/NYAOG1N<@(T&J"%+E&9 J9X)4.1JD2J,9:*Z* M8*7E?2 "B9-+&X2V4LO4[MRALD,M'/D\U0)-!5!.#H'\/96_;2\#5>_ MR&GG4L8X\,GVW7%4T3P;=@;#P9VE'>^LL7EWT<>S_J!;_.?1I2F?NPL-*I#7 MA$H:4C-EIZ'EM87.I+;04\I32K$AJ=]Z%X>_ZIO5.Z'^T,V,B+^D/&'#,DEP9[> M&.?H[<8+$O&3#DBI6E;K\ F:T'-[PWMC-K+4C5EJ4>1C7MTGG7,NSP]YI9_5 M#Y*XT!U^T"84B'@_!Z1*8C1W7>M[X^ZRS(U99E'B8U[=)RAQO^L.SP_:]WF. MJS )_>A2#0D$%>O;\8P8F"D)D?]->3[D$5'."/X#D\JNBTRME2 M,%V;%^]^QZ6X=^5=-\05_L*3WOCA]>S?C_4X?-1,)T +]DH;\ M^7$6NTS$$=CT4_=T>/8\TG.@AET\0C$E8DIV,"5==WAV(:9D!Q\1_A=SJ1M, M&$ M>'H<,>+\'7/-^:&N(Q_^\X8,]W;S_/U0,$K>QUF/E3*HW"T6'[\E=OU@ MZ7S7.^_T\KJ5EGW!TC8J!QFBS3=ECB93R!-YVI @*.>E0CH]I+ECNIL)E]PE M'H) 3PT)#A)HZB0QW$N:20J2+$96+!&XZ^N>5^MH4WF/)H$^$! MLCU1)0RL9,"E+%8&?-GIKXV7)L;;<2Z1FQ_ILK=.$A=-V#9%^1@V]+Y:0Y;* M?+>(3G:9<@A$>4>.9X>W% L3JGU&);?[.$L-# MUWEE*+(3PZ6+FX6+57&?J\ +$_^9LKQY,9UKF-4H!MW\?YAC2B6P2HRWNE==_-U4HRF^E$D+, M.;Q>I#Y;D/7J5GMMJ-1+H[76DOA#T5XQ]VE2*4IL>2'+U7*+#8PX:\DK31;8 MTQ!\:/:7=9#C'9EQD>,K@AW?L$LC72KZRQE6F: R+=\*8NI*&0+D:]>X#K%25E?I&YYS_SG>G*^<0&B\Q-\-80BRAD;L55*HL)].F5<%WTZN0 MAIAXZJTWGLN285&%'_\ 0ASB :3E6_;#W#%64I1AGPB)UY24=+3;N=RBHX; MU:[WRH.E]<[7F7P$W'BCFVUKONM*/^1DU;25WNNN^=,= '#9-1NMD%S/.P'C MC#\",P[&G0O].,F,HA^;.(9+]4L]A6?:_Y:U>XYEUS265M#QV$^XT]Q30[-^,'I*+]P[6>I7;7FRT030 M5@E.AY\^16GWWNF6ZS6>C3_2*CD_<4QTZ3IT6V.++'#UP!YO;%8_#1=Y.5ST MO8K'5%SD>Q7^Z7SYY2,Y:*CU)!'T Z9J3Y TED2$/^5*(N!7>EA5,$EQ,\&# M[)2\// HR7?-0HJZ8"6\1>P'*Z?LE3$X,V@/RY(6E3NH0&FL%P%,H7<8A]*G M:,"V!?\8^W0U5:Y9]\56*<&%N/*+0H6EXF _FKJW+;_6^!(S!7!Q%GA(K!(K M'D3Q' 64U(G*F_S\X<,7>T1+3+U0FG)[6K,EAQ.C*$DVMV4^L,B 8B@Y5\O" M4">ZD:9<%W21"GB8@F)^7GZ=-='SDW$08?&.E8/-YA]AA*MB!5#_91]:":7"15#_8A/,]5]>!%-S%S^*J6S[:ETQEL I4ZUJ/ %"5+L)QMR-76YEPD+B\H20>R"'R.?W%! M1[-3N';;HX>QTH"B6F^T&["S!SM78C;%!+X_F4?7-G(8C6!P\#:* 858HLVM MO!TVEDD6P-YVS:/ BE4G 9T*2UL?E18T&Q)B!GR\(P\RL_=%6*N)'\9.X56+ M'\_M[FD*]/!66!H*[9F5EDJQ9-><+S'H"5ND*0].Y4CA7*UB. _CW4UY1T8P M@_;R.CZT"3NINM75NUQUZW!IX;Q:.4UG)8B:5\AB+V!,H(7?L321J55:.")8 M"K8H%%^J9TT>"C0P]A>*]WVJC(HEU;%^E;L!++'FT% @4K1DA. MV<1UPKC M& #5G*7*="B9X^I(RZVIA"_1**S-]9([X/>F**BV9*NI TC5!&V)*ES98JP> MESR*_<24>LJK,1*LH]W^\+?(%.!,R6.=L8=H:GMNJM%8E2,NW%Y>$)>>,&NV MP;G$LKP)_*^I1U8\D1<$<_.U13M7+=E6JDQBB]BR^PQ'0A)U(W=V(/;NDVR> M/26AUYQQE4*-Q72I.+<]5F%!.CH;H]&DBWH83DE72&%Y="5;Z9JB:TFI9"17 M%*-J6S-;,[)T-E.H%Z7:9,7!X3_^_:+?.W^?./_,O*FIM%T8(53J_!"X:7B5 M9VEPK!%6-VW!<=,M#&?/TNPTFBI(CI)M*E: M!\_#5RF6M^33%M8L#U'$*:I05&9MSOFC929H9[7-+UE8;5EUX-F*6GD:+U5Q MV:T8F;I])%MPR5XO"N,[UE6]B$$V%6XGF!N9HR#[KO/J*IN#,%")SOFZN7MD" MLON!0QZ,:=BKY/Q/Q4$J'1W:;1>^K11Y+X+)Y3#N&#>XTFB9'P=G6FO'L[15W';V "83V2 I <;E_4U1P$%%,2@Z)_?+64FYNR%<*# M'1_M6 3X-8&5*5Y@_&:F%=NPNX)<5)F;$5MD7UC)KY4?D*BI=%7776<$!\A* MR,FNM%^40H=-'\5UI/.@I$VLL)&EI;LA-E(-5MFEQ%%1E=6L&DNKGOD/9;]_ MGJ/ MFR4=N_[F\\#K#VHC(PZ7CLOWR[(0:)9 M!XDFIG?(*6+K*>(.S4('?Z0,I OWV<"?@!,]+VWXI>>+-%^;<&ATN>-\B\R% MV_VM"L[1OS#N1PT3[>)<@Z/FF?BA^I/\8$Y%I%"W\<.VWGCE7B1=:!EG MGCQC2A($5QI>XN9.H>G17["UV\P^F^0%(AI&S\/HY]SZ0X!AA73^73 M\9])V>=;J*7)-C;C@LG2 :6A)IM\ITU3QB6/+LV[,B'//FU,-,'SQ\?9Z[FU9L"QZF;69E)5BP M>2&+.S,;V8">7N.--!Z;6>1LOG;9YM"ZH^L C2^UPN-Z7,A0 CJ$VW!92.Y4 MT/63>0Z$P-2O[TK@]1J U )Q$XA;\R%N%P)Q$XA;'<.F'9_*B20FC8]BI@:^ MQOY)_*>FD](F//+NQ!LVHHTWO*5-H+#[<+XJ+#_?_B[0@;%1]1O$GOQ]TT[E M,FS.5LN=*Z(P8"^RV _=W+NP+H5U)HU/430H4: J1@R=)MD,1RFA7+D4OA0S(3F^Y(/&>3GCF5.Q*8&.@VB#>(J*J8%<+A*3[] M(BH2D7ZP2RU+#$@(E0[P@=B&!FA/1/ D;/ ^A>VC.P[M[@:,'V4Z)7R.!/>0 M;G3-(1R.-/Z,24SO KD_K!6JT ;Z+,]'!JK6NIT ME-^VE:>U&G]8#7%LF^4ML9>5E^+= Y5#=K<*7/F"C7GP.&+\W*T$-SMA+2 M-% 0-!W MOEIQB OBFUSR*99;A:OX=UQ!KW2*\0-%^]@!Y!PYF/WR>=SI*\Q=.>& 6#F# MI=VZ^4CWFA*!_J#)_*,\FC!V Z]/OP\4J-75>!8A M3I*OVV+TL0*%6V2FX@8UG)B"Y)>&_H&2J]E=PJ/!=-58S !,]$FQLR#;%;A XL\7 7F YI;;(%$=+Z)@*-T-)QGFBOGHLU;.AT8A MZ+"$]W%<=YJRQ/)D4W@;=#U;1+E+&N7^[@HP$><2 0Z&%XIU!%W3;YLZZGA: MSWD:Z)<\;1MF!2^I01M.RM-"R:^EJ4&\0W46^?RZ\2&0.#/39F=D(LA>E^\S M6W**>H3J_E^$[AH&\=^]X"7LE8]Q@))FPOG(*X1=82X_J5TI]N#3>:ADSG.D M!AKZ3U\^,\*;6J:;A=4VDFR44& F+?\(-"/PYWYJN(*-. 6,PE'A!OU@\2.S MX5:_OLXG%YLEZ@%[_5Y6BI("\TCRW_D7!+[)10" ,G"/\#I&UYD2W M:M+RN D9/3_-(3^)44M&P%A@.<[F*(/9PH$RQ#P'_^:UNHI]=V7\3*90$,BQ MG1"U6TO4\Y,_3WZ*M3[Y9!@S3[Z"T7WIO=,JW8@2)0A'A1V=8+YH3NU)<#*S M19'AA_5?^AK9?/-@'7Q-S$_?8J(Q6CK_TG$$+Z.]AG@2$TNS'VODQJ6#(@K1 M/4(FDK3-@/^ !"4Z])HB0Y:?SK!BLBWG+M+Q$0V-M<"4'Q5I_@&O-]DB_&GI M5XQK,Q#(%9> (^?$S !^BG;I_444G[G N"$CK6S]4#!;(E1WW'O0!?RO^(GS M4<5!A"X=L9'AS!*PU5P'&*?8N'^LPXPS6(<$&I_3(Q!8OA)VLS-^N3F6X3LH MT81>4/C!JM03/HNAI?A91^!HPD[I?!]'-Z$/+_@U2@T,0K'1"G66XEXYB=5< M8W$$!W>U*;B"71=FL]SN0B$* N0ASU5A>3'[-(9Q?8.#M8XJ;XEMV=CNBOR9 M@@X;#RR\K%5JH-RL_:CKNZD)-A5'V^A[W47;FIXB(5)1BD@>9TG \!-F-NV%P3N5]] MS+JAF#>*Y54VO;+H&J=DV?$D4122_52K>&1S*[XF\(:#WWMUGVP.1D +=.5,WFV6^8W(1=R8D*#75C#+10TJ,U$*OCKB_LRV 2CTNO,L[B+T=$0 MMNW?/9K:M;[5N9B^R]@)+ M$5C*H6X*_ZN7*[RR50R(3:TU[I'AP::;R((@>X/M(TU8-W %MY2U&APSV@(V M*05E8/AS:#Q)3S17,*8I (?GE9TP,\4H?+A@_8O7U:!,:;G.8+8VQE] N^+T M/:W+";XQ>8?.%\G@Z@H6,XK2YJJR]4N\S$K7.VN)N9IB.JX6>J)O97 MF,6)VG[,@ \#BAFK.%ZBA%<\\_5M'%JU(NO,T6-%D\\ZD(.6+>U;B6JB+-UT M-5#0MF/B0M%/HJ;*KZ+C$C$9: "=.=P-=P\YK809.Y\BK,(6".@B7%*-0(F" MB8*MW[(6=Q@VD:;@6;]+0>A?'#A*MFT!!8%&3MB\1O%/MY[1#=Z_4V'KTOF< M:CFDII52MS!>--4AD:)X93?;C Z=8,W\,BMC!=FC/_7'K&_TW$[YKR'TA:E M'&-H OMS1@/84WR)^WU-,T7A1.$>JG#:%O@JU,$*%@>B_ 4>'S@M!X.]?K4& MRWJ0B:))IB#"_2K['B5:Y%;D]A$;Q6;9JYQA^>J@Q'Q4E;"6';P^A7>7$=HV M?:[)IF0:7;OO<&%W_U_L6>9W/111""*"@N1PT7$.:/M-)9[ZR_EHRL+_RHW! M]KI22QTCAUS"=U-C?E+8F-'2";.YCC&/(>=-2Z*Y9C^]S)W%-^A!X0#BE;9^N=THQ>+E>>4&0E84RF\S.)=VS%#&# M[8ZDN^XU5@Y?.[.ZD'^&_'5R'U*-A'W^_@K+9I7CD-KP\K5>;%7,QW2P85.< M&./XY\:73,Z$")[-H=U.9\?Y1U[.S'[F;FD(KUW&*C1DW&:?0A&Q \" ^U'TL.TQ5)N;> MHWOIE!6)2K5SUIG!P^,-QD,Z>O#&]]%8F"TB_&QPF*U#/NGU.F==\(\MAH@< M]%ZW<[HO;>:+ -@#^-3PQ^"/OS(L)Y@2R.(/$)4_F#65_\:S>+U6\]Z^;_/. MOOWXJS/H_-O_^\>'W[Y]^O;AVZ?_^]'Y\-L/#GSPB_W[AT]7'W_Y?/6/KS^" MLG__^1_?G%\_?/W?'[\Y7S]=_:]84DXEC!);F8V<2PR^6,M)943P?@RL1YSD ML5<;!>U8AY1^LY+;2)]1I<^D1*1;JJ=1W)A!%]B2FER[E?J8H$9N\5:(]5YA>JT0&[2X"0[VQ> MK?BI$C39:/G:O1-_KNR%Y0V!KBB91 DO4ER^ M3BE2$O$R9%-=%>)#.R',8Q"IT#*\FR<7:HF/=9R/M;?)5;923JQ*3<)']?[6 MWB\13_^M":J7 FO&!:#@ =&ZT1EJ-?>2>K9(B3 H?+42)?U=FTM[Q%UAFB_E$%+/1BI@_ &E$%JB MEZI:^FE62L72MV.M\UKP%"5%;S.OWL?XY!O-5 $%K2#U-R_XD$1C7^6IBZ:@ MK2$JQ@Q %&KL-U5?2*/H3^*3X\Q"3>.@^@]4@@UC! 2=J([(%GTHLOABL/EJ>;TUK;- %T_3H8N.-O,HU$M[ M=)IDF-K,Y Q4%*]T=L)C4+$-)'J:0A Q% MBRG7&CS)D,#-^'>^YZF@Q)08L7Z&*-L)IM?F9*?^?*X]U!OXQM-\%VM(6*I@ M(3I2D5*M#;*8@FU;4:X/?V51RB57&*'$G(X64\ 'MRST+93XS2\$B>CQ02TO MF_F6Z62PW"4T]MVPE$;M@(4NK79=$TKE)&Z[A5M=("L\0NC\ 2$:FP+7A(?_'C)+!6E M"S($_\;>"8(%EFLE68T3E4-P5DN61C%XYIA9PG$1=Y4#HQ+^:$*;+#>X*M/>JA^<)[7KH9QF*IC$&);D);_?;'+Q]SOBO" M4^)^X6G$T-/WH\P'0\@_1LS7=&E;-S<<=(UAJT552M0:/R_$ZI]!*?!H@XZ@ MIA/X,3E,X/$Y2&+MTX4C5A)"_ED5%"Z3J5-LWZ1 .Y>)T3=+U[O-LZF6(B(7 MR\O&VK:%6B86.%TN#/MQC%3;57HLIM?,:%KM6%;OCH_93%N:)QZO.%0SYA,2@9>H^Z*8N89 ML??XI,DY=Q>=VQ0772:XR\I5@E'>_/F2QK#^FY+%)#<&<*TM.S2S5*-P+"(< M"1&I5^OD<:%=&(,/N[2/=?4XLY=_6CG'<,@@QW/?6:VP)55[MV^:\WGDX0'\ M"\&&D!7L*0>YFKO7\I/=[^0,VDT7M90\)9=]7@Q%P2;X?L\IMJQUW)@F*HW@:50Q#@7Y$HGRZ!SNLXSG )\HU?V MNFT!J'*A!)R+.,JF,YL%N''.%;E32#.7)XTDNM0ATUE&"-LG38L7YY;I3 M^7+3G\S[! OS)1\Q-U]="I/L6$;\)1D!3JK':)N88L_$QI5C<@@;=(7_[3A7 MI=1(@RC,QUB-U PQ*D"S);1Q9:OD=3P(+A,Y69Y#() MZS4B39D/>MU,&=*DPEDL'+L<^L^7QIO*$.SD, PZYT>,2Y$+9KE@WL<%GEP66G?]!^%@4) \^7KYX\__H!@MC:?4GZLY.?^X">8\8 .Z4,1;Y:.>SR<8;@?Q7:U([O(V0_I6G&;1[=PS94+"^*\J>*^OV88W^@-U$EO^$9S+WI#S_R5Y3CPJ^(2ZT<35R?D/;RX=SDX M==[@0Z_*7[UZ:VX4J+?,!U.JY4#NJ[W]VD3TX7Q?%%7 D%4NSNZN2X!CV3*; MA&3$8*XI*K'CY%'-L7SF-]Z8^*$AT.6P6UZT 9,A8\4T^71GB.%6%BJ.S.9E M*DP_>&XR4]L=IZ2H03?!JFH8>LI&[KD\BB3!?R9$YD+T M;>SA8^/F:MU$E>E<8\AR;>W@ EM0$@8*AG<4(M=.;'7*GL*M\A 70$I1M- MT$KB)$! +68/T.!!#CT8=4)'P%A/56P6U"Q5(2QM)Q/^7H^5X6OD>W*N1LE5 M&%1>_(<("0.K6> M.N\Z=.@W_!R>GB(A/U7Y1,)E,@;%/F-)S+C?K#P99\;YC/)4*/E7*T_MULUO5)&6=JTP*LLHAQ1WU4G>(L>F\&8I;3&= MH43?58Z>?DKH QORPMP"$W)S;=',?)]<@MGX4W.4=>T'[L.Z_0A=D8B41*0D M(K42D>I+1*I1*0\/&2*2DM0F1^7M?">&P\$CY^?+AZ_?G$^?G!/G\[>___C5 M^?3;3Y^__OKAVZ?/OQU&=FCOCP".# %'[C3VH4FANU[GWW[Y\><&1>P^_,(Q MNQ]_^/3;SUN#=NUPV7Y:O58T]>U+YP\B&:'#>'ZS;8JE!^HFR7QFGJ"2-U-[ M */H$M/?%S+I4NERIO"]&TPF0/479-?Y5<5C MHQ^O;C]U\LD!P.ROD--RSE M9%).1S!Q)L\$451H4R)2]:<.3=Z1\VE.I.M7&.-1R(7EO/$[NN.:0VF*#RL6.//30B)KIV_S;">' @ M#,_Z)T..&A))5/?]67_H?,A[3Q_VWG- E/V_CL(.!X QXK\\%U]-X]]M5&<]N*9Q':0X?3;GF)*<@YA6=1%&L5_(6I> MJWFI6E$92O%_T1*\J?C_LY@*&_>+2S,-CX(X]#MP%*;N;NL!RPN*19S::.<5 M._YP3.MA>"Q41GK@8?M5?]#?@/THGJ-/P]3WLOFB*(R;H7N!U03Q(R_C".&" M:PV:X$I);$HA7O C4+2(,GJL#?:.?T3EG4FN:" F2FX+]U83U,./RK816IRN,K$PJ-IDSV>J<4YFVL+.NKMT5@R5990-Z3(A2\11LH5VRD M.9C)37O134CEVS "NCIV$)'RV(LZ$D:PQHA:,AQ>.3]!WK6RI!G9H4D;OL:C M_WD'_W?B5,I\KPB)B_DGFE&L9+MH-:L9(Q6N2YJ17233I1@C[I\88: )VFD" M%453TK*P\6N7]%448G/%=SBI.&<8#>= "K>;$NLAJY\-C;N\$5-AZH1191C9 M\),9] QYHSA>F8/28+JLL6UY%/H?"[I(N?:1SV=B6.C&:9*[2ZZA<:5DX2PP M2%?2/01*8Y%M\ME)5A*DL+A!&PVFZ[K$L5Q4/;7)A^1Z%5JVH)M).Y5<+1X7 MD,L[IW%&P,;$.E7DOS.S?,YUDE]_W/<*ZT^WFHHF M-,74,BOTJ\[%!G?!7HK>(??XN[+;?UJY#M>L1VS2"C4$7U-?KY3EF&:^I]BE MRAU18AKBS *37.KF^==SY=%= 3014\DST\U5<\?JM^D&W%@8"X/.Z>/7XO3-^+2TZ/ G%;SC FN1N47> 5#Q*UC$(54[SITU]2L8>6$YABL^W?PE\AN MV%N\.54$3?+2([!%$QI\%6MM[C>ST#CTQD#24DS4=<0UV>,,[6?"]Y>4)V8, MSQJAMRIM$WB%Z?'MH0JL2N,2V WAAK<::^;RHG;)S%^8)N(URS'22_"LP?"H ME$F>B'XJR.G\[]N]; DPN@+"]+6%;])0R(1."@MJ^TD0>F.0[-&CL@4:Q#QQ M!X[X=LK,YK)HS=:DMG?"L&U;SQ0:RJ@Z0CS5I5,425SNS%OT PI4X*N1*0V( M0&T&8E IV;$A=37YST8*H&/8V(@J'L,9.N<>R/OI&E;7)-U(4##/L=:(%,E7 M(R?MXHOIG-NV3)"[$7/M;B "HPNTP/\+)+W,$BML@4V+!ZL_$%3PA\D=:%(L M^$/GW\HD?PWHE_/3AX_?/G^M)PY\=J .RGJ2CRHEBE*"H GP38C1A'P7-CC& MP.37YBN)'DPQ/34'X(CVD2L^>F#PID\B#GX&'D,X(6$+EQSYTG%>8U>?\9!361N;( M??L08D9FCE/\\O^W=VU-C1M+^'G/KU"1RCEL"AG=+VRR5:PQB>ML8(,A)WER MC:01=L6679*\"__^3/?,R!*V62XVED%YV "6Y-%,3U^FO_YZA+5)(5LO^([; MN5F]_$R-MT77D_WA34CO2Y0I$LA2UF% M%=ND*)O>7G(*IEC7/\B:3"):D&)V :BE*[VF1<*!"/+_6\GZ*AU8CANFV?Q\ M#]Y4EC,6;&^5$G-Y0 )87S(=1J!^ .8ECW/XB1 "*1-Q[(OM=_,A:LXY_)!W M4X@YIS;[!8HPBS9$HIR01QILZB5I*VKPXGGL&TK7S4OE"U);YDPCBX'@CIGQ M%^1Q)ZB5,HA+? V_4D:GHED2+PJ=,^1RS_Z6=RN#P7!"(UB .06O9+HHAP>2 MB &QJI!/6T+%,._U4(&QW?'C,^G("T:&@U(=I[2B=^QFTY^FT9#KTY EYC#1 M<*_PU>2Y=@$Z%EIKBSE]J3N$(SL1 .FQ/!DK%Y0OJ666[)=S1"M&PO1F.DPE M\ON@-"7(L0'@I^%728MQ XS4X$V1&T%M43YU#9CF8T,&F'EQ' -%^M_?LPWT MLH%>K@UZ:3;0RY>#7C:&]\F&]RL+_+@/=C081LS=?+PIKG^/N#LM;J$# 10V M?AVF$VYW.=KDAGU""9YQ2$;9!3[>DJ7!=$6*IS&8\R 9QP14$K4\CU@Y7>=W M ^!/%/'-;3X_%^+N,4\6%>ZQ>%#%O!8)@^(O"85203AQD>F?$%N3S4)95;64 ML>Y G'7/SY\*PA'!8U7N6K'\?*KQBANO>(U>\9QU2 ;$@N*';6:VCVMQ<%!R MA(%DF-*BCV)":534=B\XOSS:%"[]JC!VLIQ^J50^B^II6 FB)P$"%:M$14#G MR\F72@70H/%XM2S[@D14W&*_+CS*F)?2(IO6D$-5"T13H7"P@=< )!7 (N,6GX^EH@=* !\ M=T?(MS&I-EL<2M>WE,0>8EI*>-AW>QO"4\O]PH%!IMPF42;>!%-HF0@$LG\" M[P>U6[SC#&*'V>,XL8'XN(3RXISL',/(WRB=(@V(.-(O@,<.T/*VOS'8^$0Y,X;WPTY*B M)A-0*?,!(^'858#!54-].\TB)6N?G$RQD_OYLV! MBB1S+-7$-T *L)$2ELZDHMZ-L'R2B;-C0#(V?.')%R,'$V X\$V1H M6,(HC@#DH2",I2B+$%\N:8Q%T^YYZ01B;"L'HB,2@*L$K6;(-5VI/MY854,U M5XE$?UF8#@, ![ B9TQW*P;\](5M?*5[(.!B)3A])NI*]CY+;/&>!(A5 M[C$*L/P"ENV^AW%>-C(=Y@A $U"/O7D50@4B@Y ))N.(FN ,7N#E+I)1[VIM M>H.X7C_BVNC/DI1"VVE@F>QG9$2S/I#WY;=]$:/5"(5MM-Y=G5W4"(/=^;7; MN^Q<=$Z4WO'G3D\Y/U4Z?UQU+_\&%.C51?>RVT':7^6JUX$/!7W'"Q/N+DL< M;\D%N2I)F](#:0/5U4&!*_%EONVJN[-)\M(,AG42$4ZI\H7SKS2B\+;)++O MX)(J7V90OITUZN*!,M(@[1JDW2:0=E:#M-MRVXW7W2ZHIF&2V8]H3* ZH3^; M3A(6&B7#2=J?MZRN49!DMMZ==$Z/KSY?UBA0ZBE77\[/6%1TUCV_* 5';]UR MEYEBFKKTNFY_J\_>@O8S$M/\ME_J:5"C;6^UWOW>/>LHO1KM^N/3SN7?RDFW MU_Y\WKNOT5"SW1MK7Y_M;O<1&](O 7!JM-'MUKN"[KE&>WT%\W0YTGRX%+'I M'MX<)9/D;#:FZ3#$M3GM1Y$;V$[@J7'H$M72'$/U?"M0O3@((C-P/-L/]S"U MQQ;W@L:_[+7[IAY$NFU9JAGKIFH%CJT2*]#4R'*BR*=![,?NGI*0,1LA#:.C MW_-T=$G3<78>7Z;1<9I>LF=]&DW"?_84FH5D"N*:SJB(HINL^\MDW??)^_J7 MOG0?TJT* >*\^P:@RD_9'8JG_K?<+V1%[R^\5-?4/PZ48)8C=$0VI5J6V9VK MU[+L^2W-<=>H2?'R^EC8A)9#Z4WM4*W9GW?W9[ #^_-TED))Q0+33+%7V4[# MA+VEN?OA^WWS/1PW7Q0U8TJ/[=-]<&7<#X;AM]AE168_')!I#@T*FYW8[,2M M[L3P=>U$CYG^9=M0=Y7VZ87"]R%<]/[A1E#$F-6PT[7\5QEV=HHZ-"0@U0L" MTF71P_.==#,R?)M$H>I'3L"<=.:N>[;MJ@8)3!KZ=N YSETG/=1<0_>=6+7C MR%,(6VZB_#X;(?U7(7F5 M&?GXG/CL>>,[$-2[0'!:L.H"EG(SBTXLXEEV0-38<#P695D:"\HH537?]BC1 MJ1M9"Y'9DQ?]I@:4/X$X/N7E&98W5)#\3A#$KQC M' C[=L3B;$PE^)8?^2X+OR-<:==5B6826.[8T(B-?91M1WR J!E;&D1*[20".89GDM5WXP=U:)1H'I!%+/EUS5J.;$>!_%Z# 6N M.?,63]A^V\KBGM"06UY=1X_+K-TJ'U3*)GDOBA&B[V93^,LS1> !+[%J9$)V M3E/1BXL+#S,4GJN[D6KX 3,F3!RXEV%'FN[&4>#8$;DK/('/?$Y+,]70U9GP M4"9UQ++8/:9I&*[O>H'G+0K/'%MV?'U]#%T^CL?YGC)+AORY5_UL0" !B'2N M8V91?MG3JJHEF8W5:(+='^&"O8^N>>#8MEQ]^6I;7'Z%OX-HM3TO2\-.P:5S M2-YAP>9A \A%(=DFEVP+^(>'V3+[ 6V4H.(>FQZS6S,F;EG,JW5(' \Q\(,B M7BC0SVBI&!!C/J;#%5#BJL["6DD2/%\R[Q+2(H;JASDR-H3&OTPZI:CHN4PHL1 W\X+G9 MHD+*I1;4VV514[9N^%NBVK48.96(1>YH::#&+KRU*J>L[ ;-DZY3@ MA\5-RT8:^B0,W#!0 ]]B4LSB/14,KQI;/K5M,PJ9'*]9@'=?[ZK48(N.ZG[N56$*Y.C?+^0# 43T:CR3U'>0-TCB?3C!YEE*TS>5WSX\V&>WAV"M$ PQ4N7X1M[/V[BCKBA@S\L6="[WU[> M^6X+=O97"BV-R4C;0@18^4&>6'&/_3S!HYWH]PB)X_ ]MY[W4*Q@FR M$F$.:]G,.N6@:SI3]2-&%NMA"O/.,=?_KI":]8&@[: M]DV_<\FO)X:G.SK^J%N:Z>B&KNFV;3B'2:[#Y[[GWN@0ZIBJWAKDX]73&\?+IQ<' M&T$W93S<.D)R+PXZ754A)XZ0 45T0;,X%T.RE)\O]D2EM@E"X6JP_X,^9-+.OU6,?%X3!>\9P7U9J1 W^IA4NDQ6D)HDD:9;4>9&;NU MTQL%MQ$%9VQ5P7VZQ88\#U-E1J/*&E6V5)69N[6G&U7V(%56TF.:;VNZR[8D M^]$T[,,X#XY**]!G\]G@G;O]T4<^92_7< F&L MU'10!_HT58=I3>\QNJY1==M5==:30M!&U>V0JBNY;*:AN667S64>F_5R(6EO M"H!5FJ#6 (0&@CK+ZFS12[-6!)SR%P[U ,6(W2.D#NNI^M-4V/$T'8X4PV^4 MV.XH,5UKM-A.O/8:'#9+\VS'% X;O=&U_HNIKPXV?D(UZ&G];KWUHB9YL>/U>S3):=$@K]$D;UZ3&(U/L@MO?5>3&#O@ MD^B>?[>J-)LFU?<30NR Z\]:+BJ+\+ MTBB.5ZPX=$UO=<]ZN[6+MJ@[=@LOVD7J2.6O3Q>?E6X"W;1#JIQ,PAF>N\I> MOIS<47P:R4^C"1MTPJGP*4E%>W'V&": O.NU@I?D9I),QK&"?8CJC M%P[HF"C_@PQ(1^[@S\/D'Z#F+;1'UNS9;>Y9ZTU*[MOFEG?>4C-K/]<#5SEA-" !6+)AI-7 M\1<7URW?='X]W>;OJIFW,A$<_@KH!5 LC[3XC;BM#7CT5F:B^QW0S-;,5T67 M.T[+<=;?@.*I1DZY8]\:AJF&86H3#%-.PS"U!8:I#4H1$D=E["\DAR:I?<-Q M?-]: U/"ZN1$Z6W,)TY:K_OKV?'EU45G%;'/:Q.*-\E/53D?*\>R:A12"TN I"8Y-Y#GW/D-I(O^O_Y M%+B^$7?:<26WNSTS9^R[LR=*+X]VU5U:26WOGHD;&RP25<4QBZPA69)J/OU! MXD6 [R)!D.S1QNY:+0&92 $,A.9O_R7__6Z"] SCA,_"O_\S8?OOO\&X="- M/#_<_/F;+X_GB\?+V]MO_M>__H]_^;_.S]'5S>UG]!F_H(6;^L_XRD_<($H. M,4;O'C]]B_[SXN$./;I;O'/05>0>=CA,T3G:ING^I_?O7UY>OO/6?IA$P2$E M[)+OW&CW'IV?<^*7,7;@]^C*23'ZZ>/W'W]__OV?R/\^??^GG\C__O['[_[X M^]__Z?_]_ON?OO]>Z1;MC[&_V:;HG?LM@EZ$=QCB(#BB&S]T0M=W O0HF)ZA MV]#]#BV" #U KP0]X 3'S]C[CM%\3;R?$B9#ZL0;G'YV=CC9.R[^\S>*).O4 M)8(X,14"N'[_QQ_(Y#EI&ONK0XIOHGAWA=?.(4C__,TA_/O!"?RUCSTROP&& MB=$:*'\F"Q(F/WEI?)X>]SC1F+ZNXN"[*-Z\)W]^#W\&SA_/O__A_(.0F6LX/]\D&0/^B#('_T4KTMI_J']^R/ M:E._9@QDXZ9D,\DQX/"P^UA&^>/W[_%KBL/$7P7X')KAF&[LY/SC=W+BDS@; MUMI)5K0S^:4V_$-ROG&/ M9*-^1XA]@\+2KZIBRM_W&X38/IT&(?=>UT&(C0;<_U#%MW1GMN*85'V(XO,] MAW_4\BW]WELSS\E;O_U;R-_P_9PV*85/ZST.T@3^53LMQ2^RVUJ(\PA^:+\. M\A3K**MZ.C!Y^6_:R:P=+IVW0>'0*>7;?%1U&T#)!4G_G;3Z\,NN5P,?XRD? M8G[VG3",4LH)?B5^N=_[X3IBOR&_@[/JIS@*\!,9/((?OCS<-BL#[U/G-0JC MW?$]='G_0/[??PO]3?QW$7K78>JGQUO",-[1D7R#?'+'MV\NQBE&ZF&B#OI4 MI@_?P_\095'1&^6/3N@A1@TIY/[E?9Y(COPAP=XR_%?Z\SXF6E[()O"._()W MYDUJ.BK;\:1^V; JN_%?BO4RO(J/1%BJ:%Y&H4=.4^R1'T@OWR._]RZ< &[6 MQRW&:?(E= Z>GX+V"0O:J6?#VGZ M96$$:CMG#92B2-.'3'RZ)UD\.W;X=3Q M@^0CVP+&J#5LBX_TD\_,R'/$^,%F82Q1M$:,*9)<62,D^"*%,7K'61-3\&W' MF#H@[IV8M-OBU"?2=C\M*L@T[)$?.AX=&K=OWXX20QM#_C59KB^C'9F>+>CJ MS_@N2DZ[25I2:M@>OV^Y/3)N<*1H_! P?-L@ VR0QS1R?]M&@8?CY/KO!Z+! M79'!NW[:>:.TH-BP8?[0:<.H?'^'&&>X;"COM]-ED-/%2;8W0?32XU0I4FC8 M''_L=IH0/H@R>ML('336*YRXL;^'L2S7%X?$#W&2?,AKHA6M:A;TQQ__\/NB MAJG0@;5;<4IOJ]5RM:0M\.AO0I^/J$>.>WE6B[$NS0 M21ZPB_UG9Q7@S[CPW90W:EB?/Q;7AY-!L:1SAD+\]MFT72PXL\(TBLG-4+)* MN;\V+,__+"R/TO]M6=H^.L@)?,!D]@Y8?6$H_*UA2?Y46!+>\6TE6GX@]S'> M.[ZW"+UENL7QY2$&C]HB27":Y#^7VK8-*_5C8:4X-?KR$P$]Y#*"R*$4WY;P ME(^)^=1+OR7^I_H%^L/W%6[ZMV5H_25%>QRG1W@6)=KN'M3;DCNGJEG#\GPH M^7X8(?H!84'J[1XZ33U(G7 #02CL%",+0=;EYRCR7OP@*-BW3 MW/G.R@_(2'%!GVC?L6$!B_X&3AH)VO23HM01)X\4^F]+W=8O6'B9*;@ BRT: M%J_HE2A[AWE;HE.TP=N0M,5/SFN%2JC^O6%YBDX)UAG1WF_+C,HG?,+A[U-9I3>EJOEQP_;IT8%U:K\/?Z1?ICT;E!*+"0($(#42)O MB]/Z<7B5X+\?B/C7X/XNJ/6%OSMV'=^X1OH'>,Q]NJM]=PO /5+F[#FRAV M G="SEBU5LT+!.)8$=&8FW!3(2 MX5&U5-5-&Q:M?;3'VPKV"_LH7[K2-@UKUAP"\K96)B,0RE>N18^&=2QZ6IJB M$=[6M4=8@KJ,=0T:5JWH:N&9A&]K8R96H>ISJVM%M(LP$, M51=?BSX-RUKTV;0(97A;WL&>UBNUTY.Z-RQZT:%SVC/[V_J?[-)QR'0MU^59 M&%6NG#9]&E:ZQ(4#5,&!PS,Y&&&D4'Y;73-OB16K6M>V836+;ASVKK@JO"N^ MK6'/EZKRQ2MOU+!J1:=.\$D9-,K;ACAE0[1[_CAYAQ@@V[!EB@XIY:U%X8HRMDCP M?=M%YJZ!=8-!DD^FXIZQ^RUX-*UYTD"D)OF^+ M// +$< =>X< +]>E?ZY:^1ZDZK?#GXJ^M\H7IG,D6,+%(9L]*,U ^WS;*?UW MRB((HA= ,;N)XLL8DR\2='H^L:TW22LJ#?NCZ,0K67@D.2'""C%>S P!_90R M>ML79DZ0DVZ,DPDT[(92[U[5:?%VDXQUD]1^^+TOEWKJ#3NHZ#7L?M\HQ\XZ M=^R\;;)^X1#9^BN_K]A )_1LV!Q%)V0A=$+?%'[VY[5/TH-6P5\HPJ:ICTW3E8E_:\FVSF-HLIVD3IY.HWQH_GA:V^.8/L130 M*"^-?+-*\[47M89-TBT(4KN(_'R'MRUC>,N<@A!8IOA\ ( MX?3:$TF[+M4O,(.S;-A79=G!+&P?JV'[NG MH<-XVU:]X25/CHENV[=A:Q3]O"HLY9O29'C%:Y H3]X!76DU[(BB-[<6\?)M MB]C;(M(@OMP2,Q8GM^%]' &0D+@7'LC6Y6^_.3P&6O7,^0#G[H'-R7)-CF+?)?KCE1\< MR(>H]FBW);K3;=@OK?+]=8>&,@*:'@YCH.HI'T5AM[UM*E.;:D'T?P]FV7_& MC]@]Q-3A=/WJ!@S=QM-.V!U\00HZY*;KN.<-L&[9DT9_;N"75 :)LA$@, M$:W)&/,;5VQ7H,[=.&^;UAQ ^TE&TBE]&[9/&3A!#MC]G_X"A/\'9@A=AB#\ MK3"G3NQ"SP>\1OQ'=7.\KN+@NRC>O/?#]+WG[][S-N^=@"BXKY3"-L9K;3?) M3A^___X/E(27GL//W[TFWO^M]$S)+O]@'^YKVAD9&?B9%#)NR.1:W !85$;-J)R3T.!"D@+/U"QJYO6XAG-7X]BF:J&$ M.)$A'' [/:*JUQ1,=C-6^"AKP S#$Y= [S2R6=C;XIN6,7?"3=:2D#U]8Y6> MI%XHS2=G,@Y@^%G7G HJ]0E*4F5?JZ>3DIUUXA%5TM/JR&O20TZ4I 4EJSNJ M$*5^XJZJ[&]+BJK(ZA/.KD82MF3)1>:=($)53WMVG1[9=8H!5]YS6A:I^*]I MPS1/=UI2BX)C9F76J=H[)R!;CGS6M^%-%+OX5-GJ^]O3>,CUG="0P%,%J.PZ MJGU^NA2-1,:QU4\5I*[W%*S@4^5I3VL$B[B=,"VZCFP=G[XH+H)WZ'>ZDG7 M0&?Z5F?!1)'1DZ;%',-QW^3Z3(D)VO;?\LQ(?!J]\6R,=A7QNIL?I] ?U=(R MM.Q=24\V%+NAYME@T=FM^$[!$C2S4QC-IJ1 MO0V'ZC;PL?DV;&8GM*4T.0O>V&UJCMWDYJ@%^.N \=@-/,=Z^39H@IU(=2HO MY@9GH">7J5OA&,L-\$M"0_=GQ'+?A>W\B/ M%L1'\M.:V?H=B(XD;P^DM8Z3T9OCZ#-E&CZL]T0.,Z"Q8IL,W3X=J)I-EO*( M">F!9KP,@UPPZ4D94J5TN@UU[20KBOMR2,XWCK-G0\78V[V_?DT!YH)8R-?A M88=CCJ:5U"9W%>BQ\0=I K\!XDDF";#IO[=4]* ?V?A#O(%;YLY9X1:X60#: MHW8#Z*$?SS]\//_P1SK,,FI##/I)QH9OR8_R&Z0C_O,W-0W?CS5H%5CEQ 1D3O3CF2>^=8(D ?2A-:*.KK6>[IH1]N+IV] M3\X1)=>G<;DJ"1@14ER0'O:9?.2'3"SRC_]F2?+DBH\QT8^BA'#_W_[^,O+R M"];0V/ >(S- ML3:3Q=I&OLKHH!5;*'RAJ/MD.5ZK2;@9Z]GPA%XS'[%K5?( M,XP3)ZC8,GTH&EX4F2)_&Z8X]GRIYE8WRF*TB8(3*7/I'J^4*'HA MH,Q4B55H-Y[^!>KTYRATG63+7'1<)ZK2KBK;CW@ANH&3)#1PE;K\*V_$?+MQ M-\I%X;TJPR0BMY1LPO'_Z 9OM-+[$S9\3O^"0R^*K_ ^2OPT/^RR%N-=O^1* MP%B:ECQGJ$(Q;]EI-&%J'HHSQW63<"<2&>]SDL\3]%(XN"F]+,B8^:O@)3&] M2Y6#+A1,6R;9'4?,#!X=T\8^:=//[)(D<:HL!_E7MA3D'__-XPV6\2..GWT7 M+U[]_ =?V6RTO7,#93GPG?],S6LM:$_PE@HHUR).H4+#*&\WVJYYBJ* *,PTUOD36?SZ:ZJJ]7BW MKY+==!4=5NGZ$!0?3>ONXQUCF3L''][<#[CE^L0QYMC]7UOJRZ]5EV-WP\2$NG7*/YM#;!(Y3="2;L1PPL8\,ZQ_A&UL;G5Q])+ M#&="0"XG_/KO^)@;:W6[*05QY,(O&IXB3R PWB7'_"<747A(<")26JF5Z+)_ M5%UKS1U'=0)R14U]S:[Q]I6U-J^*DGO"V4 &[;,/11>3+' I4P1*7<6M^T[ M%7F]VP?1$6/NY:KPS =T&/19$E2?3>C_@UB[U&(_P6EIDM>$SAENL5[A-29? MDD@9%!F#.CAWXYG3BMAHPHLW:>6AF@P-,A426OQ+5BMNNN0Z$!K3:<$6@QXZ MM591:5/#)Q/SU7(UO=Q(JVXWYF=#QB'#Y.*\P$1[ M5Q./KU_)5HABCURP\9$Z5T&' 0LV"LC0-D+$VITU#$>K7B9X 12?1[E_*=_" M\$Z4EI7 AJCXIAL:&QZ5HAYRK9UIB3RM&!XA6?5"4!O!SU,6LM:'DM5-H)_Q M%?N@I)'A2?_+ZQ-9R]]P7'T;Y9N8/A:?'3\ Q? F$_7^$,/"E.['VO:C'8<5 M")3M/?KVEC2W2W#+5UQ$Q;^/]Z$[,13.E9G+-->[ MZILN;3NRRD84(R66^Z[A>;R^SZ1$J?-D5+^/.07+CQ"PB)_KD^"'X^S[YH;\[[.Y\\C=B;Y$- MOO/3:\?=_L?!B=-RK:@;H:D%S;,C7BGW<&*@?$E_T[8*V]H)?[>EBA]1'SXY MX6'M0!1E^?*TZ3;Q!^]?8S\E*M*ZWWMW1F7$5X+B(W66*UG[^-&JZW@?%:9> M!(BC<.+?L')^U;H:&[N-)A! +-Z&$)\,Y]H7>''R+J(XCE[84YKC@OV_@RU6 M(=LI%$;]_EQ:A[KT':,^9*QE9^/II<3(>,+Q[C,\C3.OU05VX"06W\7">W:* M7LY3>X^992->US[CM/Y8*&]K>LK))4$.F2B -&XD Y>WF;$Z0,%!'O"YB W MP6%WH+&MO)YZY5PV=IR:CLS"*TY3C7F?\'RMN-'P4#*K1_# MP5Z[ M7M1Q/ADQ/L81)]%^>2F>]P2KY<"#JEH WD4F;?]$44>E6:5U=J(][K M[&V3^J2X2YR^S>M ZVS?M?=9]B8[VH3 K>$D6_K4YQ$-Y?@E@0@/:8;RMX[J M8-,3"(R1(@6QO3Q6(ZG,QJEN.V:4E+A\&&@ST:QBO 4TMV>(]L$&3"0?#J+=:REB.^#3I> M%IA8FHZPVBY6E3<*3X;C/>2B0OI+151( M:3/C[R196JRHBE'^#%+2;CSUL10\NC(EO76WJ865G!9#,BSB"KCFU5U0MDL: M>DPH(ES"#Q6JQ;3//:DF83IW#9+C H>'8%.^9;-?UFQ$/Z6&JE6KJ92W'?]N M8=\96)512,$>JK$[ZON,$13-_P/FXX>FB&BM[1127LH":K)""S2BHS%%OB,U MT\JQQ-"I@8#(MYF>I=_DLVC1<53<4*6LPA-A5?"-"%!IG5I/*VZCJ! M[_W$8B#Y#[K]46",D>G@Z"0AY^^N>G=6M9K:DQVW#3J%LQF?5%F.NOKH+;2Q M=%4OR"IZL)(W@9-']RS^??SX/MW'V9C,W-QO7*#28I'(6@6UOH_Q>(3PVO.3 M*/R2TDG[2Q0 M"LD*->H$(V=3&?QK/;9<523XUC:;FK[F2^MXB&2T/CW$0MX MS&H-08&AT[;]Z>3'?##('LZJWP*4-J8/[6/HU!S7V5^G&6*K.-N)6H%CUT\J M<1(Z$)H?T+"* '$;,@FKYL,HC]&FZA8FBF64W'*50'%!%U<\A#9W,CW*P+T@7V[@ M'),+)RQWT=8T'&T7_HQ#B,$E!\["V_FA#WX,,.CKX[F;>IG6CUF8'$UL@.I8 M)3DWU>U&K^(0"47VE%(.%9W&B_81^C?YH+Z$$*EX&3C^CD+0LQ^\OQW8VQD? M:W4\4S=:AO>45GSFB6@/ZW5RJ96B*-MA+7I-[6%.Q!OP0 KX9CDL?==WNE84 M39^O$;'I4F+D,1"*MB="FVX3=?O=$SWEE9RL[ S0UJ&31[".WD3 IEK@X=5T MF ;$PPDV:W._03WCI1IG=;OQII<=,XDX9YR@\:FFIL<$'O$A8JHI5ZNL[=@X M]J7H?/6"M.EIWEY03[\23-_*9N,%%Q+:R[7BG:EY4RUO:_JD8!T'P?=?7H*YI/Q*PY,7&F96?C/K9D6P&@5/S[Q(+56\<<71S+ M"=2H6T-R'#-E5/7@G(:LW]AS$H:X@"DE'X^"FMC"$J_H:!RX]=GW/OQX3RY/ MO//=^J.[38_Q] AR,%3I"_"G*>H%=PT1N*VZ6@U$IW<!=Z4A5#DTP;Z4AL[@KJA+H#:QGB6'2\R0BLG M//O1(0F.O.2NB 23T6%)BX.U'T'3Z4G.SHF=3P>*=E83"EC:;D1;$MP_<%_6 MQWX6VUDZ1*\BEP) <$S)X/B ]^2C*CD_JUJ.Z#KII:6_U%TK+&AVC.\VIK>H)0$*G4!A-S LG %WZ<8MQ>A>Q%_(: M8ZNR^5#X^1)U=K%.P?L;)KZ'(7Q4GOSD=ZR<2*GWNPL=^V%;514SY-]&QJ06 M]4DJ-#[J*[V"JK$X]))E? 7Q1A6O_@8)CWR;_AQ%G@HS]1@%U47B*CM,)#L M1M@JSI\VG,2IW/J"'2;(]9*J]>^3%V":G*B.A<@RFZ M*WZ.J_.2&KN9?A+.7A)%^2EX_?@++EQZC5Y\R%\?LV?VNL>!.!U*FP\YX?M%R%?@;X:IUH:[KICS^K*[]R(C;56]_ M(Y?CU;%+VSB9S!A 29?DQV7\%+WD M#:>ZEG8=(DJ94)EF4IW75M-ZRH#/M5[X]OU'?B]L"//.-1HS0)U^ALNUS$(' M+V9=_"$T8ZVE%=F71>;#/>_I0/+\NU&JG,?87TVRY@+B2-]2)Z4IURTD@CXEI[ M"J.)^24D)TZT":&&QY/S>H%#8HJDB2R>>8_).4HC_D)/!*KRB>9*_W)BG<1?/A.:5-)CFY!D!R:NB,[.J^8UFJ,N>ZR1'0U&OT M]'GRU;8[^VHZC!F6K_E5%!]Q0VVKIGZ&O^U?H_BWS#-<]FGG6I@.4?,WVW2Y M_I(P@=5)1<;?A)38?1X8Z*)1R:X6#KN@V0YP8.#:)\D*.=5F&/ M\4UT"+W*%.2F+N.!=T61]^(' 3,$]4=Z_J=:Q:Q]_VF&O.3+PQ&-LDN\2QF9 M\6.I6L;QE+<>$]-(X/)216,;!1Z.DU;^_'9]1S1_.(X@W!;U'%<'W?"<^LDQM M>FDT5*,I;S\F1'Q9*5B6HV"@IFP=(=.E%N1Y]4C.W1B^8K+=H1BI'Q9>K&K/ MA][D1EO.3U&(CRQ>_(:8!RVMTZ9>(]Z_%,^+@5R$=-= '4+Q/LU ,&!S4;Q M^EI5>2N?3FGD $LRA/;)>+5=QC7)[Z)P Y\-Q,35V>!:NR'!=FF^-2QQ%\S= MVLYC9Y=T ]-NV7D\[]0A\4.(V(MV*W[VPB#I5_1,1)%5!)<[\IICA5@\8U=)I$E".MQ-:E M?>>?HQ0WO@O6=II:6"X+GHJ4>JD%FC= VK&]E M:M%3Q&- EB\AV9);?R_"\,M4JU;]QEM&F=68D.')Q*][QR>GHX!6@$E=Y6N) M/F#FML$<;XCM5R4>M>YF')SMQ)!.Y8I7)H6?WG^\\M0 MP:.K.NY.HF$Z5S]PX,Z7*?@QW"QEWVYYPS%?WT\R2,W;HM;BN2B.GJ&@+IW6 M^,]*W*//$[N:7I1RK:4A\*!9$Q4!=DQ]:8(N ME$R'5#C'Y]HMI3VMQ(/9*#.^ Y>_3E:U-:_8:9$#^%N&U[>JN MH=,(C!D9K3J$OA#3-WEX_%*;:5/?9Q*8NRJ.>8-3L+';A!ZF>:O6P;&U[CYZ)E6% /+/$UB!Z]T^B(Y8^+_*KR((I'<=$3(G8C28KXQ% MS+;./C#-;P)3*!Y\X1DAN8O(X4&VHGP*RM(1VD_2Z11'?V4ZS1W1U&O$3.UN&81"8U5#?M\0I6-IL0CEXGW$3G%!]'\NH M?B(>9K&),0V.O82QX7@/V[:R4/-I?\+:=Y]*%G.M MUNK=]\EY]7>'727TP5=VFX^X,OZ./O,VU$;66XV)U!-Z3NSE8@:4 M;-O*Y^'&CN,Y6'*AH%<015J)AUO5>EQG%IR9M[M]'#VSS,':[537PVH>R_4K M?87QLR+EE6DL)4VG<-4UWVHC:NTJZ'F5ZJVUF5JJ1@D2R6FI&F4$IAGZWQ'O M/-_9ZN=[XP MH_[T3+N]=WO'%;B$C_N@\$Y6U6HJ$:32\W#7 *'?W,^TFP+'KD,S&BB D1. ML52 A/R;AA$_^$EYK$Z[GI;.4;XO&7PB.'6JDRLKFT[3Z?4E],A(J9^=?(TN M9"#796]UHS6QA)T'[ 00PO"SXX> 0;@,R2FSCY)".8'.9"86!GE2I.,TGD*5 ML*^:.."Z'E,3([DXJG\Y7:HR J.K:3=1C/U-R$X]EPTWH/M(?!8-*EH+ J,) M^83=;1@%T>;8+KBCNOU45 6>-2*PU9R.KX*[7%!"+H*J( 80MLF _JXEBH2D?3UMO%B?:E/QD'9),56MW> MKO=NA^,-@!#&T4NZY7DGU0Z\TM83T^# 8/RWR _37\@_B&W8%"-X*I7)Y.*T M *6:4@;PKQB>TK"W %3?#?Y\@,N/?_&)$@-&OFS?K1#J-!H3>794%D%-3J[? ME2>1F,#%4/$5-7D=3B P7H!I%K/(-EIETE.;'F-J>R[&7@(P*J+N-"TM*X9: MK>:P$$@P:C*]3= _[XE M9_2S[Q%K0>)_%RL9D_OW/B)K1''3:/HNKX=[<:1ET4!Z08:T9S;J9Z3 M'?AX:0#E!8G9JU4^:ZTJ2^ D&J/'5I,%^4QQZCW?QK,QZA/%:MT6[ MOF-7*E!@H-HE?C3W&^]2:UOX?:6=.@V77S^BX^74$A/3CRD25BP\Z,LUE"R@ M",[LVFNWY)U(3>!"O8P"(DG$/CO5$\*.&[?BSZISN-T%:(S16._+%=] 1R)C M*NJ;V-G1R--DN0K\C=,F,;ZQF_DP*'*-IQ:7Q% WLCH;)T8F%;L;WD/9X:/[.]AA#$7/3X&2ZD%M;,43IARN MGN:"7S4=)G!9Z1//+]5VUT]-U_&A^UI[&>IZ3 @![&3DY:%ND)9;MG$#]U&>U5WLH^),=,8V 5=FI/%[W1]&(YFXR6 M%AV-?Y!*U;5+O%#KM3 M'AT:.HV8:1%B$9MJMO:B-'7KK?A[X 7!UV&GS" A4#$,>:X^67;OJ[Y9.*(FH)7 MJIJ/:#)!DGT4'T\PF:I[C*]>+M>R&-I]U*KD::NN4PN::HQ7:^HVWH:[7]:^ M8&5_'S\>B'D':OR*92W'+CLA71HMRTZ4M!\QOR5-(4*,Z8T-&=4E3:TJD8]; M' 1-,9A:(ZO#(RMZZP&^M:B[W:#P5K4?.9FZR;^J-[(ZP_QS>D-^4W;25+6Q,\%Q/L76$>B\C!3 8PTOE/! M\147<\5[D1HQ[T%Y:6VXF&ZU>..$7,D!O.4H\#V'@PT3Y2\!R$CV MMBO]L-(WVV1JF*%MZ5:_(S2"^VT45K]!%IJ,YX7I5^3[KB&CT!CY\2:HO"QV ME;P5K4>UZH F\ M1A_( C39U24-QW7I*A'*M4'"+3N-_TRD0VZ4[&7 =^PU(1: M9VQ3+\.:T)U/-H$'@#!P'; 8HD]$(]T==G?^KMS5W=AG7( (N-UBO"4FI-0Y MP:HL@U+B@%BAIP K+;R_'=C;+K&+EFNB@5;MNV&8&5[@3TZ2XIA83'\C2CA% M$C_*"C+E.[%UMQ%C4%T:*D.5-A[/X.6IA4\1/8!C?&JAD1,(6"WQ MRV$C"W M30^[I7"8JE1="D?[^Q1 ?VKOUV*[\7R81@KV-EGJIKD85OC^+5HE"S?-LB2O M ^PVXT*:*:O?L+#!MN@LIQ.Q^H9T80*5OPMIK4Y2W!S>Y.; MFANP]C2J[S.B*,+.(VJ[>/J 2J29R?@4E=7^R)0Q6?NC*7QO"%:3M.B%R5R> M5=+TO-&?\)BA^65UJ/@AQO])EH_A&50'Z9]"9.0,=/FT=,>OU=K*J/5])F_0 M?";W[-,+#I[QIRA,MY7UF;J2&_=K9F8EX.DTP[<6VDY-\>"S?)J6(3I-3)B3 MA# >9T16.DDJ8Y7+VTS 5I=Q'/R]H=7[2^ONIB>9Q\E$[ WN@!?)XN>((@\1 MXSC.'Z?M^DSA-&F!!#V1(G&MBF\UZ"ZGT;";P)$'_JW.:V_9R7CHSW,4/,/V MU1+I:94!7H3X(HKCZ 6:.'ORYT+5W^YT1MMU >>+-2,-,IB(G$?Y*QAIDW[E*(3"(P-= 9!UVIF+<7%)ST?\#4LNJ=R_4%,<'@2;S" M/&CL-IT0)&H@*Z F;2./"OW&NV-\,LT LQ"F17S81G=,N\ZC:P[9%0^5XIN0 M2*J[3-X!WM/A/:5X+.'@J[[TZON,7'@ ERF87T+R)T"T)+_?.\&%$X"V627> MR72F=F$5[I@&]]S)9.QB[.R<(!!0GY4N.;W5)/SL'EY79_ZWBWEK163$A('5 M"?@F5:W'4_>2AF/"/):Y<1LBRNOZC*XEB,H>V3F;M%87ZON.=PRP M4+MZ%".MC>DR#8>5!$KFJKW ]7S"<3FV=ZDU^R[9UD^GU50&17K)^\Y)YE 4%Q>MFI;K:%")YYGN[P0(%F&BO5:;8"12& MAN.K#6FN:3T9T+=&_T1E^]&5#6)U@Y;03KO(-1YO_O<8X"JR<**+**P,DRQM M.^);2A13]8$Z/VI?0@H-Q]LLRH/45718I>M#4'1056V>=IW+A -"Z'47D)_" MS9^_P>'YE\=O-'G) 1T=XDK?119!*MY(_SM8R8LIC@+,9H=,SLO+RW=T@F!N M/G[__0_OX<_O*<%O_E420G\%4HC2^O__Y7W&=)K#3W&%"H>7"A6YO %042HB.([&0U M,9E5? !-F8^+WPRG+J3'$W(9RN._"J8H6J,]9XNLV!V) MV!ZTA\."GQ/[!X*>FLUCM(CM8_;LHUR09(.8B45%5Z FSQ!A/-\I2"/2[\[4 M/)RA)Z WP^DHO2BHN@A[GCZF48DC8'2&PN'6/'MW6'@>:9/<$WW5"?ZWOP<< MUHY;G!%$G.(98C01(8J ZCQD40^RD02BQS;95^2\7OOI(DUC?W5(#5S7A":< MQX0H#;[#9CE_=5" $HX@6%H20P6KK-7_N?=QBG&9ABAE^5Q4><,?5 M(AS/.)S)<_VH_1YQYNB=8/_M5S0UZD;@0@<@]![\V0D$!W]% MPI)>JZA>W$$_W2^AA!"E@U1?'8F/1[*F'F951A;./T45L%$C0)X/R"/G[_X8_G'WXX0UB$3:%_<\(#[-,/9^2O'W^8M)"!)M^2R,0)37K4 M.=6CN#K#VD!76$8"+M3*@7948+DT(>T86&T MLVLGP]$6XE]-^4E'&FJ,H48Z;-\B#%#C!MB[+C& &LI M6/+EI$S/$&7[5YI?,8\Q>N>'W.@OK"GTPYP01HXC><9KSD48-#:@7R=*S?W_):E[Y,7_; MDH_\PWM W,!)$IIK3;%G.CMOE%\A?=1XJ;6"1>K$'_P&D_G\U"0\N"DUVXC(O"XOQ2GL]>3 .8!/3>-! MA>5<$&5CQ4FEF,4W44P1F(DJ9_8UEIJTRON>P[A8?L <0%#-]3&B@ ZRK&T MES'/5@?P@ZXQ_HP4W9&<&OHKT!ML*YH20 O.+THQ]/%Q4PT 1>&;-LY@T#D\9\A((;^RLC-2!+M MP2XGSM"[L(C5ZI3#L[)4_CG3KA$CO-/2R6IH077OI M.RM6_. />,]3ES1G.'-%]KH%%^8%[[&4E6 MZKD;4S:N^-X[<:J6-.[K&!+Z-*6+%,+V'#Z/T2'=WCF_X66([P*WVQ&3UZB! M)@*BB%!%=W>7Z*^,\ QD$SKD])($ICRN/5 M57LVZ-3.H+4B1?T>LX11(JB))*!Y"*&N@90 %)N8Z#0>@^.RF.%3#-3X'*5E MR/Q=,P)89*=-/]M@(N5=;&2A'H>\V#E4=>K'>+'9Q%31X"_=:Z6,1L^+D#% MD@/7,4%_484<-FC-O)12>VDEWR#$>?&4Q0%R16 8;>)W)\]+/M*;4S!/3H\4XI6M-J#,FB[C,@"::H M+1':(4L!CN4S!BSNCNM4@B=TAB1OZHK6$I$YP^/75M282A Q7>,-,?;2 M"&$GAO"GI!AV9RD3YR:.=@*2%:I_71[(0;;#<5^5A)-':T(?"0;HA7! @H7E M@)5AQ"U)2!I<][FP]?\B6T].\.)K1J\HTJ +RY/C;@_,9 MOUR'.-X7!).#_LY?=[6.:U^WSA"C MCX#!'(74WX2D< Y]NCM#.$G]'?56'IB? +DB[@-?XWBWXBZX/;- M&I(D >KJ11"=O!3R=IWEZ/7+TJ8(&808KS5M!FY#DCN3B!K\OQ95&U,RY9^" M>?D=2ZAGEQBTL@#*D[S^.S[VP\;@Q!"EA@BYR8^_!/K"FA U^'HY:+V>@ -5 M2(,RU).SL0A(,)S,9:G0(:*)%-0H(E9@"+G=9 (B.0%.!K(89""+@T,<\"BS MBR@D5[HH$,_+Y[)_=#?\:8 9IVPC^E.KHL[BZ'H$N K?I8@*...9@S.1I,2; MGC!Q$C7K;R[2**E)=8MC*3')D%0Y4#9EE=10S3!*R7+)F(JA?>G$['8V^%X^ MD66HQ$I=I/Z/(HR-\A2GP1!G0-T#I_,/)7#V/L(%S>AGZ--$4(7%+.7,/96T M7E5[8?+7NWT0'3'F ;85&6 !+?Y <1"RLK4L<*E_0'U93E<69W.0#]A- [L>)N,GZ M>A$D-(H*F0)24U[@O5:Y67TV&7X.JB!C%"@?"]%>;!-35:Z7MUN2$H\H]@+L M>HN0"UQ3Y1A4*6'Y)OPAKN,;>DZSY+DE@J:=5Q,3>TG4@7T!! NH*NG.1 MIZXJA#6AZ'P1^ST^ MTIP3\ !#O$P4$!8;(4N_"^$=C.G;+#2(#0MEXT(K.C !.$2'=H;TH: MQIR&=IXZK^!9H7,:9'-*?K%WPN/O$@O7U!1G2;&J*4@PWTU\IJSD8DQH.G3W MLNT)@N"F7N;I=T MD2!L04K7G:@^!,WVT8;R28#PM*;G%"2M](_QDGHOJ)-5;%7S/Q?<[J;%@P=SAV M=7]$CY,W"]@>_J3]R^L3.3)^P[$1/]!?_A-QC8R!7EQ;A1W(KJ?FSAYC\@X M8@G=O@C 0P%;C*?S:O5=,IRY?XO\,$6_D'\?XO%P]H:;!,VQQV9BQV;"EWPL M9*&[&'O4>&/Y*17R=L^NI_29O2YR5"K7?;;BYF#.%)D]/]E'"5$5B=S9NL*+ M]P&,WB0*?(_F&"2RAM'@09"[*$[]?_#X#UXP,-S0P(^N![!"$B2]PJLTTX I MY3E)I5V5.=$\$(W&JR$W&MXK9U(LW4/2(-C@"_;$\8R8W<),F#YP5X*>M-$H M25LH5\:DT;*DE8I] M=SVAV[)'*K4:H17GUXZ[_8^#$Z>]'<\*3X!YV7&N:,?8HD#P)3\1Q@@3SNCOC/7\)X/OW"E. M0D.5/69)+%PRL,3O4YZIKLJ@2%93VZ3$Q[6#M2RZ/V1"PZ0T218,._63F$R;.;: %+R'2RE4T@CH(U4XG,3 MKA09M';]9B-AJ3XTKHRGX:S]&OLI7J[7/55 2N8\(G1H=6O.9JXBENW;KU% MX3$_$2F0\B-3,7RN=Q$T[HXC-!PO>V$DE*/CG2%)_@QQ!G,44L_OXDE%L26D M/$PC)P&>TXE_PXH=TP\1GI%EB*."L,S0M)6K8UHXW5>02;B3$MJ2#%[);D,H M.0;*UA= #O$NHCB.7A@JB^-"O"+-B>ZX@NP=3K(X0XP)DER08".2KVD3CG>? >F.1=Q?8 K\&@_F)U!J M=@OS*K3.T&? /+6DHAH10GU9'?3YE.TX8F$3]1EJIY$MX 1]]Q4E M1TY&06]8!U/?T8LS@(TZHS/I06MG=7Z^A]_BX"7'GGAS)R;Q87>@]<&( >43 M;:T7#!71'&0TP3N%-N+$OYV??.QA[SK,"L2U$I3HA:$'1_&%$PQY[PPM^&/J MQ.FIHE_@C1^&LY9>"T=4A/08N1D*I-Q+K1?22OQ/Q=,]0QPV'8HQ)IBR44'+ M'AL&M] H-I: <.T7>B @QC@UBW$'1J30,O.L0H=)2&X _O5CT-YZ?2J2'LH( M3@)RO*]\>9!D1FOHX7]R@CUL*-^E*?IJ,"!.84C+-7MD6(0>4_\NHM#K]6:S M/*0)'"UPX29,HP3G*KG UU&\HV\;*^#QE8C.]ZW"C;[7J.&$9XASI&7BV)L. M3 G7MR]LS(9XD*!I PKD)H<>U-$,S25XR7<0RO=,!_ODO,\*4(]ZJA=]R+7X MR=N>*LT$XS"NL%/V(Z-"@M?!2;846(Q1A04@ M!*[+0YE&#O^<]*J3)NP5>ELQ@H-72S,J1RXM,R^,A6H3PHZE=P:\(,5XB\/$ M?\89Z7!"5)%'H@2L]729;NO3D)E?>P-TMGV[EN7EK5K=Y&7NL>=9,BYU0" M2I=*B3,I!ZP#-XA(RLTPHDAWF-BE6&K5=Y!:*(,J1=+;U0'_%W;B&T*HXWG# MV)PI]B'EI(61IA%:871/O0O #@&_N? M!LU]3\OF!=$+AX\9PUY6X 3OG7@94Y1QCV(&BK1X(R"*A#A@ES/R#"8Q2_N? MH9#5 (E[(NF@,(@2OD!4?P*^2UI@I%N0M!ZIR*(Q&3U+129D^%HN=NTN M_WY1>Y02XJ2LA>P9&+]>FCA#K28G""4[!Q'4F,/2=;#DA'B*'2^KTU5(X.KU M3EV2O37&\_0@(N;\:DS.6,E2LV!+R!HTRS5H1#>@$/74,K6R-E3-HE0M:)+@ MTKZ$:<0Q4032XV=GA_N@%"ND$- :&*[8U/!U]2@GP\!8$-15>@_<. A+_Y*N MS/O*)' XTO5U\MB$!3A1+Z?5O*NUR$J>_YP8%89O@1NX>8VF>P MGWN]NZED44;WC'_M [_ -2#?FL;ZG8D88Z+UT@_H%QQZ47R%]U'BIPED+JN? M5,_CC!%'@CH"\DA\8I3!C&3C.^ZKDDG=?EPP3PA&T^EC]3RT@,.7JY)+-5"H MX\-4?.'W[!X=5%$FF+UV9HR0PFG.4FLAE%1&R*430@;#"TGW++$GPB1P>/5; M.HZ>!XM",8MDF[H,PHLPQ['K\,$6!O3J]TFAG*A=$N40AJ&\][&>NO66T!K:?!Y&E1!W- M" X)$*Z5MN7_N?-#_*'K:N1*VO(?$-!$R]!>F=X^LM35Z+4ED-QF/(9\N2[% MLB;WRA68EMBCD?5](_S5B/5*[&YZ^7"N(T3T6YJ1JD!^^"X/J2RS4)P1O5KL MX"^@[(E)P@<;J3^6D;/T.MAS^&+WSFS8Y3#7UF[CRJ"ENYX1GK519U8#)!\/ MJP3__0"W-&3^/9$^/52-C!JBY!#0LZ1NZ(F]Q'+,O[K!P<,>JTTLC^'B16#R&JSPWB(Q&%$/7+L5BG?GJ!?E6--9=8=V MFE-QOT)\&;]C[5RND!N8)+L>YT>^$* D:.,$,22#>,RP.O9V)1B&JJDQ+ZGR ML>X\FALY*<+D OY=,HER&?UCVA6Y5C)T'3)L9RB=7N%)6Z^Y2J3$"]F6B)UT MZ8Y(LHF=G1%3:/'T"7%Z=HR*ON,7Y[3%<8/S94'FS(-YNPF<3=KWK5ZBLD7&?'925=>O">@[Y!!)F'(\BG%Z]P>ZFA& MX>#2TJ32PDMCKX^>)X\6WU*M^12,2I4+7:0A0;*85 8S,H:\'*XQO/;\) J_ MI'0K_24*('4P(=:)&3>6UK)[B/6/6LZ]<4\ Q6 >F5#*&IR'P$+39%O56U324)/K5QR[?H(] [5/U%(<:@$42!POK9$"44MG(H$5 MRJ2PL2004GIOR6DV]#QIN8.$$?6D@9FJI"*CPY[6%V$LX*_LUY&8F630>I5R M,DJ+JB@+>7',FO!%I&O(IHM-XVW(IG"\_<3+@/+BI_:VTIBS5U(&E<6X9'ML M3\:^!=Y#3\0O3NS#&^D#43YZ)=P(0@@H64NP>< )=LA400 2?L9!1,,=3!1N M$Y19F%%&VWKMM@%$U)/ %#D]1? M?-]-[_F7NMC$V%PP&"4M3P'D".+#^IU,"B04/RJ(H(DD44O*H$&!-/5P+*GT MC#P9KMSKH\G'/EO.CNPI1%T4]Y!'UP-H"OV\L?"Q)ZGO$BO_$W8@\&MG8_I[ MCEXO,5@JPJ#?-$612L@I>1/%LK; KRC:,W'P;2KJ($$99]0B5]+P$R^$3N;1N MP+>T+C1;.Z*H@M:3!-'+^8ZT"S?9\@XK$*4K<([)A1-V3#/*[=O[NTLD MB"*@:N>*-2**V(HS%D&/*E)E *ELZ04_XQ#*SA%;8>'M_-"'(&((^.Q7,Y=3 MI1^+3M=6M5S#,4L(4H9EU+WTU4MGI?XOKVP"=6IB M?W6@[K^^S[R,)')5FI,70EC?LQR\#AW*)% )6HG>^1R%$J:4O6'U.[$EQD,& M?BI2Y#CAP4MWFI6K".[@!X^^@0@K_P?O;@8$0<5&[ _I+7M388-P0XT(O*_YCQC&[E2V M_5N9B7QF1+\IL5TAP.(4J6D6?2?)>ED!*_.DGOW9#-T49FA1-T.#ZB%7.'%C M?\\R^9ZV#P,8F)RQDS.Y5'FX\/1S;$M!3BZIT@*2E, M:0NF[#Y*"3O?"6X.Z2'& YBRD@-B+%"9<34[(86G\JL43G.1?H&FL^QB?RTEX ML38)1$Q6<)@& :HA6IW?Q$3595YG10M3FX\X^DN8D(E75&%QBLB?FTQ:J:ZZ M=;+D+R&?GHNQEP"DA\EH74&7 7/H]6,D[=D)EWN<5214PVAE?*V%L\.T@'HI MN=$$+($@Z19ATP2D8BO4KJ\<_+.R/7ZYT9@QD0AK@NC_?3&D.,7,>@*;PAYT ME$&)RK*.7X3JM>*0%C&&-'$:)OZ3/2!8J'/2KY121HL63;%63,F(#+E882$( M%&FWH#. >X\[\&2-'HB]3/JM"*C3(TT6JZ5-*I>-;H"\E/$XWG4C#*J[BC_9M]*NG5" MI'>R@Y-G1&B]LE=?R8?5Q9E^=ADEZ7+]P*I$]49G+"\^-;!Q9$(0857,5H R MU=MR#3 &8!3M]C'> L3!,\[R^#_C%![E7ONA,ZFT=;!P^G+.'AY?YRAG,3#* MU83=$-L6O0,L SL17Z;%*X1(M5Q+2\Z_#._WQ@_]%-^107FWY%P+-X#4P10W MXV4"&*]SR@QEW+B>."KL\6#3H,,\[78.I."LD9])/ZQ-0T]<\3S,CMTL<]S, MH9O1FX40VA$KI+BUY^K8_*1=.FQD490VL^"\\.@ MP+KZK$IM WC(I"#*?3>*(+LH5)[HEHMFA=6#4]M(:[U"%23$N=.$0G'(M_*(WO;MD:/8G@9$#_8NTQRO2)Y MAB@K%HMIMW+RC>/'OSC! 2MIY?=1X+M']O_[:M- 'U$&:N+Z&6+4T5_Y?RVJ MT(-)K.YJ16P-9? V3-+X8*68]"U4K<=)JF65](P*%S3'R2PQ)5&0$Z:8_V,A M.<38\BB*3+U$EBSUWH*5)C1)T09.."V/HR)Z^C*FP*$>_:A%\2!386^$/B+G M/^/ SXW!Z_\,*VIM2-R>R/L,U ?.6DVV'%.N?[YPLA60>D.GVG8?M# %9C%8 M/1^8C'@_]1'KS\GJF(?^1'O6.+LXEA/H4RJKHLJ9G:? 7.((?[Y?A%[O:B'Y MC)D92J*558<;'\78Q=SR>(Y\%_,XR46PWSKDTL%X<*5@"#$5Q2>_:B-$) L8 M6W)Y.K1^+\5(,Q*2G"'D$HW X06,*?GY":B]+G!95-3?&4I4&8=PR)@M1#@YWB\ I^:1IF;-GUW'GK>7D))+[H!/QY.R?X I32?T>MN"2T% MPDH]]RN^"_[C0 QB' ?'!YKQW!58C5-#DAQB]&8@@@:@9EN.+'\Z@.?F>\+U M^!0[80(6813V"KCB-!$EBA2JUB*K:"XX^3^PF)[)MQ*"=JXFBB]"3_^%TK*' MW^R,)K\CA1B8*[G,>$APR_U2[?%5S4V9TXY. .36(YP11DZ*,&1PKRU9.2-, M0]X'6#D1*^D:_#JGH_A*ZHKIB.W"+]@5.Y_6/YK8%:=^3/"(];C-.[B&&N]H@RX>00I8<$04M! M)J9DT2O6E DT;/+RL^,'#JVN3HX-ST^/BW4*^:-AXGL8ROM*6Y[\SO,-Y'9) MEB@0/)$#3*%DA>"J6/&NX#O[B>#[=G(3(&O1]?@8*^OH#?HU]AKYB#7T%.AC MGIH-(2<5[S(TB^W*?R8[(_2297P%!79Z0N=J:8@L(*7RB4IF*X ,^XO@9 CP?HZ K'*IPR%&2U# 01!%0G8\\)1:>7;@5@Z)H MVN@.L;F#>%9Q!5I.BE,X0T)K^Z#54&RE" M0''7W6E+4%[W:@095*/>G,_ZS"YJ;G\ARAP0E-RP\;)!E)#EOO"]^]CO79.: M4T,KWT-[H#?EL8O[>DYCUE[^; U<%M'J><9;/-F-'.A,Z;%W$'8?=,$I/>5! MZQ?/TXAC?\0T;H$H8)^<^#<,]UZ_,Q_[00#5#C+B"/7>NEK MLY*)]X%,(OL%S@I*.HGJ'-+&52U))6BV8CXUE!I.,G&T6T M^0L^W2F9!RO-*,N3C569VN+A7.*FA1*NRJ]"&,US.9Y$,I; ;(J,)&L] =V4 M0$*+G[T@>E5T3G/P_,WUFESDR_7UJTMK@#XX*5Z&HP5(LN& AH'Y@! Q=3!R M>8'2*,S""//!I/\$4Q7D9TF,!<%@8'9,!6:?43O!#P]PU'&#6WH8>7E=KY!?'#'GXKBU5EGI81CMR$6 M7\[L%)R\PJLTP[*FKFT#Y7;NHG!S_H3C'0+Z*E@V=^H/?C(;D$M+J=3%L"7% M9_S"$1&)FG@?1R'YT563](VFZKNT8I[DQW.)-H? 2:/XB/8:?Q1&*3IBTL&+ M]NGP==6'G@J^BPD;E/%!.J,QT.XS\*:%YY$VR27Y<1D_12]=HY,X9!,G1PP1 M^%<4(R Y RE*T*>LBD+S&+#$JUAX?SNP^.1>#Q8"* -.S_O8)S(PL)\SE#&P M\IAA4#3]14G0&OX"=HE&>:!Q:U4%]GHMU6)Y>5M1 ,H:X1*6E9.HU=<3*H=&R\Z3_%CH<% MO/\#K6, NA//HX>L/^8K)5HB45YZXX$!-R2K"63\!#XR HZB6AOG.6?Y^5?T M3R>W%B8_%^&'VMQSD*5IH\Y!AN*FBR6M06,C%>.\9X):N;?!6I9:AI.S7*LE MHWF^&=7$6<4C)X%D-J:O]ZX(#Q3/*4D168T6<0P/_-RK:R_4W/(,%$PN/@TV MZW7?QQA,(9[GL B9ZX*]EXA"0OT,?:DWUMQC;*44IK->843-_8IV[N>T8 BIY9GTBJ4K40!2N%X;BQ1%E^(1XV"OS7 M*/XM2Z_JJ6=P8B))><(#YQMM/@-6MXD8M6MAU _^9ILNUU\2MM^)G:C#%3PP M0P_6_R:*B>9-_]PWA9]R/5^NSPE?=@0@PIFC%4C>2&&."'=J33'^7\.<""_J MVUSD0DCIA$3K\T/"STGJ0& X.H&7&DAJS=L& M%,@9)QCQ,'K@1#_%=\P-]^V"Y*6F^(BBK(*3HO#8Q^T:6OX*T*Y+GC7OA\7I M>, )CI\M'&L#BY[[U)4=\")$I4]F3C"H]O:(70J^]N'CZLE/NX>=0%\8_(>/ M[U;?(D%URB/7@DWL#I]EH[NOCU'@Q'>!:Z14)Z&'*$%$*-HI.-I;!+Y[YCAT M#0# ZOC5LFCD,LY!++F!/AC/D>AR][7E,>[7K<\\S)E=)%"V-JE:5HV M#65O3 %9\0'R?4/X]3/V;J)XX9(O/<8WT2'T>N?DT*,C9K2IT]!AU,G/@OR< M1%/UG =%*DX8WS@41$5%9P%;E M?Q_S!7VP.=!]"(+6J&#N(J#^ZH#_"SOQC?_V"'@-W?YU5/WX_AJ@2R!LPHA0:,R%+AEV0OT+:J?8B,))Y-OXT"CPS+"'!#!NPG4 \X M]=\AZY@.@\BI:2Y1Z,&"05*.4H&R<0Z&#ZQZ)MRC^ AV%\]18K[MSD%DG""2 M%*VYR\T)D_?,U$EEVQ-C6DK5_5(OIW5WBSE1-4"%((A>J$D+ZFA"_G&^BYX% M*%JT(I\G3C'R!?,92%GZE#D5.=6@EQL_<9V /=?>D-]U/69D\ LC*%)<*1GI M>0FDN&6;5LI60J!\Z186I,EX!FF@CQF]T%LPS2!0I-M(]X.;^L\6E,8BR(*\ M:FXB)8C.B"U7 B-QAO2K30FP&V&%[*7(:)4SHZ%@$JB4Z;'>T( @I(E MLGV?4,)(Q89(5BAU1&] V[$0/\6288HXVC1/SK\-!2>>==$ATG0 M&D#=?"F\(_G\-.B3:*:U/Q*3*(:;AYR:4/3 #PM(3OT4N]QSJ:K;2=[T5%6X M(\Z>H0-;U'EM3TZ)+?Z"%WHAS"1TYQF2_)!@"/A57\$D M:$'_M!Q0S)A^#;)IKL7.JVS)8K P(;J?GS.T\!+*H>8R),J^=[ "(9<1M8JJ M:5*H$MQ 0GCXA:'AF5!!"S0#*#S5*XY5+\4U^;%K17IAZ*"CH%44Q]$+^

Z")&W-Q4ZL+*_U' M.""_WOR,0V+80.CJPB,VC0\>AM1_QOW>J#GQ,\3)4ZM)9V MS&X0.=5E565T M=!DMU;882$;ES#UA06TE&!T2/X2">-%NQ6UQ$)Q"]D 4?$)QS/[-1ZT&W;.C.X$.7693TK?W&<6DW+WH#\@3\EOR4"JXKODLM<^XZPVF@MB6I>=]'@[L=1BY\O%# M+02T'3XTA,!J^% KD:U'#YF5>CR,XH'D46RU<>11ZR*"(;8CAH7_#U.5+0&J M?1_@S/Y2R)]!2OZ>@7A9+H+94]#*FIC4E: 0GI-,E;4R6Z^@K9BVO!W=+Z*M MW)*V9%FPBF"LSE 1C+_70PBGBLI*#,Q+K"*6!R]:)?QTPP)+LZS33SC=1AZ+ M[J+ZNS0G;L-U%._H!V$T[(EG_.XH8Q[PQ4RIS)SP,][??1V3P/-H.;;(V'149[R=.CX5GZ)A5?&'_O0U%#L:]<^Q1-5701>\$Y6_!!),) M'ISZ[,334F^%,/NY"J/IL*T6;&!- ;)2K\,4< H\C[1)^'_N_!!_['H@47J( M4SH3/R"@B9Y>HEG(HNZ[L00JJ3U$5%?C4!HJQI=(P+"*GS&4?%K$R.WBXO;N M]NGV^A$M/E^AQZ?EY;__97EW=?WP^#MT_1]?;I_^:QHXY'WB7$\"U[<2]#J@ MS"= Z\]1RGX \S9@#.Z%)_&*C+ O% ,'+;B&1')";O+C+RVF8DF(AL0:KMBJ MB37#Y!5)1DI>T7QE5K4S$)R"Z.X5P==27,>:N.+]ACV$)J(TNC$/B'RCX@R4 MPNACN$,&$U?]7#]'X?D:>S3*!^I]6PP3+2HWGZ,4]\9"*X$_ [I6,=!*"[JR MHBH/Q.:.?9=<8RR'\\6)O3Y)_75U;1E'>&H5/'G2*N5J*>/?SFP4%*!$O*)[ M;$[(IX/8ZQ?%<@#7!WV-E3/#:M$X, (R9:-6 3<\-R5UB))"$1Z8+>H,HX6 M19HH#5PMG:+!P4"(H>GYP0&"#7D%#W+BL402[+%$D]W^P-R>R_6U$\/[9$(F MD JXV('KH"M2BL(;977[/WMP-WR1%#/HP'' M3@"PR+,PX8G1+$"9' +QL^]B=IDH%4S[N%,6][>77*,X MOZ#N% Z.C!90X&J#&4R)=.52P"0(&U7X_[--G::4P-UY3AG#*2DY_]/-B6)9 MJGMJU7%/60H?*'^ZDP<0F1L7[H--U\^KZFGN#$D>*&,R6VFU1WDIV-Z:8 IZ M#L!'^QZ%?8>]#IAOV%N&3V3C)8[;(Y))@]4Y0QH?)!@A\K/":M9R:ZJ@<,FZ M/&5@6$.*:@;W@0.>*,%Z&8/QWU.EXS21=#%'E.KTY>";<+;CUS83%T)NJN6@ M0B@XE$8CJ\:,J1HDG&IA*9#*O!"*\L$ 0VS%A)U:;F2Q)A-NN>:* SRG5WFE MUU1H$#%;8L!1(:T!;/ LV0L,]N0).HRB+%3KQ $ M^E#I4AN@(::DT6.7*A?'DFUB2"K=37PKET6C=:B:;KC19(2/1+\OY)IX3?%VW24**M2<(F/A%Q. M%QU"8E#0M\'*J1LR^H88W9!+^'CQH-47,RI 5R&Y(-?K5 M 9\BV6Z@\3M!5MBU.YH^D$6"+N*$SY2:L7,335TD*5=LJ>B8:6%T?8;%\811 M>"[J^0:9.3GHL<>M5W[;RSB>RT+-8J-Y0,)&%VR58*;+LH+&=C-A+,U)S@'S M3ST7-75/3IBX*Q44A3!KOQI(%NV !DN\%Q^(*WU^'&V6"/^6"C&%[_ MG?!X%[B?\&Z%XYXJ"&>".![R$=,+?<<4N4VA'@6 M@55)CN(S,J$".6000@.7RU(RVS[$OII\O#X MI=?=5ME*\P<,Q>,&]>R=.CTJ8<-]"G:+*(*6K M!D/;K,=9Q#7*H02;Q:#*PR#/3CP=Q-(NIG&&SEWIE7OJ 1M66X"9/PH-OA]_ MCB+OQ0^Z!@.([E,=9OYI@,,)0P%*#)?1FN=H3WO\VM- )L%*OA),7@ZMHLW$ M]XSJ^Q$T;+EYY(ESO=L'T1&+7+AR%\@B()J9(\I*"1QXEC?'RM7V+=_;E'[) M=4>FVO'L/AB#2$6W^+8]N3FL>@!G^I3J6;)6R4E.C8 Z!*22Y"XBJA"YU22. M#\O2,EW_6? \H_@HY#^4+]TY&9A1QGK4K3/X_%1M#D=@4,:2AR6 =:9;F#5&^Q7I;N0IJ?T]?F8T0LVG=2@>_E7%#, $N. MA)[CUMYL?1QHEHPE$;XD<.]B#(CA00M!,2F/GC-;+(J@8(-0 VTS ;\C-.>6JHL//"@&'TL.Q[<$R_4 MX4?!B%BJV!V@V0VOTT*%R@ST>K&),?7Z7,)8<;R'#M2 IA"VJCOQ"%"'1[ M0K#,H&"_=1Y3C ,C<6B4'*+T)CUL<0IGP[6CGO8=MY9U//Q<-Z8H0()"K\N@ M)D5AX$N!AW*1+\REL+87A\0/<9)<.<>^R%X*5;3B9)%'Z,Y!%GE+SU@&_4ZV M+(BB-AYV!VH!JW4K9=7*7%W,RF^LNX8IV*/V=3-S$0IG>HC"USIE^9B!(>;. M=E7G<>=2C5\89C:M%XP>:T)SL'AR*CUE$%^M["J4[R#;R,K#EO7I*X6G&FOS MM$7A P"^IRTQSBV!$5(80LIP]C.@GA$?O__XQX&#R"NVIWBX\FX%1Q* T$E%P1LAJT<.+2\A?2/B<@M X .JP3__0"R M/O=]P\]H(4K,VCNX$2'TBLZZ)$-Z9C\YK_[NL.LU\YS&X!/>>[SJ),]FT#K, ME:UAMZU7VU5;**W#.S=AB@[D("?7&) FNJ;SX&^VZ7+])<'4L]?[B8)K=93L M>;0^AU 72GE68FD0"E*V@#X[QT*T U2>M9(PIV<&]D.CSR4^6D.B-R)#61:C MI6!M,^-73H2JA;"5VW#8$P.7:G\!1#/=!-'+;;B.XAV+P^]9AU.ASB+#@#Y2 M&-@LR#F,J+I.ILCK^8D;1,DAYG460?PUB.]G3'\:?K_Z.PJCUTMWHU0XBIXM M?1D"=YS8R^&!7N'$C?U]G\(\G# J0+=U_> I.:(%H8P@KV ]!RDTIZA]44I, MU_XF]X0'6VM2#_Y21(V]GL7 * U[];_Z#%F+U+"*$--OV(4]8A?>YC-.P&F_G.?3Y4P8#:58(%61_0.N! +XULD&:&,TWQE M5E<3!*?6U%X5_" $]Z7@CC7!E12'JT,,Y0]9B 4M>_D9O] _=5WH1S61@Y'G M]PDOFPO)V_B%M9BIJ)H5S4NG)ERV88N'#BM7KIP6H4'3!L ?H":MO/-#+N9@ MB=>9NG/C!SB^),;\)HH[H],S)8>20H+6Q(=>HJ39&7\>^X3"HZ8\EI9=\O MVPV=J;;4EJ6*XO)X+X[/\2W*=YU+K*>?T>0 ME-%?@3:BQ >_88V+I[^RCBHCBX##L4MX.QN\7%]&%%X^IM]"0OY-4W ?_*0W M]K%D KM39T.U=I;K&Q-.,Q16[-BO6LA<9E&U;&?@^H<_DP$,:;KPJ^:&W&U. M /'#UZ%W14R.KFE?_.9B]%B(-*&(@.0/L+YD(^/DYE+69K.,8J<+$KQ$TZW MD<<\KW"_/6"& ?JSXX> 5+$,B:Z]CQ*G*\@P8X,8'Y0Q.D."%0)>Z!UP^Q9% M(1(,YSX!&FPNB$B+QWN<&EPRON0*\#2'T"673Q3X'@V<3PZKQ/=\9WA_T^ 3 MH48*=-X.M@()AIJ,TB]_TONB''-W*#1B*,M%0>$LP>D:$6[,TE.&)5$^4K96 MJ]9K-6H=M7Y/+56+9BM0N*)<1H]2H965,BQ5-JXJ ')Q5/]B2D"R]SW>F,\19(,$#*4S42W^^(FM 5AFY MH05ZPNXVC()H'""R\!)$G_MDXNM M9[9.SOW*Z5M,VQE$O-*@=3(4'#\/'_ QD$RZ&K+4"JM9B%+,8B4>\,:'!^$P M[0%(RN,D,EJ# Y*:&'Q)I(1=%)-KANRP[E4:* 7$2$QXM)HSA X9@NJG M/&"UD! =\)[20>\"&TI*5LVDHO)-9HX1]3-KP\VUQ8L3>WWJFVDU;Q3371V# M:A,F$%Q9:N/#2&P51,MG@?2-F2CFM5B-AC(FCOKU05@LQ2"6,EG(G-CA>$,D M(1_22[J%/>2$/4,*!4G$:").=":RE"6"V!6HWM\)L3?_%OEA^@OY!Z2F]@Q) MJW+[LE ;R@D)5A9S?:G:I83V]%._F1*GD+.F=QN20P,RL*V1FI:EB,<\ED2_ M8@"!P-Z"Z/S.!G\^@*G)+_9$J7- +D[?[;CW! _$F2#&15[?B5K6X0Q15K.6 M6]VK7X$TRF[MLI26//"#SH%N$5,2Z(4S/'?X7(1R+D1B!)L2"S4\RK%CE)-* M@?_K7?GL-/Q#-2[FDY.RRAH6(3.RJIWEVL1=S]A)U1JI5B5LAE$.)W)I<9DJ7Q2RH>6KJ,LY.NK*T0C7Q;G8"Z7>IOFHV!;O" MJS1+UNAY*P(Q+2_%V@6G0CHOU_G,M*X).0I1V'"%)+QY2:4EU*BB6:^/+0KA M5OA+?_73[2W1%)]][^ $UZ]N< "UL>!#!1_(?41V&$[]F/:\8$5TDXOCDY\" MIXP,:4M^2\99SMZ4*U;6^*WRPZ(7(AW*Q@55WKF 9>Y9YG_1I41"S#/PZ5)) MV?84-&D?^!-$7E0.RI++]TL8R\+O3\ZK&#O+RA;5_ZXP^V\_C%?R+Q_P(5B] M.AJ9E_&&\M%$(6?<9RTTWW8J#UI+.ML6C ^2M17?"5:#/XL,N]J*$=Y)>GLU M"&C%07+F?(X@:\7#!HK:BUM)E#.$CUR05VH;6GT &4;27.HG$S=6JC>&PP/0 M_DRV4TROC86W\T/ZY@R%C7A$9:_X'4Z;E=#0J,MZ\+;B70814WM+5F1U=%EM MR?B GW%X@(T)YP4%!XM,U,KF=,>HB&U<)#V^DAKT R<17(=%;!A\$C+E\A3A[9V0 M]W&TB9T=+020+%>!OV&IX/V1>( L*W"0((6P+1@>U;,H[/3EFOS7#S?TVNM? M!4AQ+7K"$Q!Q%L@%'L-N7N,BYGW=0#AS<@C2B-*>EV0:VG3Y6MG*OLAN1"/) M)8K><6 I*0\SI#*9:[2:L]' M[*G/9S*OB1+\E_^$3"?W-W+).1F3LX%!&^@!DBF#>M "TV_)-:_YDC@,;H]>_4H0UK!WA+V)R#OME^M\%(> 6"1<-6WGR9I[S?*4E$8T M0#236@:%E_Y%CUN,4ZWT"]B.,# ;9;[ABX1S 2P_(^HN)X@$Q5&BIW.X6UKVM]Y];8LCN\)/S:NR9F5&D3O]1'IN+I>2,!%^3"R=-8W]U2.DY MDT:08&S7#V5.L@+N@J6R>/3DS!YXDW2YYN[,GA>FU,9!"8?/*F9DIR](D#,G M+KD #W,1H-0HLKD,BW3''05]?4M/GQ"G--$!BXMQ^('*^#XGV1)E!OX#1\ZS M$X +] &3<\=WP?=?^G?F^NWJ^01H%%!OZ0\*50 Y$GQ13:OQ_.(V9TM_$]+F MQ4)=M90YN_LH08*(+56GWZCU*]/RT"NASOO:60U8Y\RFLO@!F1>TRGK:B_KK M(#(6; :^;F6=P.7ZDBC&D.KA>_?DRR5&QB'N$;!:4(\1N7V7 MNA4.L950UJ$EE_K3/XW$NL(U8;$O#F0P..F>RU&_JU><_+"N+[,2E>S6Y1H) MLO90OLU*5;4C;8NFE(]F=HC)1!M)=+1<&[-BYZ<\^(J"6 ./G![SM$R@X_/GNJU[.U S?$U[(8P^5Z18#\C_$>L,S7@H,20-0N8?& MZ!Y<=M53\<\BLW:"- AN"X0=QM'D;-%_H;I=2K,>R+]9OL_U*\M4>2"V_O5Z MC3MXV96$"$$>\EY9;8*#K?BY)R?V MU^MD&7[",4RSYR=P)KD=$&ER]PVG#!#W"FVZZ.[0CAR#4O$E^TJDT1!\,Y%V MJDC[846J G_K^PA< F5G[>'7E"QY'+N XC(2@:BY]]-K3ER MW$@4_BL*?^?!&]&VI\<>7V*_?2C=QO)1J[22>B;.V8<)BD15T<,BR[Q(7?[U M!PF =]S((@D4J8A=3W<7 "(3B43>,\)L^_/GWU^T(1H_> (SVC2*CP,&3[ 5 M3<5.,,?&>G/KAT[H^D[P&-&(NU/3>0J?"=:OB\4O\M7/',AZ.2T:BI5 *):A M^H,G5^X45\N9W"&KIT#PQ MJHP]G+!ZZ&# U,2S*/S=!GDD.1M*8T1E[M/X'?S2%,H24C/Q2:R)+E4QN$_% MIX: H=Y*L0[(^/;FYQT*@D%*/9.5IBOP?,K&.:;RB7>/[^^=A^^NO_%=#A',SD0!7\EF98G)A;P*+LIZN!=M*N:S57GI]O7I[' M)QWVBCVA U0C"[>@-V5]Q3U&-'F:8,!4W=N'OR4-=,MH)NPPQD_ +:T!XX;\UNU.]H0^#L W/5()U[8 M[R0URYZSUP1_$7_NYFV(^DC%RAE/TM_I?> :ILM5II?++@&='!!^M":)XQLP1!.BBB[> M\GC%__7=[[_[[KO/I>?KT\7G[S[A?X+_;P=S_N=%&(4H+[+@)+#$/S+\+W_\ M[M/%]]]]_R?"':^12]Z\BS]^)O_ZQS/ 6-!$%HO59=4R:/&*,X"#QE+=A%[K M]'D ?;JX(4&A>16 LP$0:TIQJ@GB)=KZ87A>4%;M["KX)JE]>^N'?HI(D;YF MP?*5BSEE1@HZ5NN/]U7,R(=8P<)6:7:H6U-\[:+ZN?-'0*,\;@&E,P\H_T:A M#-$6EC /)_COP15& TY99;S^1$N7N\C7RTOMG0L@=6&:P3!1!P%>%XX[*%#K M!(_9:P");[12VK#-4]@G+N@WBOIR9PMM0UNM@ORX/ENH!!U5H#'">%"!3G$% M95)BY%Q%7N]2K&#FA34N8!%;-ULS84VRXS)W:: .H"9Z?P[;]O-J^O:88_3Z MG+#+9UY E[01*+L3K((@>@?N1.$W^:? M'RUH:TJ#4Z+'LA:WW 9T< MZ_T)0M=MWK!I$WV?+3??M DD9R]STY\=J,R?'HM.LZ>42&)K7N2+EOUK)RP\ M-!Q4#_3Q8_Q! 6UAP&F>D %&%!+ M^USV7[GTJA.9R.!*\TG]-U2$!T.:*70&"J'Z FVNF-[22%\2. 1[K@WN&W&5 M?[D2%4US7.M?_W3AI!=L Q?%#IJ31D]%-(BP9FDWBH 8KS2J8(MA\A&1,(FY MA353@AQ]_+:>*-)7UJ:V([;Z!5O^? !CU#P?@.IU&RD0M$1$V4-O_!R2>.N$ MS$A_%85)%/@>O5JA]XCGYI1429$KTN9.#5RI?OO31>WKM)UJY?OU9,%R"Q.H M*F"/NX]<)WC<1>%I=6O(,A=DG0D"OT_==#V_::J=%W'28>I[?I#!$U#6^Z%= M>)%'*R;L#UE.GLV4;R OJE!L@:0.AWI(C..=%D53.1'=8D.@E$CF(FY\3'9P?Z6Y!XE%,99[GHIPM8 MEG0H(9%J4[)"**OJIWF;1JA]@PD?A= Z9+ :#95OT +DU:^8J=OP F6-,GR> M@X0:YJOEQ2"Q?@CU_/\38@K_\N?O/_WPYS\7,86VQ Z>CH&@ 7PU2LO^W3H$@$W^R@UPY:HF:CY4DSP'IT-2#^YHLH^W*6X0"6ZK-*$; MI L96;3:8L] ]9-A 1-5PW<"O%JASQ!O=P8UNQ)$ZHB/?GSU%EN%+^"T<))& M:ZU/I8]ALNB28>&JGEX)'&T+&%1C9_+X#9*1BL_TMW[(U%E,OF_9*GRED<&+)Z-7D.>&/#16R^]SYFN5A1.SX!6Z310E_\T-]G^WM_ M?W+"=;'\!5F?51S_=,$^<4&^<58 YK;.V0%6LX<6T)%*2:QT^J>+/8,N&!.Z M@F.2YO+1_A"C'>;@A:\,(I)NHQCYVY R/O?X$CMA@C50:MDG?PNHG=_[9T;K MFSV@=+UY<;[U?61I^_GJ;NH5O3Y=L#U=Y)NZJ.R*/#Z5?5V4&R-A,<"R\>:6 M@=*:_YTAS.EW!^A<)^<"%4WQAFH=T!""#&GQL:=H/^7BQ.G_X&K*" M<3C+LN6IXX?(R_U=)YU>OECI/3LO,$1Y?M=HX[OC"P&/SI&608V(<2!&P@H: M?8,/V0<@')Y]XJ)1.N13O7;(^8).]$Y[$;,BB $^Q[$6^[NAL9WB@:M6FVY 1IQ3[ MP!3E.H@P18R3M ;:J35'RO584;5S ();=&0R2,HXVF9[%B(M%S8VF@/>.\BY MU4@%[(E4'B_MD?0;YPEI/8*X [@3O0$#0\WE_Q1 9Y)3O$?X,TA@ LX?O.L, M0=F>E_>H=QEB^,JG"YE# +_VKX@$9'RB18+PY\X<^BI+^OZ[[W\8/:Z$.936 MFQ.#^$YJ*U[Q:@T6S#=-1LI5%$*$/:W!_N0GO]),0_A3[U"5RHH7L-"G/'V1 M_H6VGK_X'_;?"?V: P);SP.L0@PMD2FX,5YW3 &/&9A/LV9H%S[(SSVY;3;Y[._(=R_8\WBQ@OS!+:)Z.$O' M]J@*5-9Q_91W])TR%M$PSFJA'@1QKY8CCIA3_Q&])BLW97GXT%@R0,1N3Y^H MWI$O#9LJ?.8"VB(ZQ8Z^!]8;%1Q M?$HHF]4\JJ :2J)3 [;Q02I"3%ZB//T>/:"T M#/]XB4B_^3AZ\S%3N3Q^3:#<:&F+A#1^8G YM5=/N14PTQ6;(=$:M<@/^)GT M <\W=?%ZO/@M[ MS__^H&FV+O4W9 L@"E-:)JX;7N,!KF'?2Q?]*>M1G%(.5 MX%FGV,GHI99D$4AY/!&_.?T02*+6<+<6;>0SF@,<_<<,X0^JH$L#K.UDM1)'1@'7*]9&PN3@TKM7%,&X9X:CZVCO^'WKM+/[7';GSE>]^!^Z[@2M M.O6<8 _H6_KRCH(W]"4*TUU?X;Z7+W =CE]$=R(TU,O/P E[M+$IY.Y.\I11 M'_4#EC5.R^XBKU/N?2^7.PL8VA+&-/[V83;?"L9NG\)4,7%\6PJ[+A/9UG)Q MBQI*V+?/"_)33$9<\,_K_+DO_C-*TX!%6.\=#TW_X/.AFX2JSP.T9M4#EOL/ M%2M02*(BS^F@VL4.*O"\%@4.S@RJ4UC+^"DX\'(E2?_&H0VWXM_^^+>+E6,FGC_[:"WHN(LRSH?I 1%-9RM4M(V3VR?OA[%6/"**E-, M4&^TX2'ZYP=&+_,MGCXH@-YHN%P4U[_%V&Q-["3A' M\X*88S/I2R?QD_6F#.RC88/#!$J2Q4G>2+&\R0R)<6"MY8[F !^J)=?A;3K$ M?NCZAX F ;O5&NUCAD&]^"G5+#S_S?? A^>G.U(D'W\XV?F'EX@RWI-\7N0K M5+?(OS.9MZL6 R((&R*O"?59YCTX22CX,.$SLO+#-!LB[TA=M%@E7Y\39NH= M/P!F/X?5G0VL=:/V2PODB+5RG0;DBB!V(LW44QY#?\Y\7G[_^"?_K^TP]__8YP MOL_?__#I3W_ZX=,?O_\A'UX)>HA*TVL>GHC:H8977G=YV")I^ DH4]= M'@:TJE- "MSD=9!/OM<5]X 4LDG\B:="TR@_6N%3K [R)\9-Q@D%9?/#2"WZNU$D[.5NOMH5JNAGADM6_4W-/NG.P*%*;-&6Z7CWT!@O> M-"*GM,F/JN7QW((BXA:O3NQA[&$ N"T]9F@ M7(Z5EU_Y)#$F+ $W]30[&B+G45F09>*[E2\4U?@-E=L?O,7"FK; )0TG%LC/YB9P1.TV)7A&+$-LZ)9ONW80D,X)/13;T2)3NI\Q8OJ0=D. Z.M8N\LQS0=<^\Y M??V,H%T+\E:8S3I;UC88JM4&&?[7H6)"\J] M*PL[#XBJD@;FVYB18ZG)9:9.>I"H5F#1HU\NT\H+[\R9HZ(NE;!5+][91W_G M,#H/"SJO8RF:+DX(A1DJRXO=A3??7)0DZ\VE'P10[/+TL"#X BDA0#\!;F5$ M/@)PO[+/G!N8C'/-%;QZ+JA9&(55[HESH*Q3T_<,>67]J=^ALO;9 <>OY4.Z M_ 6'G7/QG"(T?6."WE!Q;6RT]M'%GA0_PJ 9@O+9Q]=BX[O0:Z$>DH55F)/3 M/,K%JU7K\N4GJ<\W+J ";U!2 ;Q2BO' /C>5Q;BT$C^@]+3P^\+74_7N.!OH MX"/T\4P6IC\DO(T&.!3HN (TEO?."IZ*8&L*'MTJ$),4OSA78&N-M2LVW<-$ MJ?GM)@V5)+9A>V],D!TW"E0:?38JJQMKKM$'0JX,,^4Y[0\.EL%X'M"O(5C^ M'FELMQ,PO_0I?)^N6.&2%Z_,V4U.>$3-=C)P\PO(OB,(WV"(*#XV5?B=P,+1 M,FV]TX07&:)'Z+>X4DLF8TL M=9&O9?G6.-ZZ.:$S7-J*7XGE+INI#".7.EZN.W77)IU&,;>O"#/\L1> MN(*1TRK;%TQ7G+J,"B6&R%-N2X8P]$-1 S,OW2A47UE MS]EKXL;^@;9S)8XM"&4"P?\%Q=TS6AKNSNKR^#Y0QYG+/G"1PA?&[1@T-'PY M357ARAV"^<(79.6S JONV>@-P38;:$*4UV]_<;X].2G*&P'04MKX'^F+ MF93^L[Y:7?ZY2AS4!7SQHO[)3^0'^M5/%]6.((\H=B=XN*;"B\!9FF+H70;] M@4*,E?JQ@88'C-/JH; N#=8] TKT2WIBE.8L(STQQD=#*_IQ$T3O"8U,VA3 M3]#/@K"X%[ L9_&1I)A^'J3F9+XDJ][PN\_3U&X< A)&HF<,02U_H ;&^-Z* MNID)WR3:UQB3SJ6%8HHT^?ENL?Y%_8(*([>&AK+\#!:@. W4"-^\H M4-5<:MH'.$6176J%IXG\MU%\C[9.4%;77NT[\_2F/%ZKTP&Q%0%\XB(IOG'A M[$<[U'% S$7R&8+6ZDPKA6_T* 0_1.M-W>Q5IJO<(O18R(1]HRZ@B$&T:=>+ M*S]S@;]S\3B9\#DBS/RLGXL-PJ<,>96CDBHF3\CBI.4>#QBJH=H%LX59R:$$ MEAY7PQ\.DMS2'\4'**M!%/HW?$B@!Z]"C\E#LHJV>6'58%L=.M8 M]IJ@?V70J?.-A,*>&@]:K'=!%YPV G0H:)H&& 82>ILB#"NW'C\Z1[#O#F3H M9ZM-;M4_#0INK.:!+GDF$/"B,YN',5&@V/,!N;X3E-T&+J/PI*S,2H#*!3B3 MTR.MPHEB4AX'XJE>HQ$3,0<%+&=A=*UJ3P98[2Q J/4LX<,Q%:GMHI@8OTET M[$DU.O!"OX.5\IC?:0IQG+K]NK( ,("MGD7TNA. 4"T;XY@XJ!:%ZHJ%/H4=5[%; ]V)W7S3^(^*?;,1?R - M/ [I[RC%LNE@/:_U864M2?.2@07*(]DH@L4_&-Y\.^J[?=P\<'3F&060:%B/ MF-1W>'?KS6,,55+2(];Y(*/N ">!82!YVL7>F4!5A?>$92P]7Q)+4J2=L'++ M#RC5.V71;*/ ED&U*\_#'"YYQ"^C$_Q?_W 5>;7CE(\T3[ 8DYC$-GZZ2M/8 M?\U2+CUR1UE!;NO-AC'HYQU":5EHKLAL*O_IAM;\@E"'.'$"'OV=L)SYL_P: M.AG>&PF)Q@_@GGEUG:!2]K/1SJ!UTCW6L.0F0C0#M;GY4%(8/WY7P!OCH_A* M2J>8/T^Y)Z!U=/+A5MQ6%F54!!?PKF!SC!4;!VN:[_E.?%S'-$'^"\F/IW$M M"#T[D)E +*"7Q_;@?-B+2+H9;O).2EN>EZL_(B$MO6NH7- >:W?(V*2+SU)D_7:5&B8J@51$7H?Q<%'GYP M*>'3QQ>5'@V^)J2<9@]XE']?DVIQCT2-)93_A.]W[$.T-!E%JJ>27E-"@+LN M9 <*F@F$7/"XA:1,;YTH*E#KWTEV-+*2"8A<.5,TV I0L$8=.$E""H60W@3\ M=[HQR(JM]RY%++>EG+RJ^6?@)Q1Z47R-#E'BITF+]==_MN(L>04K$J[JHC?# M"J D%5\YR9(\(+NM8 709?(N>7XR-R7/$MX^Z38'URI)VS))C^GF[UGE\<5: MV,IU8_PGI>ZF,:)R4=;<7;MADH.OX<2#2KGG5_'):P FS"% M)W1@SH":+$]E8*'P+YUE!7",!:_ M8#*2/**"H5: H1=( EFN;PCJPG&%A(YK6 $X\Y?AC?=5EJ31'L52 MWJ$[UPI *SX0D$_7FXH(T!9M]6>9YXLOCK_+G ?T?A.B>'L42 W<45:X_FPK@&7&J\LHS!*4 ML$P!U@:9_H7[]"IG60%<1>ZLAEN(S+2LX6D2H0D)B6E!&%E0)- M/%E<:Z(5)U7:C&_VAR Z(L0LD@)?#A;]J!\+C,QY3PYJ-=$U3@_X(2M0V&8\ M3/W/NV8Q'3JO%T;-H7HL3&$,M$=M8X#/9 MWCHF;T?HRH.D&V/-DQ+>EP_7$P3+%.$MIE S:_4:O>''T-^W]0'5!(M(#*+N M<@N 'V98K&3R)7[?+Q'69,I"82BY^89)*XH]+ ?$1V)T!PD-; <1:5B50RLF MTU$^9]P("([I_/IQS'^-G\T3=*&DLHI?1QY_D8\T#T1%Q&::$)6T,;:Q"$9< MZ;=9FF&*PJ(WV/5:D:VG;7_T?$WZLZT %LL/+D(>>6ZH'5@ M@,!?J#?9"E!7^RA._7\SQ;*HYT@T2JZ]13+>"H!JU0(9AQ;&/ @'&Q>!K\!5 MQ'M;6S]:@?4;)X:DY^01Q;GYPG>YG( WT H0"NFQDDER+XLJD4ZP%B2A/4HX MV I0GB%DWXF]1C0&,?\Z0=Z%CA_GH#/3"B +^SPS:TGSW82#S8L^3XCTER4A M^G-XZ[^^_,B5..1-=K%2O.49!'0Y\6 MTGPW\87Y$=J3S9\SNTL)BVP@\BO^]8L39AL'@JTYIZHQQXHSU(OI^#GV4RSA M;4X("RF6L )L7CA'F<,N]L/IS+,"P&=$#$ 0B>3$OZ(* Q6;J55SK ,&EW= MA9#F !SS*_A#O#!VF&X%N,P?ACR^NTP2T*DWTSQW M+8IR/4!T"+577B('GH3\AJV\-R?D1)7H3[7B++D-@WA')^XL9/:D2"U Z$N$ MR2JN5PCA#K $ZR!0(2]7R?#3E.TS$BE_C3:^RT^*5L^R CB!U$\#E#JH"72" M%2!1YW8>XB+1#+@#K0"A"!2C;7KAI1&?B'"P%:!\<8(#X-5W4:/\Q#U*H1IB M7K@;2PWT^D,Y2JZ7&^$>@*.UV3:$:QT44XV )]+U>O&[KU?>2$N7Y]K=#,E5.M.#$2 M3%7O",#UH[:'V;']V/'*X."6Z56L>VA-M +$(GH3*PF8X]U"UT099Y2--RY+ MDC*:*#Y HCYDW?&"DWACS+.$:HD!YEKD)4*T!UE!1"NL<7I^D$%WUV?D9C%Y M&OFU/W3G6 %8A[@=&Z-T.!6VP,%2I:,6D#1"PY*>12231A*'](4M9Q'*316AREJ&^8I[IE/W1>,0M&&+'F4L#.3OX=-D,"\XB MW>.M;6-G+W@ F@.,2Q\K3!4>:3X<.-NFQ%'[T0J2$=B^Y24EE)/L (UXF%KJ MCEA"ETXP?Q>>L_#&\Y,H_)H2=/\]"J!$.U2*$$E'JAGF@;IZ/93,5)1)SAMD M!XGQ+P*CH8HAL6CV\QC1V.2;;REX/;&X?>_ST"U;M!=2('EXF7( M#UB!LI^U%C'_$)NNVZ.LV#SDC>/A.[!8H#<41$1!5D:G:TPS[MBA)11K M>>7\("'A0 NX)L2;Y1TV5]L8R4PWLL%6$%O#N"F^+-R!Q@GJ"5A4&_>-G\P3 M35'R[#:*BX#6]6N"YR8NXD4(*&=8 %3@7N*Q@7-,+IV0XQ40C[*"]G]$(43A M8X:Y\O9^Z(-A"RP[DJ01Q13S9\+B9$D>%G1:;:87"@=9<2*Y_R[*U0+M3EC\ M&58 56@U^"9_#2%T^2IP_#WIOD/_X/TSHVYFMFU!M&*OA(H5=%KK2(L/ M:9E2\ M45;@OV^&V-FDA961#Y(&AEU"L[27,4^Q-::^TB[?H4S30BA/D4)F,,B7# M;0&GWA5!T>M;-MX*@"07HFP+*H_ [[B$'6 [?DP2T[Z0RHNHS.K7Z#.C/=D* M4/,,KYIA2F#A$8VU I"Z,M'OD+B&3( M$3]G!SKK9K8.G8=4TZP KVJVR N1XVM8J4RL,G;P9UEP:R&Y^_/?'O&KCO:^ M*WE -(9;<5; :KC2#/YW*S8H$3GN9>'_.O.,![?2C!GR%$,UGC=T[:0.Q\RA M&FO%20G2&<4IS]()5H D(:(G!!(N%':HU">G<4F?.]*C;"DKT,",4K*N2I4! MYMGT$V)-WTC'JC<_RI+@2)T!17!G$?"9J+CX2:N91\:+LW=BYTM&"HJ*(H)Y M@ZP@/6J* RE $FC>&F2-XPM9 *&U5/"):EZ_]0&2F2DGHO: 5*!(>F6SBOPW0KP+UT M M KGG<(I?>LNZ5("Q6--<_2B]X]15'ZU28%,W^8^!Z"U#N;#02];Q-83X\0)8AEO5"N30U_K' M*/*JA1F?HT#0G%@TV@I@ZEE%L%FN%ZXURHK-5[FWWKMNP6-.+2OX<<'HO/2] M1_RV:F:HYYHJHXMO,NI.!L^SNJ MO^"JL>8!*21?E0E(-- *(KO9;##=KS0HH_/L0 M[L7:3.1U@EI4(!ML!24TNJNK%%S)<$O \=!&S TOCV7,R;V\;6+W=EHTW_SQ* M5=5NBJT5IW.-,+V[?BONF_>[>>S3:O6M*O7,90+FZ5I!C;:_N=M\:P'6!U"H8E,A[?9VVI!5HT4AWDQ==U9YN!;A? M0\SZHFT(+=E>G&^7*,3Z7)H4_>,?$6;L),(W]/*X=I8EPP/_A.6L0(>@N!@Q M36#YG?S2I=%W?:)Y7EOO)_"YQ6,;OUM_)J=6C1,O8@7HU#%R3^L'%,4TI!89 MQ10[P"I+7FBP5/%H*X!IVKPJ3@99.U3%)/.LXN[ M=+WYFE",XO>E[D9\HN]22FMQ899,?N:T]>FWCG%C31[O"$GB30M-]3I1.L (D\(D_HP*S%'G'.I'[,JU(J?* TY]L!<)$.WBJL MP*Y*EY1RO36,WS*6\7;\_/WKBY\&K9O6_-T\7[QUOSU'@1/?!Z+2VZT15I 7 MO(J$8;\5)0<#GNQ\$5 6O1\&PG\2"J_9D*T#M MU#09"]]BA4I_#4L 9S&/.L%WW*%6@%%I'4#DHUT4>"A.U#XBK8E6@%A4!89W MB5E+$Q2_B8I+BD8;%XUR)>/63UPGH.+J+?ZW&AS2@5:+>BBF*H9GW]5K(""<(6?,+@5_D,*X#B=.$3 MR\/"P=: XGN^$Q]IF0WR"LFZ#W('6P'* TI)U1PPP7C(NSQ^32#2CR9&07(" ME$R@56 D+W+W57.#7Y0D#G9:P OW#, M:B8ER\9; 1 Q*=Q'X19N%D23"NT.U4'F64VM5CXIBP%$TKG*OFRF%>?#$MIZ M-.W0FVD%D)=9XH<0#!OM7QEWA_T2?Q*8A&CO.]EKV6T%*X!^WD5QFE\HD,:$ MT@YOH/D;2+.ARWKJ;=M>8X 56*=*RJWC$G.46%KFC3,>.5?*1% & :XOK^R/ M6+#JNX85)W?-JFDRT:'X3QX^Q2UUI9QD!6B2/$M!R53Y#"N JD8) R^N%!3C MGY1PN!7@M+BP1-/F#[4"C&K9[G:@D%#X$\XP_PX)BH\43.TNW$3QGA"20N7L MO9(5)]ONH]0HTBK03^23C)O):]E2[#_W6-;[OFDF%PZTXG0J-P=JQW1RSNC. MM0)0O;@;D+O&HM/(N]-;9 5)R6P,#)V5[4P=K!/0.W)5H#:9A /48KDWE_9#'N $G4Q+ZLZ4$\ =.D6^G7Z MK60%$DXL1H]EZDQ0SGV(AXB)>N^YM6()8O]Q=$ MP*]UT7FR%:!6_*5Y=4UV6N#11]XZK)1.Y7+/+@N8YPB/@0/"2%&3)(8GKL4" MN*.L.*].FKJ=2GK7N$!2^G6( ,/:0E:@H/ &,N<+2_>4.@[K0\W?J"?T%@5O MD,E4LY 7)7R+#@*741Q'[S3E"0^J=UHY<2GCJA_DUN/]/!_WKU$MUZOUHQ6$ MQ^^Z+&_QHYICGA09OV,WI%#+KEK1\0J[7\]UK#C9GYS8)W?%284.Q.88*S;> MUCGU-%,K-B^,#;P\RCRY&M/,WZI;%(?O:'<3;K'0ZM%G-B)%D)SP*,F*TIIF MQ>DUC3=R/B@>;04P97V0JO9%L_-)T@FH'U@ IJ3-$#JL8QY4KUVCF]BBJS] M:GZSE::L1/5=95AEC,$)S8F<$ TU#T:]8$OSL61-C85/;:?95MROAD7P:^BG MR=/S5W&2GG2")2#Q.Z7(3,2J.58 UO9F-N(_]%R@C4E6@%;+_.8+$<(BH;IS MK0 TSZ'A 9+_9L5&2ZS>[ ]!=$2YI9/_E$*FC.OD4:=Y_!&UBM(8=KTDB:S.RUF!CIS_=# 7*:98 18M_"(-=*B- ML&+3!8<4/_B-(59L^VL"K"))_3U^M;FZ:'V$%9OF5Z+0J!2M-=$*$*MBE$R$ M;(XR+_?G8M)=6-%.J!L=I/BRMP;'P:HYT[A5-Z]&D_>5>'#VPHHUU3%6D%8[ M.?O$22<8CW4O8\!6VQB1J/0KV"Z*#W M .VBZK&:$ZTXM<*-E:O$7!-4 M2 M2[)>T1F)8WO4GFO%&3<*-HC%1>Y XP_X%^>;O\_V_ 8BM1^MP+8JR)Y[@11S MK "L?K\;Y5JET@9O@A4@U;T(DH@H[D K0'C.#OC= >X#?4"2W6T0O5?RBZ31 MVGI3K0#S,?;W).Y S+T:0ZS8]C-HI$[L-6)@*J4#^,$*JEE6 ->,WKZ&P&]^ M%7C!4"O (-P)V.W=_A!';S1O64QFDN'&[0XT=>WF&W&L^:QEGA_5CD0VSH[S M*!]#Q5MIQ79K+4:X^D)U@!5;UB\)Q8-'?[85P$K3=/JT%FG,M.32W_H!BJ_P MZ[>-XB/_OM>&6'$VDJ*VFG61NJU@!=!"]5'>WD@QR;Q*K1W]JCC:DQUOI&.2B<5:0GM2*^#7T\*:)^P4S!19 ?=>P G!^]!%7*...M (( M06BC*(A?,MQF<)++8_67CM!Q9EL!;"Y'WD8Q\K :#^=07S'O>=7VY/.N4+\5K* 8+/IO8V=/ MPIZ3]6O@;QUE<0S5'/.G655HNI MC[0""$' &BW]4W:OZA+LUIIKG@1+)EFW_]#' W,'_8)]_9>RXKR93 R'!4^F MHA&H>+05P(C.@@D%&F^F>)X5 '):.,J.2S+<"G"Z]H6WLMD(:^286PF@SQRG MPI-XE/G-K](]DQK:I;YFU3KYWJ%.2[XRGSO$5,3?ENR6&#J[SK7,D#SU/U[GN=)8[@E M1,F8L[:W23[#"J Q7F4<5[2O$@L7V]HV*J@7D[?-2P)QX!,%>J_YL=@E+^; MOTTD%\KQF=;TLF,-2FZC^&7GQS3,4=@SILMD*X@2-JQZ<>O_4'U[N8X)_'?J M]LDK(4$.[\UF@_B2Y+0[L +IBB;W\G*K6E/-7R/6.7T=?D%0= FB]!'K>=.Z M-9*Q5IQ7JZV5+.)*,-8*0""V)$RC^*BKL@J'6P%.(4ZO-T4OUL=(W11>9YX5 M KB@N2AF8HY5@!V][@6NTV+'ZW8:F&%H@8'.@RX/&Y_6CI:)\H+! M5A 0

9; 7"C_)WTXHO&6@$(1PZ71^5( MQAOG:7G?\S)I_1;_2XN="899<1YU8Z.P1RYGF!7;QSJ/GR(2H-4,DJ[40JU& M4_.@Z[Z*+<#3)@^Y&8Z%(0E Y(ZU A!>*L(=A&%B739[#1URY_4?G-BC/1RUJS+&$MC\EKU'R'5C'O0!=8,*.:%.BT[ : M&3)N%*PX91TK3J\6"2 3%K@#K0"A>/D?^"50^(D@EPU 9S MC9.G+VN>5^+M^HCP-O)^5NJ?-"HLJD=;<=;K>.N$3$:#)@!1X'L.JWR/9=@$ M"@K3:('"6EY8T*5*U2 +&Y= [B.L@#SNHE#@PF[^;L69KL+4]Z H+[YKK#,- M)C>:D8<\ZC[<'[(<_TVOU;TL;WFHM>U E.<1OP\^0L?'FLR5<_!3?B4NP5 K MP #[!3X4)SX^.Z0B":B#OQG2$0K=6)E(NJ'58P J0 M7R" (<-G(K4LM$=9L7FB_5>2"\31^GHSK !*4'=05I5$.L,*H)B%&GEE-3": MI"0V;BNFF!?+[GU,1AZ4S8*'AX;"?<&"]3[;W_M[CL=!-<&*DZ*I4.K@)]O+92Q9ZTC>2"N R#.D7R+R$L2H4_LN M_=G&.Q]=1D[LK3?7>),NUFN3JQUD'#HAOQ62?+1QM2AWT)0])ZC36>3(:8ZS M@O3:D:.$"Q8ON+C8C-Y,*X#LU,[M/>*'U'1:P@JP*]V^3U-8-5(5A_B"%4BK M%46'6NC\8NH:PXUS6R;*"?K,57^T!/-%2I'X%6\-LF+K-_M#$!T1IOSXS7>1 MH!IJ@%4Z1O]/19DC&L!/Z@9(K14#?\*\5/J/Z#59N6F9Q'T3(%=1>*?31"LH M@U^3^1%+TM_\A$7+*LMB=5[$..M1579L_RLB_<*;Q==/7K';GW"KJDEQKS2\1KJE6*AT53+6DXZ@C?L0*!,EM#;CG@YW9)_4TG MKVH%<@3M(AG?8W_%)TJKNW %TTXK6 $T/:G"_7?/'G)Q[W7I!"M TE6:'O"3 M_?*.@C?T)0K3';]+8L^UK$ $N9=4(89:9XIZWLV!5H @D$$8XCM(+6R&Q4#I M V->B@9:21)^5#YW@!5X+T6Z(@*(.8?4'C/=N1:<#0O,BJC?-4.K9/5C1*K$ MX8EQV#XKQ00KSJ["HE2-">QK%*O575,F875:P+B)FJ5$-0O1"VILZ,TP?Z^> MT%L4O,&UJ)4!(:UWOCC?P*QU&<5Q] Y#G /^.3VV[EJ?1:P@8>AVD:PWC>)W M1XU:M7HSC=L.6O7/H;X#B1J$ZQCA4(4/:)$[6)PQ"C ,ZZ/A,X%E=)&.$[5B!08 !1WXUB MJ!5@2.)21:Q>,-P*<"KU0N"-%5OKBB'FI>B\_&ME8RTAF3/&"GP+.L-=0P " M\J1*3L\ES)]7O=G(O^%0:+OO]>82*Z003<%3RZB!6@ZW9,E5DX MNZYAB9'S>>\$P24KYLRW:M:&6'%>55^&AS;B@B(:$9@Z*U@!=+WEIO0)% RU M HRZW;@9N"0>9<7F!=9O6?:$9((5(%5L(D00+!EVHB>,2"=: 2*+_9347ZL. M,*^R0(9M7FF?J2)YS>87%',J\ZLF6'$*.B4<\#_2BY*4^@COP/JN904BX'9P M0N\*D4DOQ*_[*N8)NY9^_%D0><$;9,6Y-44#? )%I^+49H&Q.Z[VK?38)4SK#BU>T[GB](N>HOR@O%89N=JI?K3S9]A MJQ2J.!M /-2*4VN6U91;?$2#K0 EEY,>G2,(1QH257VD%4 \'Q!4V2FCXBZC MD!]!S!MH!PB[*";B$+$LB3U@S5%6;+[JF[R.LM=TDP5M:R"7J+1F-H'\__]0 MPHA9X*^57\@/ATH5)OB=?;@%,.8U210X\>^QF(:!_OY/W_WYC]_](76^16&T M/_Z!@/^$_Z?(]LW_"_G7Q/IP%VZB>%^O)@JA*O_UF^8>?E,[">0TPJ8H!I_0EG20#U-([^'LC3MLTBU>D5S0 &PQW_XW M.@KWV!PWT289)RY+"M^$WG6E4EWUG$5#)\4G],6*K_!GMU$LQF9]U+0'+BU- MWSYW_O!)MTQJ^3I$Z\0'ZC3>\=:6!<,GW3+7N-O::7W4I!N\V:-X"VI0'+VG MNT9_B]9&^:.GW?"WLAP%S0@3[[8]=-K#Y[0,:9]]==!$VRL*>^ 5.1NK_3SQ MEN@YB;D[?]S$FQ04P.=LLSG2R$;S3H8Z6ZV.G6BS^)*"(>;YN'^- LX&Z[]/ MM*D51HE'T!(X6\ZFZK]/M"E6G^3X^?M7$BS.V5=KR,1;R_LV"@1=[K#)!;-Z M-5BN5,:&3"S?N%%\B&A)%I(>>P5*8GRL5M#GB#FR69,"H&@WU=JZ:/RDFUYY M'E9C$_8?K,:BS\(-\\8:WNSW'3;[O9'-0J^'=?P2O8>JK59&FM@HN3SKF#AT M*M$UHMTVAYO8\F.4I$[P?_V#E$5P!T^EN7.Z@%2U]>K/$VU)5!:\LJW6D&EU M)W[LX/"CVWTF&'9_*LAXXU38]1[*'XOW[SI[_]_KO?7!RPK _2V'_] M!K\B68(W%!UHPAW\QD+H[RDJA%LE^\1'F" R\CS0TC)W,KS\\-U2\2*VL.:H M^;Q4U' MNCE6OE\V5D1FY!P]?UPV>D0FZQP]?UHV>AKF\1PK/RP;*P*;?(Z= M/R\<.QP'0(Z:ORP;-76'0XZ4ORX5*74W1XZ.Q4J^ A<+P\N?%ROY"KTZ.686 M*_A*W$@Y;@86?_%F7J,SP4[#;Y5C9+$2;\-EEN-CL2)NVUN7HV2Q\BW?2YBC M9>&";=4SF:-DX0*MPB.:8VFQ$J["[9KC9[$BK\3#RW#SE\6*O1*'\02I.OH9-Y?EII/S-Y,M_&25X))EF*) W204&:Y/]21NO4^HWG)?D% M:7[RL8.$%O79.E2)@.J?^#_0\NO-"1!4;4FOG#@^8IY6*Q3= $5OKC'0\O)P M/M(\&LD$8T#(\\.;M,4?;,,)8#HAC^8N"C"W2VA[.?WSD$\W!F!GD&P$XC%_ M5MJ5X1N[YXTTB'OVK*PWK*P-EE@C^K0J3T%CJKDK3UX(K6?$@LUJ%"D5<"GN M%). Q!D6K5IO@!@*P7AC( BJH[:;HS5 4<\S)YX(6E8T)9'F,$O.X FJ?JXW M7Q-:W$D+_\TYQD I.H$]"'=>&V)LHZS^NX: Q!MICE2@+F*%?ZCOJ7B".=Q7 MZ[')KBAGH%&NHFB4P&$PHAD&!;<(98VIAA46]#:ZSA-UCZ^!KV MJ'(E 5G-_UN,YD4@KQNZN)ZFA>!) MWUE5NYD-7] BD,5W@+71LLPKI_T>REUS#%>?9XVKSL^@R 6X-&QU?@DU?(^+ MP&$WK+7=FPM!4K_74)] %X%&]3NI\$8O"$L:[+_N[V:X^7[6N.GV/G+][$O# M4_>74>+F7P3RNJ&+%U"P$#3U>Q2EP0R+P)SZ'91'2BP(21I<7BL8@Z'LC[-& M6;?742_:8VF(.\6D.A*VHM0);,)6-_P(@UH605E]'TD-77'>B%._D7KA1@M" MEH[%D/LJ_FG6[*K;JR@,H!H%5[814D?6WC5::R$X',=8N)#KJF;\+>8^;WKJ MQK\DK.N'6=---]:E$U(W"MILHR[U=1,&ZBT"/]W(2L*U_SSKVZ?AVN'''HZ" M'=N(2#= I*RM,CZQV%U8Y9'@=(=2WW6",ZVR,MN$_WI8'#ZJ=4PV[!'WQR.* M2:4I 6B:DRT!CM;,6F7X\8O]?Y<4* 6J- M=>%YVW;ZHDXBKXUB!#J/ZKK%K\EZ4W,G@B/QW.U >&_H#O]1)))S!AJL.?"& MP@RIRCJVAIG>\"V^G+S(MB(T!"RM^/\\A9'&\*L8C'F^0 R4(RPU0T^$:LY @(A';;']"7B.; M8[)2'US&+XCVTA"8BJMCS-6181[\7$-4T(UPN#4 7#J)[VKNGHXU:#Q-L-C+ MWDL%XOEC#6\=0HFJ+\YS%(@MU\()9NOY**+N:*=9_.^@;Z!K1/^KXJZG+VPE M4FZC&/G;D$9&N4?2VP1O%E2UT"-_"ZCNZ/TSHW$NBE)S(WW,&/)^1I!SB[S5 M&WY>MZR9TGK34NX5]--Y&>L!EG'E;FN8DP=1$ #.0^^+$_^**L*32#843S ( M!&&\4LFD/L::A_W:#[)4Z!D5C;;M9K!]Z3I+NZYBKG1EC%DVEFDWPFJ*U1'F MMHE"C,@ W\F5M_=#'_AGBI\=^4U6S;)'[=-5]RS8V%HE'5*$ RWK&#H$W("<&_]Z/@A('@=7OO)(4J$9;,[+V-6D'V(PJA.1O*; MKIADV)9&Q.(XV@MBRHG\>^V_^1X*O60=7P.C\E\SD))%EVR A2U!"BV%D.$S M8XP#[^T2;; 60<>1ZN%K6&_:!B- M>+.,RB_Q:R=^QD6CC6T?$Z?R*:F/,1DMU]1T%0JR;(9E#MS[IGNNGC#4](K>@ =G46+P*N>^B1@'8O((^DDQ!6;VWL.9I'B4AT+;J,)U>0*6' M>UDYE%)2DB!V$7F2G0B+$VNPD'J]G4BIZHM:1,5!/?R(XR>6E2$J15+W&(UE MY8C*;Z BWF.ZM%#K435$- E#YU\_T#EN' K#\]\^WA!QH$JN'0UC*OP;15*( MMI!2?7YH:@3$Y,@95G<\3PH:PK&0X_-#@5($-.6(^E /9.:U'$L+J2LCQ5)W MTUJ.O0FT!ZN+?;0K)[,ZW!]%/Z;<=+M\M6#3K8'F-NT$B-'/@[/'?ZSXOKG5 M)CI,-!?2_+B6IKB5OYLO+T$) %[2*(3+S"E'HC?'<&I)L1LIU?#'6E+A5U&P M@3/4//GP>+]^>6S)7/.@G4/AE>?L-?$]'VOQ%7XHN\+"\>9 T,Q%M2C;M%(X M3WIGV^/,"@>T*N)U%F/L43V3E.=\0F!:1SS)[C$SIDL;MS M$A[^961GI3W?MOM'6!?Y;4V4]N3F&XI=/Q'6>^B^CL'"9O5F M6=(C% RV[;SH31G@P&0+#?Q@50L3WT;Q/=HZP3-*TX!F3^V;XK+FI$EWV7V+ MEI+.RL7:!BWSV^MUK\+6G&Q0 M+LZS>I*72"#P5F" _X5>:SP2'61):Z3J5>AA@<2/.32I*5[+5K ZJ.R09\0K''J M%,P*:YRHL&$+%YPGUH01::,4+C@?>XYNA-Q'/8*N070C52:8%(]%4<4U*HY>^B\7Z:NKC18(H/'PA_I O3!26S['G<21&B$KY?]TW ML35OZ'HHI1W]-HHQ'X_QGW2JHNC,,X;^:X052]>GKVSHK?91G/K_EO$TV0SC M5,04+PJR1!0A![+F;;\\21 TY6/^UX MCFCFB*#OB<:S))\_, -\@IKHZPU&*:$33#3W0%3WOO/J!W@#%<<#9G0/Z)W\ MS"V=TW:^,U?=LRMB_G@R\Z/O4V>UG-0 N%)"UO$ ZA" M6+_0H.XS^P63U+N8F_17/$^^,08;,-U+I4L+6+Y4V749BZY ;B5Y0E@H$=88 M5,_[(.=\Y"]_-JKY>IF;_NS$L1.FQZ(=KTC=Y0VVB#CS+L-N%LP/ (L2X1M-3#G!_>R"].F&T<-\UB?L<.G6FV'4DS:HFT%N]E>J@L8*YV MYV9SZ01@%W_>(:S+8*[FI\"Q"U-=^4_LD@#7B\4/PBDK&O224(XN;/PK\)3( M9YFMR H7'W/G1G-R_ID)Q]L1A-H]^+#1S5DCJF_0TFGV=G;N'PFHCK(?-&#< MYB![291> TN=<;V("G[]HP1K=4@[A-TMY'9W#-(KLW][QLDM@EK'#*5K)5%P M(L\6@>3^D6OUTL3*4+!%8'-H@:D6?39H]4M[>>DPDM(XS&-9)5I/$[>D4L4B M$#F2N-4.Y%P(9^@K9>E%F,Z]N/!4XI0T\G7)][ZK3"4-O5W(E1]:H-(+^AVT MW+&]R!W,)J4=7#Q*'>D(4X%-:!U(?I*RBT44Y!Y(?M*/"U\$5OM*4;W#U!>! MU:FD*WG _")0/;S)2EYZ>-[8'%K"XN<(#%K0WUZ)JNO3/TH6PB*:)PPC&W1) M9Q@%K=;)KCV%@V[)%8N@T+$E MW$D$4@>QB9H$M:RB+8P5@!0$U']D)J#FM* M!5-GV8QR"+:1]&$57T\M%6E87HRD8]3@X MM;0O[E3,I'MVU:"'L!S6TK5M:[GHI!B++5%D&^H\@/ M@ERY936CT^0'VDK((K WB85,*T5R4'0O1P@0)V8.VF+17H1.]6J=E"ZZB':7 MTT4W*C)6%]$F,14F"R&2#V,>'_3["9+: M##19NO83-X@2+"%?H\2-_0.-.;O,$C]$2?+9W/WH59LAWCHA"YPKFT71'(7' MRM:+H#KH\)GWD5)4[1]F;6-E*_(3K1PSWOBED_@))":7^W_!IW@9B"O[]UC( MCD=V4.*HOJI]4#M=IJQ1IO*<[3%3/:XWS_XV]#>^"\4#J"\*^IKB(W"QR')F M7*8-@*J)BWB"N58LL@-1\0#-R7;<>_5QU:QWFGA9R 7F^]K.Z[X*P@TPC_Y' MY(?I3_@O&%+5)>ZZBF7%)Y/R3%6WN\,"=MSPG@>L]BGSD;:0J[]*]X]QM(V= M_7E==[9IDLJ4K%\#?TMVJKK?RFD#J]1M]%85ZJYT]SLAW74NO0 M:KF%FJA9R"-7*;YT=A>VR 6IL"%5GW#Q#(.U@%N;4EU1Z10[+J;&X=0],S(D MS/HR/N'_^:4$NU$P_CRN(MLT!)U<$:[JIC_[Z>XJ2])HCV+%M=2=;>R**C:H MNJ[:T^VXNAT/LWJ-]1$UZRM=WF96BR7.XXHS2+C5A'*P5!JF M_@J#]Q:K?CKA'H?H%O=8P(Y[W./$*CFWG1 VZ]O<>*#KG4G/X_+2/2ON9V.0 ML=?V'F'R0D5D#MV6ZHU53++C1O*/H?J JF"?]46K/IOM2N%GIY\*2\:K+;&* M>2;[(/&WIJ^[=EK"CFNK?9"-))P.J%K(O;[#*X9;'U)PB0CQ0&JL_1A%WKL? M!&<6!Y%O&T/0A$O;(M5M#6/W7FN;JIO?<1$[[GZO0Z[R@:ZH6P@GN$:OZ9G= M=]BR]L46##;8A>RUPR,M&FW'G90?1#V310#U0FX9JW(A4.,Y?1\GN8FBB #= MS0JN7L]%AHYKT-V ^C:>OI[9^WK:J9:1%"=A="$WG91WW44!!C:AP5SG];C2 M/6O%()I_3-O(?HA2I/^\ZL^WX\'E'TXM;%@?([.^D U;<:6JVGE=QV+C'6(K MQ#-,]EEN;DH=6R&98L=UU#@<;FF_Q5]':-;G%\'1X*'VPRT*W:D%X)/I6@*( M]H7MMH:Q*ZRU3=6E[KB('=>\UR'7*G-U1-VL64%#5'YM]T(])P900D-:D!90 M/*$ BCN05AFDYRN!,V^SI;)9G;:H.=N6[KXOJ_M6VL!.7-4.)C(,H=1L:J=B M>R%LAN&#M 5XB1V,)9=DC)R9U5L$AC*F4S'-8# G?V?ZTD27%>S@ KJ'6(_E M[("GA=SI!T3*CSVBF'"X,[O*-TX<0FV7?/LJ:YMHN+G4WL:.E)F\PO%V7$O5 M@=0R=,6P+^3R/6>O"?I7AA>^@621,U/9F[M77#[A<'-&[\:.E$9NX7@[+I_J M0.HU;86P+^;RZ52RR?][7E=S%@5M6+VEQM:.]'^51:WT)@_M*J=E75\B:IK* MT"I9_1B13I^AB^*PL5F].<8.X&L";7>3U-]CL3D1(+HQR*!5%6,+$K2(YNXG MO]+:NO GH0E5/,,<&+2]0+,]E!;-Z\VU#+169P7N]CM!K+FD,41 U=(R>ZF5 M[R^%6&^N^=1O/8H5#C;PZ$8B>DXQ;IF+/>W$?A]MY_ M0QZ-U-4\GSY+&3R[>C3RK1_Z*2([59RA:IZ-8>KY3U+0].?;5MU,"I9\CL$H M*B?TG-AKM*N1@B*?8PZ4PM]1]8BL\UJH=T1TPC<$DH'D9]5G)=-U$:!B.U8* M88MZC%(]SQA(#^B]H@7%6!?.,,HK]T4/PL[+&#Q#-W"2A*CTQ+XO/+/FN(&U MP7L?LRFL42@P+!\[\)YNH_@=2T0/OZPK:('S^VR-FAFCO MNQH84\P8>']?0R?#QP,M&E(4^_NBHG2E$93&IOLL8^PBW6+9[RG5;K?O.C+ F.=TF2(8]3"5SCV$Y;<&#H_A&])BNW M8JN\"9"K27_:<^VP:'>K]*QK,)S.P&T]ZC2MEGGKF ^,B>R>15N1#Q1I&5AS M?/WQ U\=[;<+Z6,_ .9T3#:&:)NI%]-_MACFQ!7P9W6'[(:MM;1^C M_V6KPOCY(*J737\972T[4IS21S!LC\IYH*V#'V*4-I-O*'Z-SAF!"B]'CK0/ M]4'7,U*@[$.#.,W74B#R0Z'HXL\IT/:A-IS@)"JP^*%"R!Q3!9H^E >5OZQ MU:":PSFC2N;RRY'UH2+H>14+,^^'' M*M'535R@;@+EX0RRA5[ .'YFN4+K(;NH-R) AEE[V "8)$XK:,%_*U&"__++ ML[M#7A:04A#X7,*$RT)>9'T'>R]C!Y\8E"" I?1'ZT)2$9\0&+CPDGP)?P:^&_B>I:*P0-'0)7$](S>4(RI"'R5+RC>8Y)J5FZ1 M7M63E[.@'JWRC(IG_22\+>0NKMQ_95B6A$7/\36_S!(_1$ER%>U?V:'B(R:> MF@IDBF>[XR+FN@(W=B2]ZIJ3['B#^QUCK2VP C>+N+%GU,R[?(;R M#4)IY>0^[VA[;SU66Z'!:QJSYZ?Q?&+DV; X33ILOM*=KPI M.HWKZ:L+JUE$LK7.E>S!N*9+O#:L^=%N]=5&]6=J MN:-O#;*/@>+S=6_3KV7\P. M,;X/:]"Y^J*_](,,WI*-YH-MJ%H"_"E/?@\WY;_@BN^"(QEKKS3Q/;,F3E7I@+&_H'B M)$]=77F>3\&LJ!77*'7\P HK/'?3Y*KPE'#):%OZE[_@3ZV^^:)V5Z+1YO(? MP2JY1;D*^X!)I?R7%_RGQ"%%,9(O:/^*8@%875<9V@L"[KK'+'9W$.VWC1'Y M+G?'ZO'F*,DA12% ^7UP]OB/%<1=1WO';W:N[C#17#O0Q[64*>?;(!#" ?D>8EW<2'4(Y*W#BJ"GE@TUUC![BW>8ZV'EFCK(H/@_5K3+@MFR M*ZR8:4%0B5K1K=E"1$KE&%:CP"*#44]UM QKDFJ"B["YZ:N1M99,I9XV5QI3 MZ7UYE=0.*MNO<24RI\]9P MI/$,S!5AO0QG91JY6H.?]97L8""H=XK34\3'P)V%G0D'+^"N5",62I12)4K M+L?P"]O ^'I>W0ZVE%G7R>A 9&)E8M9E,?J^#=TL60M%H9"3"72+Z8J(6(4F MM12B,B0N%'$M^M+",4/6/'M+-6*H]!I,61-4-8#9G4F M=$<[%P@A:4B'8L+0<57!8><\XT\$DEBJYA@;W&76Q$^)$)ONL)/RI.<:60)MS"Q*U-4I+120@+G,O6//72;?UQ0_] M?<:_^>W?I\>8Z+X7OQEC1-X_,YHM*SY4R6A;KL]'F-VD(-"N*;>.2XSY4K[% M'6ILXU@VC8(WK'?4MR4E'_D 2OU$G+#2SEWX5N#-6 [\*K:+^/PHJ'#(H*92E^JT*O':+8 M,(>X!I5=.LL.:_YOO M(>_R^#6!0IU%>7'67M@7AK1W6,!< :F\N@3PM#6Q(4NE&O%X<^\KQK'H186? M#'(^+"?Y+N97!%M?0S]-GIZ_*J1&V9R!7T7HE T"*NUYQ'OZ&B,&_G[E.65? MH"$J& DH?D/>;13?9E#"*?>$_^0$&3<=N>=*0\,31 G&UJ7O/>(SY&^T,61P MC(8)._O_?3&<7?_G3EQRK?A]UMH:))Z M<_P M-'BBZL-_DP>B(&Q642@X7^CU,2EM#[KF$N=@YJM]U&X?4'Q'FA)0&;M M<>;$HLT&@72&=3XWVJ,7Y]L3UCN@LE8(VCFK@O>-:NQ)J=.*I*:^RPU^FZ#^ M+?[870@O^R:*^:\4=]S >WE$,?CTG2VIF8:?9,PK"2(2_'>"B"<_X;X)FC.- M$8^XKC]6 #99<.]O1#8KK:DFS6ZAAQ6U1AWERALM-L6I)@Y-7M.!N?W#\F(1X1(E(N10,-MZB%L(XP@P5_\EK$7X6RA:J>>84RU*V?'3B M=4P,RA[1'/("5R*]4V/FX,4.7HO+Q)!(Q$_'3>$YY:H RCG&4/\E"M'QBQ/_ MBM+;+/2257J%K^@1"S8\%5!WECES(2W/B3R^A8S5MQ?9$?4FFV-;*$2Q UU; M5MX>OU\)>8W?D!PJU:SQ3 V$%E99NHMB8# *XE6+E%1UN\8 M,\G./]Q!2#O^E>^3T)AG1_J-.+*Q;[3P//-J]*,0RQS[5E3@K#'4/;RPQ%0K MS&_>&9?B*,%F$9!57BH#$N:-)'<185RWJT8*S9MSR M$,DJ6GAQB7,EG*'"&_.73Z6GS16/ZIA6,84M!3=R>T?7<-2YUL=0J1SUX-99 MU[K09]FJ8I2SHY)N-D2=4.-9%[20AB?7"&F4H. *#EI.#/&P-"Y$5D(ZI0\QY#VMZ4C39&WEYM*YR]L2S6\3EF!.%,L?,!-6 K4=/_W3-'(L+T95EG(V7&IJC9R&ZGQ@]NMFJ M.<*6+-MWRX/-,;9D8;]+@FV.K\7+^=P4W]SONA"OEI2:1/G$.8Z6+,UW2%O. MT?7AR]=,B0YNI8LNVOGJ.?( M6K+P0\)^CJD)A'0#K9K*+DW\@(T9=64J0E-(# ]6-T@_ M5\I +>\T].+X^\RYP&]WV"NLN7W&) ,-%HVT'45<[70%/3>[HTH9 S*!48K;)H_6& M7[U& M;^@Q]O?<0FG*.4.7C76.;_>!*Z;^^@#+J+Z0",!LC(C9N!.]\^:?7ZJ8-V[*:K_<72EF#%W0,,*B$+2!IB%ZNIO4F6;L\E!O'1@EH=VU@ T^ MH'2]N?8A=R3TDG5\#]]Y)7G.MU'\-3PXOG<5 M./X>1!?VAZ)$"K,Z8.0*Z+??6I;HT-U5ID$3 687U]6C+IQ AY@KADY406H> MV"[4.W=\=M=Q.$&8(AUCUE58/NJ-6/&H]"'DN992Z/&,-)3PN6+F-';7PQ(P MZVHF0Y:QG7G(1?_GE:_^?V!-5RB1XF_F<2O]\:=E@QHC'WLF2!S2[K6,'.\3 M:)5O<%M&+G-_M DL@\O(6#V!VJ0FS&6DLY[$$GM:3Z?+>34:9E-V+YA1:$U1 M3F$=\_2%2I&%RV-[<#Y,&GLSY"?,11JHBF@+H6Z.-P>"=L..)BSJB4/[@5N- M0CB>W^88DQWY:, BI5B( XY"8O.6T(=TCN%(BF(W4K+@CQVZHQI*,1^MMC1H M4T)KC$%*:/9/>HC X"Z-ME),LHOEM>0'';YW/U80E?&&8L-0#"TZ?4VLZ5AD M]2.:58"USW?RDYB):$VV#3B"_)ZP->8: PT_/2Y"'K$=Y)6Z("E9U$==?YY= M(,7T&E.^U 6F^L3Q[GVG(FI2GM!E)4NTO1&D]V[%UN;KZ_SH;M>MTE P^'Q_BG9@]?K7TGBZYFDNY MP"-)(?)79O8!,=KDV%6G' -S;RA^C19&GXH#&B,@9)8$VK0+C($XJ^E3%W\: MQHLG")$QZQRFS5 Q.ESDO\%3\8#2TAO/_?DL M/<9<2!0>#OF

9*7XQI/&*+R,S0QEO'MW(1:1F=D2=' MUK *9(1UKK-&5K_W?U %TMYNM+VQR1Q/H"M/7DUIBA0Z4U;P!+V !!*4[@[K>WVGXU]^./='NY<( M-*B*?* ^X10KE6@0(C?O46X7>= MY,W +^0HGE?Z:MR$;G@"I29$?.&6=,UWG!:V,)L[PJDJQ>_ECC:MH, M+$=E*,U5%. M1[1U4)NGN8*?JPQ.KU7(8!\RAK0!(+A7Y/L.^HG!(UN@,;BS M1?CU>/,3^-9=Z :9!^[!BN>&']ZB.==2+Q_DOI[4'-N\0:%&9Q=I@_>.B'9 M ;9H^"-K1'6+V:?GB,S!JBE#6X?S?N^WY8OZF,40H=E\ -3CIPG48U0&@0\U M0:!# )]P"9.YU92+8+P29;=4U809\/(Y Q]&<4>@N"^P/E1>)![FI>-'N&:/ MSI$\*Z([5?QN7-BRR+=EPKK13U4M[$):6N*L0\;D.F9>BURBX,TU/U-+KZT0 M$D_9G"MNM)35FE&QZSV=.^8ZFV7'T$CGCN3QM/CJR0@NP=R1.X:V7PFPU=6E M9_TX3T/((A%@[JGN8U'P"2:31<033,.6ASW=N6?5C\K-.YG<%A$&,BJZE7;" M1217C(IBN:%S$8$EH^*WL[%V$:TQQA98%&;C1?31&)6LY6;O133<&/WE*TWW MBVC!,39/."F$?/8].KJ689&FBYU9E.!\HGWT8JQ/RN>Q'3A(97]#<;M"3.]E M+ ?X)#!_^=X2[C]2.L%'#M#I.*S>J$68]4;"([YKH]B$+,TM@/J?(6:*/BGQ M4,H2E7\_2W$AW_^Q(CW)A079#'-AD/FFL##L)_AP?HPB3_1F"@:;WSSHH(10 M6#E%)0#M">:!(,T Y=N&(78P1PWRKW>+Y9/9(KR=?7'%H>I!'UY[DR'[8JS: M3W-8AXM]M5L>8P0^USS]DY6N624)2I/RF96-.LMWEP'$LJUSN"A .73R=[C+ M"@.'XOZ$<8=E0W2($I\?C-L8,>KW?_;37:4X7K,_E,;_$3VN,,2)J\RP!*7$&FJ9\&>?MS[,M$5UZO$^%NZ?Y/"Q".AX.8>WW M;!%VJIX(5+RDBPA;&@9U[-5:1!32*;=5('DL(KIH"+S59*0Q H1L"N \!6%M M46X1H3XG,+:($)Y!'U"!5#M*[,YY&:7F4U#JK&U0S[LH3E]0O+\+\4U$ M27J)'&@B=Q\Y89$4^L:I>-%U]EC[?HC"QL?S#Z\\];[5L\^:*74^XKFG]0V" M1PV2FT[5-,K@[Y&3H.0YV^^AQ^>&_)7A]BQ9.96IBQZY]_ 1($YQD3+9#(-. M9.ZFN$7K].88 ^4>X;M)Z>P:)6[L'QCI2 MIJ6:9,]0>$ 0K8^8+>P/55V2H M;0\T> 9PRQ4R3&.0!;7MZBCT*)/7JU8GF6JP_AS82:"]J+PR:7N :O:$@HKF<]%638EYGIME++#D""S#_C$AS,8R^+T[\ M*X+[IX-VY31C /V(0C XX9VMO#V$.J4T4T4'*KVY=DC5&F)3/4!'*I[,70?1 M%&EJQCB.V+ (=R!?].!7#I*]]W.GJ2Y2C\957$:-'RTUJ5YTHR6"+>06=N98 M/-%O$?[WOC=1B>.YUROJ?!NU!/5%T%R/^]F^EA-$2)\3=:F5D47$Q'3&FZ;. M,UUXC$T&\MLLQ?_XA !Y^<.05W18OP;^EGS^/$/QZ\_=O>^\^H$//=9S *\S M54YSU6=OJ C^3E'05OZ$L4ICNYK;K'Y%)!A- MBE8BX2XB_V@JM#:TAT64,9X*MR.E,=EFN!\5G6)E:-!4)WM+ZYR*796^-4:B MTQN*7Z-YW7D-36^ZFL/SPV,IVP^J,HD(T7#.'>U&4FU$4BNUR!MPE@XG8=^5 M>T5V@,9$D[UM^7O[,1:W.%5,L@^8RR.TE9.DU>C,M \LV)HTR49GI@69$^)M M:F5/**:;#8'?18%WMS_$T5N]#:[ ^BV>81_Y*;.,5?-,MGO.]AFIU7.-\+/C M^BP=_! @(GZ$'A;,X]3_-_EW(20"R =;WAB"BBU(R;4YRCX2%5>UE4XQ!L@+ M; R&*@N0:R] 0RH99F9SCB4:;>Y6B3?J.%8=*B*<\&T@X MW@X51U]J;?2NDHJ%B_ (=1 GM7!7%=?FGNO05;C30F 5[W-'8 >AOQ5G+9(Y M%XLSO80N%:4N%GW2IV(X67HAY>5'88WWRTG 6$9?2%VTBI7$142<]D2915:>+*K'1^32G6H^SL[U6A43![FM#++^B M,M6B#NIT-A/#+?=2)]SZT)Z79*##?0Q)QZUW/PB*U,3FL+.\GM!/+$7W_AN4 MQZ[#.-UFK=W6L"""XPX_ MPQLQE>C%<6@M,BW[=;[)V6_M=QNO=<4Z6[7"=K_HHH5L!%KL]5=,LA"8KPG: M9,&]OQ'='ZVI=BA1/<3EJCK560R=J\-&(+ "KCA"XR)\]3U5E+JVKA!BEXY( MJF=)+\RW?(ZTF5KRYS"&\]GI30:7D*O''?CA AVKH)Y4JJLRJ M]4XV8.RUE#EN4-%9VC$JHLLOG_3AB?SP1&KP\+]_P^^$^RN*Q6R[.<1&&:$H M-E]+^D!8 /8^=Y<5I*M9KT-\.+5ZX+.G0%:T39;+0G/'GE2&JJ5M=47SW#'W MX4$!O% MR-^&M%2R>R0J7D (Z$?\6MR+LS\Z+& <2 4(OWQO"9L]6:PO 1Y#PCP08>$Y M=>+4IE=],*SIW(5%R$F#813?K%'><$J)-V$[R,OH8WZ-7F=490"@N0OQ(6]1&F#!&3CP 3P&[B7F)(%S3"Z=\%>Q6XH_T* OODJ?,HJ[](0B(Z+&#.3[N+XO0%Q7M O:(F.W^L/5N77D_1:&/;KW,_ MZ=ZY0PW>"R[_E@;6R.<8+ B?8@EPO:&[4E2"YPPURE*U%7?!8$LH7\)P. /- MD0H6J_+3SW=TZ_CQ3TZ0@5V2M(U:9VF"A78/$[J(C+HN,XT0MWK#0C(\MX6I M^A113F].5;=DZMHC_<$(MTM0H\H=D'UV@K[:W=8P63 E1.ZF*"QEHZP,IG>?#N@ M,)'4!. /M\/JH- W"^=@/Q5P$7$!8CVQP)Y ?UL$>B0Z8-5ZU47G6@3>I/I9 M+:Q$I W-/>!!ID?524NJMBR3FF1]"WBJT=R)J;O-1\2]QKQ^UM&57!VM1V1R MWH%%X$BL]5;QP^=F<[]V&O)G?SU\$7Y#3?E*($[,/8CJ1/U&RSJRB&X"FF3& MXW5S+UW0@8<)3%"+:*V@24%";"X026)^I38=3M=WPFYT]3)/,N3]\($\E=&3 M8>K/,Z^LLG+=.$,> QO2]-;I#L6,@]_[SBL0E(^2,FI;>XJ)0"51]0K=/0L< MCST7&;H&!]W 592DZPV6[%"8H::G43)P<,=;Q7X 'W0"[F:XXP;>"SF( NH] M'!"O"+5\K#'72W5'%3*2>_(4DTPV/N\$AX4@/,:1E[GISR1=N2!:DD_B;WQ, M-5* =&>;([<#BC'%AUO2R35'_%%!;O))E@+SC-\9DEJUWK"GW@D>HX0$U=[ M4Y- -/*]G_0#N\/RIN_C78CE ?3B?-.\CYSQ!F.#J)!%A=SBX=5F,?KSS3X! MW7B_WO8GE+]/D[3*ZAI\*6?6)O6!4,<7R69M+AX(4/P:+0N17305AO*_S,WQ M-#@;Y2D]#'E__4">.*)%6]UBR/S;!P]5"T<2_'T>5JOA/NKGX6:P)N-Y'HZ$ MH:Q'EU&(23*G6UK,T=4Q(\DFSN5VZ^!HDGBW\[CBI2>Q(:.?9X/V1^<((1\ M< Z'(GM1-N/#Y_'!C24)XA "ZL0>']V"LU%,LHSBE ^+(_K8/0(D=Q&M1YN4 B;$L? ML_8*]R1'I7PR[]Z?4Q%C*4X-BD[[6O9.AE"9"/?A>1\ PUC8&\4!+RX^>M;( ME/+=Z1SO!@RB3_A_?JF69"\\D-:X-DY6I@J@KJ(0> X4.+Y7-FF4S3'8AI)M MB]'[)0K1IE6A2C7:_/8K6)65(Q6/'Q:$)$XKV\=_*[?>:$)?VV;]M^FWQ*V7 MV/QUTFVQ&E3"C=5_-T^'VB4<93.,@7&SV2!HBE&R[2#.,ZR6TWX^FS;#;&K:! M6AS$(\+O-Y%^2#E[DC/*)*9N@&NM:(<2K?7PU0?_*\ YO MWO#_J+J:"$:;"[YH;TC>V40XWI)@-2AN4U"@,MQ39ZHE@!V+M"29%5$^9^@8 MSR1!2;(7D[UHU*C[X-*O>-R'*7,J4Z;R],1-QEIC;&O4I=VMK3UG8'3>NM^> MX:&^#UPQ/MN#C"'TT@F_@"B'[B%U0XW"H I.0@F3![5T\'O I\ MV]+&6?(YMDA94A#X8ZT30EHJDJ8@L0P=?BO*WK6S=[8H>8ZR[2XEE;T% M(*GGV?8J=>\7.;UWEY60%M=\'?BRO7@^E:,%G+>)Q9CEC&8G;B3G*I@V- M7%(FJL0;%['-,0/OX<6)_I0D>!F%P@PP[EAC6__B M! ?7H7>SPXRKL,/5PDG%-J^Y.ZZZ MV,HDR2!-4]0""@ *35UE<42N%6JN%/41/""@#4$_QK:5:ZXXZ60I*_##,5O- MFJOHFK^J7%AF:9HULCYB=/2-C:WB5F(3VJQI1MO#*1$-ET)5VD:^6G<;M1EM M$02F87O3Z#H\=WFQDU-;]>@MH">S2KZN6TWG&NFF+U_S+;F+")GL(1-(C<>+ M0%JG)T]@SEXTHL1M7T66N+DRJ?XD)?5.+"+ZMC-U2:6MN;=][4YA.EZF65>A MZ$QH0G/O&&B:$7')78.+: VK36/\!,-!D7.VE*7PR\ZZ-4CO5U$#PXM&G)32 M>KO19]V(6#^9YSG;[YWXB+&T YZ6W(6-8WC"NXK?S'0=_D@OT8SLE-=;/8\* MU8IBP+86 1ZJ^.\9%?T=@/A^^:.5CT[OH)I%UJ0=%'6MXI7#F)KL*UXY$OHT M2E4NR1IU*CXQ@QK%:" N3&FTR\QS&KF_OF)BJ75IG5&F]P[3SV4+/CCR+6D/ M>'DLAS!6M'IW8J^E?#2CBD]?>."8[R>4^C%:;;5)A=YCX(3P>LI?VC$^92_B1,#0$Z>M M0.Y"2@5#7W_N-PPF+V.6[;N8%Y$[\37TT^3I^:M4M)'/L4.;'$YA*#RN.H+Y MK,,BN\OSM7J!I< \]SA;I>!=\[5J8'/V"!M:S&_&Q E.8^YX'48WJ"%SN).: M._*'?8+&U7 6$4T[*I=I*%!SC[<=B;@[J79CN$4L+)O/5>F*.W=_/ MET&/*G4,<$'F'E)MV0O)U_X7$:$]IJFIGD$@-3?DN!Z9YUCHJB7_6OT'UB/F M/+VU!6.]V1^"Z(C0,XK??!<)R"P(6.8<1++GY=WI_2,JBIX'9\AO&>X8!ETH MR+73*,HJFV$;&%(;M'S.AW_-!O_:,'>L]7PWL#/T5\QYU>@>D<<'@?%XD;M- M;[(QX&A.+MC4Y*4OV^-,>CL0%HIV6%:Y1F\HB YPKQ@F53X/Y4QS_BX4X.6V M>&]?G/A7!$&$.C IIQD#Z$<40C,F:)/L[?W0![8''9QTH-*;:XG8/::@U&[6 M)! KYFZ(U9"I-'"U%%_,F#Z#0:E\[@+<&MKZ2Q5['$$H$4@ M:K)7:_ ;L @W5V4[J"]Z1M*4H2$<:@:$X;N?!8<=LXS_D0@Z7S6'&-;CQF5 M(4TYS;3)0L$'Y(8+U>1)6^F\P$5<;^Y"SW_SO0QOB]_L*5MP;[3:!-FU:891L#;1BT[4W3.X(44ZS(/7LFHD7 M M[4C.'[@OG)#M!I9[V[XO- M1E30W&6$/XWY&Z.LY&KG^%@["X4TJ)@P\!D_1UFZNW=^1>L024F0/W#@W:RS M-$FAO&ZXO7(.?NH$)-;I[RAHIM8IA]N;4#C33$R1[GP,'8G67/XZ>&D,UT=O M($$DMW&TK[RX?BO55V/"O),N3T-T19:A!74$^.6,&W@O/Z'0B^)K=(@2#/)G MWC::0\R]6ZX;9?B*XFL)1,>Z_^#[6-;\%[UF&C,M ZL3)!9T]- S2)9EJ%L& MPKD[G'6-C!P'B-*.-VO'J-+^E]>=[FQY6Q+)R1R4;8/8DC CLZ?Q VVLM?PL M]MS$%B81I2^%!YP#U>3KD<=4TSZ)Q1U5&0 MUS71+B+"J8N,SS$8+P)'Y_D@+:0 Q0"\4F6^GS/J.O).@2MA$4&-G5FEU-.Q M")1]E"KY>)*B(?2"N58^Z6.'KCC;%E&+I#/?5;@%%X&T915P^>#$'3BQP#,Q M]Y:J/=@(S^F]B.:IYT74^B<\]^:NG6F\%4RQB,ZD?1S;6J$8)?0\HA6ZVCR@FG'$^?;ANG#C$_+Z$3)[=(1P^=!1V%),"CB"2/A\"O[D? MP2 [[I<*IZ4CHPWE&&X>40E"D8MHE-"8 I=L: MMH'*;DUKM]V %:YBKFAAXUK(3I _UIJM,^1J;CX??3[OG(!O3/G,G0F&.K*K M,7R:\\2@F LNI-] %QP*6.L8ML698:K@Y&/8J,Y+A%^%J>\!.OPW](S<#./ M1PDU+B(/7#HU(9]AKG@BSEK"Y\.NS!)43C-?(1JTU#6A7VE>FWB\N72G;O38 MXH%'_@*R7.81OVB-['IVRFMO#M4$1:]:QR ?.==+T[(F#WM#[LU7O#H1@M4> M#.KC8(>M;4L^=)<\:*O*>>L^YMP:I^WW9.]%%;AGX# MYX[;H9]!->5V?D%FG8H]KNPVX&G(V=8RKTFGT,,QLS4L?"6M)^C[<.&KD)78\E$7^NJZQ(?)8GG69)8 5Z-"'B&0,&@23<)K^]Z4]N% M$-OBL>:L=766K*@>*1IMT_;E=0*%XXV!\),3^\#]GIQ4OG?.0&.;?HS]/=F( MU.K4'#7P2U2_^N+2BMQQMI"LO-<@=ZP5I"KA$JUA%O@B!NI5+W1#G+K^8HL& M][\YJB+YPN$?58\K,>!X\9^<($/0!@PK7B'R(-.6]++BAH/+QL^RA/D ;V7T MYB>8&]Q&\3K=H?@*:^\^B>IHU=_5F_-1T;GGIXS7@L5;NO5#K.7ZX;94?*$9 MWSM1?:/*08N8<9^E;'%2VE>T^=32_C9FK6L;FXHDF)28:'AQTB=C/>YHG6ZJIWS9GTC*$QR MN]G""OZ.P#B%\O*=.EKY&54&+"9B5 N MK\>QN@$6_8'VXDK*M2B#[=J#+(8TG%"4(5WX66^8[07GN4@17PPS+)17?U6/ M>L646TKM+]YW-4R#WK1H4!C5VX/,3]?D&9$3]D5!C=)A-A;*U(MB#8DT;4 ^ MUKTE_X33Q!5)&Y0_J>.NU[^8I!(N8L) MPKLH+^'O-SL T#WE_\J].JO@URQO[55".P)1%WP,6C7E7@%1#?T,?@UX@-]! MI>QG%(8,YU'PZ)%OJ"$\R50[^02+0'#&J\[/:XT!<[%/5N_ZL[#Z#.#^3%@] M5Q)O>PTW1"/L+1-%%)&LS=0J.. (,_[)BIRH3[)N%ARUSU3= [!D;3,(T4AK MR[Z/4D3/6E%GN$ C%3@D:Y<.M\=.A:U7GY 7XM]0\+.'(X;@=72#DV.<,+NW MF,\.?8U=0?9+',5M,E*?=,TDB^17B<4D/H@W(5(7 T$*L]WB**-[5C .NK8KM*5:1#Z.*@:LA!5EW3&A=Z5'SMP_P'JX M,:MOS(6U\MP:86O:+UI&(UUL0>5%>T8E"OJC/_L*F5A->IJN1D%6S1" 43L1 MA2[>.G:2@1"D_V ES%#PSQ]2DJ'Z1TJ6 M6C4&Z+X;SG&P97Y% =##7'F@\8(/[,3&T8]!RY=4!T6K7'IEU(C"->4(\(57 M;%KH*V<;;"SHCX;69]<)&U1YQQQ%A9$'MA/"WO2L009[3]],_.P5_5B=",W- M((P=$Y\5R( ;D/X$?:4_:;6? _(_ M0X-<[D.> _R_0 -_N =Z#K3\%1I:='[J.9#P-VA(F,*_/0>B_@X;41/[O&>1 MV,'YV*3^[EG !V>PZ/C+9P$:G,HQA:EQ%DR!D\Z5,0JSH " MHCU>;(.M**^PW'!PJ?M2Z"?:"T_834<^SNXQ,Z9L3?LRIN??RK]DP]T6;3M.R0A4S9E!FEU'ME/!_:^>.LBS]; M<^- ^Q6+RH*)=?F(XTK>"$@Z'M5WY2)M@PU8LFOK#R3^5+ MN(O) ]IYX3-*TSR7:740MO_43UITE<.7")1T5C[5LA*L2C\UGP\-1,Z%QD/8 MGSXQC=T?CE0%*?22YV/82^B4C9IX'1L2^P@%W%UY4ZBLZRW]DZ*"Q)D"W?=LN@ZXL>F^%0=6.Q9!PZ\L M)C#(!=F/QNUYRQS!A*BRP+2H>#=E!I1NT79NO+,:G(0BL^1,[TF-",=YTU;1KE\:ZSIHV"2#Y$.O2 ^)./D=QL M'JWROK.=I3$P[SO?V33DYF/D,AO&ZGR,K&;3Z)Z/D>-\63C0+#B"*7R:1@K- M@A(P8N>XJ*)9< )&"ETN &D6/(*391=)"D(T/Y+'@/E!'?I%__&?51@V/BS,-9$.FSI# MT#MXQ'O,>"4I\5+DXZQ[A!5DK,-S[?408@ Q9I61'FB__G/#4X8*C.";E#B M$\P7N]Y>90D]O4E2L_7[:!N3 V??-\PR%R9CB5Y"4<+O]WA(D[8T,R:F>.'7 M1"5-=*.M)NO3FY=%+YR8KY=^2I.J+QIM+^"9$"_:Y55ZJ/SUA5)E_4LC-$6= MA#?T+1-3$>MEE&X*,7*U(XA_5\X_E>/?8\V$CU=P)B%I8WGT7_726#GZZSAC MA1J/'DG/#&>"(RL=MNA":_6HHM/NHH2T,6SN^P,)0)60/JM7GV+I>/=!L+\; M;"WK;>.>4ES2XK$?ZXJVOV,=8E(")Q[[@0LXR7+EL^@VP$DE<;N$ ZT1E'%(9"YQ. ME3 TA71#QX5F!\B(,#!TCQ1V*AI1FP(<1\X'3LW4*>UEA]0([A1$'*.3S_QO+56,,F37X>9Z.XRC>!FHUX&(IP2NYBV8(;Q Q/E( AE@#(.< M'CPECD?04X!W M$=YBWZ/;[/N,.;"[-*;\$:-9XLX^NV\YV'UK9L_#?*$C_5ZV""GC1303IHY# M"X][[YE^0MPA0CP&@O,-3+R9#+'I@0J .^(=%(CMCEDXJ"DIC[LDEJP[PM;R M%+%5W3'PEP@N3,6U^%^H46HZ8F'"K) 7=)\NNJQ'*O0=,C&3ZC^WV\#LJIM MUC3L7IWK,1OOS)D6J[3$_\.I-@HVH1=)+]]9/V6O*^+A&,9GU*PBHXQ+DX]? M_K3(KJ7J&R[08:R0UF\1<#(.M5%OFL="RZCQJ%E7/7 M*CVW\J[% RNYQ;NS59OV:X33Y.GYJ^;N5,T!TX.S46/T!FVQ M+[49&TRTV8SHVDOV&Q*?<(""J_-7>L/=1^LC]QA&NY6?XA-.L31E9, +[+$E MND 9&V*/)F8WO\3D&Y/\\M(T(I[2&3'Q]QM\JED>A]6)1N3$JSG>96E&4!DU M(.K#=R<:)5#ID_MN*ASA/<,><'?,#IK>?O_ROS2"IV,8U[T=0D=?)PR#S*U1=7VY25?H#IQ?4?+PVET$Z>FKO:7!"B7 M#K.&WI_C.'C#8N0;2N^R*$A65']Z,D+\7!6(#_NUW]E=I M@VFSR?;8%HH0\<)5%*R" [V_$GX;GY :*MVL^4P->0N +-W'A#$8C3FA.WIR MBV\IZ[W$O"T!0>LWBIEDCX_W+#V /A4;>PWF.5=90A]8_-FU>KIH>'"8,'F&[CL(^/+*WQD$OPA8T#K2U(B3QN'5AA%ZPJ2/PRLI!# 78D;SLSXH/ M1IG(_6BZN0 ML3BA4+)H6>T%2FH-\PN9!/U#1L0$A- Q'SE:)6O8M@])BX",D GY0$<%G -J M<#W-\\01R*!.=+XO4S[F0!"8CN["E![($$_%\KO>TSE@!M.3_J+$*GQ)$N$LF &C05Z0D#@+8L#I5(*TQ5D !Z- 7)[\. M^8(G>XA3* M60"')5>:YFO.@@HP\N:P',]9< %& !V2%CJ+Z1F6Z"E,.9T%;G "IRQS=1;H MPWF?>%_1V M2UG:3EQ]73%PMBJ&)6=EQKS5:WQ"&X(/PJI(VCE3UXCTSJ>'T)=CJCW 7E4X MX<&HKBYF(4/<0B9A)>;S76YN)JO TO?'B>N2BL8M6=I3N"K-C*FKE\54*&'] M'B#1,.G'@U%/0-B;,?E8"G; MU(^W1LP/V'OE.2IW,?D:'3T<7(<>/B14*BS^4F5L%WHM1:Z$?L>]R]W:3H/5 MCI:O88@\#SEORCS<;;@& S=8%F81*8G$[B@"+CMHADH#:-R\^VS?A1+U!AZC MCAKG*.#3W%,#5$7(65DN%NM;TC\\GL6*=3K(*5I+73G+869)K_%XS!@9 R#G M^G; MKNL,P_1GB[+^>IMGTG[Z 8#?NEK7FHBD[,9JK\[]P>4PI6-[RD\ 0)2S_<;- M2WYW8=%/G-IQUBLU+G"5=4AR+E%,N"[N*(L705?2CG6'8]5ZM1DH5X M[-3]9E":YCX".27TQKRWIAX34&A5X.N&F_6I8(7C/%"4:BQO_)&<5(TF0P.. M(W\D;)VYUD"C#,Y'*.#Z9EEC@:5%R7J9FL^#!1+)KYBN^F\BE?6]23_H#C0D]-2AE MVCJ9JB=H@@;[L_#_R'809M>2E?29Y8N=SGW#J!D09!Q.2DU#U3#7W=53(::K MPKGNMAZ,%P/]SW6']30XZ2B0KKNI1]]3,Y1IA.8=\GU64(P"YR-\8C?/%P0S M\?$Z#D/O-<[3CIO5V%=1\"6.?,GCAMBE38V<]!, DBI]!N/O8M$UO8'CTJ/Q+*T7]%?OJ<'8_A>;4C*%^/W.!O,FW15-%'[]>8 M7&=)&A\0$;E])(,6762NU;56(4UEE8]U;\E59Y?)B;>YGRIJ%8RSQC=8Q?KU MMG'N%4Y*\=B)T9AWE/!VB#<78,IJ:R\=D9>JHC)8 M7M\RVM6KRN-X-E3=\?'1"Z^\D,EFDJT8_IZI$^I(?$0D/;,V,2F]*IBH?>2Z M?9+B TL0NJ,+E'I ADR?/",XV3-LY9)P40CDC@J1@9DM)$NX;S^V)S0494A8D M8*6LA-8;)\JXL8\RV7G,JYQUZ)5YDTJ5 A'0),@B#0UT* ;^7>5NERK-.103@(9 M-R-*&DQM5VSB5K()D#%H(%AQG&W_*Q' M>I!YR'$__JR(U%JK''?XSXH\M2'-\:B 63$WV,SG>"+[W->+QI3H>-;[K*2H M-G(ZGAX_^]U1FV =3YB?^X2.LP0[&3/U@#S*=9ZSPX%%[V[Y/XLR ;:#I!X0 M98CY AN-G'H;UZUEJ9D%()1I3<5A2IO1CJ\RX#V[#(.3%%,ME]6MFRZPCS!> M(0\>4,V !H8RSUD]Y_V US=4.P[C8Z/:C1+S)C/ME7C6; $ S#^C M,,Q+ >=-MNC?3="NG68-($UO*"549G.==?,;RF-BS[U*Y@'M#S'RMAF(0/UJ M@=+[V1%\B)S/8_T!0=()/9 QL((QY=>&S*@E'?A6#42V]O=3GORI>.N MO3%WC$!B=1P+@PG!2 !VW$#Z^9! ^8 MJS.+W5.8L$UFP@.++4UI!3:9^3[!LF_BYM+*/@Z#^\.1Q"=%IK/)#)MI--DA MXWW!;M"1(!\7)1>.(>+R [V #U1DQ[_E==QE6R.!>;+76RVD>Y26K96-@G?J MY/T$E5/LI3IF\> M00T=5>TFD(YWUHAN+O2*[>@ZJ=)Q$]@X].AD4M!(,7(P#!!4C1#3E)@MQP/HPPNYNIIT;8:B(9,I8NX3]]%:-G:)2)[HX;H\>QY.FT@/>*/C5% M]414QPW8$U_L UI8N8<2-64HU!C'3?IC$2)3BAQ/AQJ)#H62Y:1OXSY*O6B' M6> ]#PU@-3VCX.VDZ_X;15 >CONH MH +Q6LW\'$8OL0:L8BNNSGG:6^@EJFY>0]X $$T1[MYU?5VM5?09<2K/KU*GUXEM]TLGVWW+NLWQ!"[ MR8B_]Q)4M820=S!3CO^ G+5I]O@TVVP6'\F]34,&CF? M[6D^_0DS5_Z8AHGK1!/(:/JTO$,[?6)1TG%\3'741HNMD/&WX!F47)=.6F5O MT&L*TO;*%G8?)50C,2E")!MMT7#07)#*3"H:.7GG]E,\B@F)W]@0[T@?IV>1XCWJ/1;K4'/GX\8CZ5EITQ0,G+HG>^A?4485 M>N?DRHN^R4T;XH$@4-@4[Z_.S2<*<]Z %]@OLLY.HJ;0E'@LG*4KZ5PVVNWE MVR\5U>:&2AB$0RT>;R$_U]3H5\VQ6*XK31%9;_-5:>IT"8:"8+$#;REHE*_@ MFX*!]DB%2H?E[I1T=#7+"/459T5*U7N$M'. MY&TV&XVD!/OT4+!^:M<9(?)"=>*Q$V_) _[O#%/LG9^8"I530!%@_8 /N+LV MLSF@SLEU?*!K8HK*'4(;JG#3OWD[F6HSY TVG7AY3SFJ_R-"R:0H02SWTHF' M.^N&TVC:;6.V0*N%;)DUL*H9@'^!$NTX$%WUSA$R&EDSO'6"LBXF5KR MDES#CB=57:B2&)F (*-H:BH1<1K'$\P&HRF9T1ODYL#$7\&A8A1 M%KTYT/(7D&B16P ="NEYHO_Y3S/;DC5D>_&^HP1D>$^UONLX8NWP4.2?>YO4 MRZ%4S;%F0!8M2Q7P(Q]O'X2"\J]01,E5YDN1C?[HA>>@5G=THQ[>[7:+?-8" MLB(O>F-3$=:/(W93Y8V%Z245L+Z1K--D1M=P;@V6T.L4;[:&EJ\1H0O=1?@W M%-#%%&]!%* MERW>A7W 49Y$GH!L)9L#:0.E#<>-:%.AQTQ"<=>84-N(&& ULC!0X\*&Q$'F MI[_PY.24;JGWRFU=.@.#?I[-OJ_"I:D,#>HY]J+^L]<$_7=&J>GV5/3/465< M2$9#6KXZ;4$Z?H9B04ERD*-4-FK6=0AQ(Q\':"V?+4(6-R)I=U%=^JHU!D1& M1R/FPSBYHS]G8G3>^=^?F03P$/IR?/8'64/HE1=ZD8^>]PBE#^P+3(*4WQC2 MX: 4)*#8L)[ ,(B9UW88S O^MTCTCAG2]%-2I@*U/9U'.@B$CJKO+"L?:2 M7N(D:6B#-][!VZ'D.SXFOU;M<*%E>JU);O[K MUV,M)XE9BWR<7<[X)8[\$!,BMCMFXC6\> 1OM\DZ>D2L M6ET4X*0,ZA$M1S5\XI7=H,0G^)B7]RJ^RTL5X2WV1>W-3&?-N66/W?QH#$=MFJ@]BUICL M M2M&Y!'!'TG ^A'M<#J36 BS88\=!'J0L5> +#(*@X3=B[#JK89.SJVQ;CF!" ME84X#2H<87J PV469 !Z:VUSTS6V1\=QH?78*H2\=X*"4;*_@2T4-%HN25LW M2@N4Z=+L]OO)KT D.9Z@]B>[BC8%X@. M2N.\X^@8='5*' &043 ?]Y.:UAR/JAY.$4JW#&1LS$<<2C'#\;CRX01BXAV# MC)3IZ41JGG6\;L6%M*'V2$+&S?0DLD"FVH)U/$:IZ!)OKN.U.T:A8K1WV*&\ MG#HEYSF-_6^O'MV'Z_C 4E5SW1)B-L[SWB/HJK?4NGW2U;D>LO'.O*/2FT>" MWG;W&D)<_&)[81A5%RHM%(D,#+/FZY>^?_*R]2DF:+7;$;2C B#_,CN:\>$0 M1YRJ18$U!K/L;:7'T\KO;&2I^>OFK8OJCE6(\UQ@#UR;APF33:A>+PU M$&H*D2^[/0;NB9.> M]'(2),X6_.9(:RJ>]VU:?L(8Z1V1,Z%BVD \H,\ALM MN,D(E5+S_/K\5I,A9,@KW*.0?.'W29*Q1IPY,%.3AO ;SH9S3B=6MQ3*Z>12 MR"X_HY+N4^+76/9U'6O&PG"K[%(M;;H._XQ"J;BHKU"& XU%X[ALI637XEH& M5.<^2H228KL:^AS$!QEQ([I^3V1OZ3HZ);0*V?.[^"4XKQX!&=4PZ+3#0" [ MGNW1YB!5#;)/UKWC+58"WY%_AO_:_*$H,VK;17-[.(;Q&:%G1$[81Y(-#,,B M&HRYH/DN,0ZB9Q0FRGGO0*?F>VCAG$DWZU?,EE#AF59O8V UG% !LN MF-$,5,4%SK2I).(X)HUDQU;[PKX0 ]G6-0<*C(0BQ^U9@Y&B%ZD<-T\-QHBA M3.:D14G62EH1\VO-GB19J\Y I)T&P.)S@[:($*EI\Q><[N^C )]PD'GA[7<_ MS%A7YIZ]DS52V%"^3KAMF1M%BV825^<7G+(OU:^A8^FO%#SQY\W,1V 7OFCY MS=O_SNC!?T3IGO4S.:$D14@:_FDP8>I*Y^%Q[SW33X2*2N?=,;9U>@W756OV MNLF+4D>?@,7EHL7C["Z5'6#.0-FEL,?'E_@V2BGI2BE[Z!O>-W@S50/^C&=? MQ&+Z7N+9FQ*0<65K^_BOUZ)!>F_@9]C]:&F:GM'FD^'UW$4O6)3)-PR5/2F+ MZ_<2V4MR*U_TND4!OZ&BLT]?):T"WQDP=0,81*(WM+^-=MX.!>LCBZB*";L* MO.BL[@IC-G/JRNI>LB_5#]&J6L\7WSSM(D9<5/HMVU=\0I:[M)[]Y_H;";ZJ$=/K7: M=8X\A<)5/YT\&=;'Z,2TX.2.Q(<&-\:]1""#"9.OKG$YL"Z67BA9E&#TGT3*Z0^R)%KX?9Y0549;$=JJHJTD%YKI,EDS@,)@)#*Q! MD+CKTC:U:(I]U&!M;Z[ZTLQ->74MH9YIS5'8+R))0XL=:-1H*SPKS7AEY:#! M%B9'<"*J[3H74MRH[_J9MF>!(ZEPT#<7@0;\,SG/0@%NA75+1DPNX&1$$!]< MX5&]';K-A+Q->AEC"MME>>OJ)%G0F%(+Z2/]>"5FNH921^/>1J@KIC9:1S$R M1HD1V((A0__.6?T"R<0+G93.!^!H6.H(GB5Q-SB*@-$L2NGG@(R,=\JQ M+A?7'(VC'F,E;7C"'(5Z]+G5>.,@H^,=GUR)W1)RJ?MYB%/DC'6\YOU@+/3< MP(Y7NA_CPS%R+\^!E[^ZB!='LWV^L-Y;2;)!A'/; M]]K*^3,*V+W%.&J6%EF8-VPH"NCK\F2J\H6V*\X,!./6(Q&]?2I\] BA&WXP MU>L!9!Q="(M9=M D'[$7FB)<72DCJ^7C@>V),45= MG<4O4(5KS_A%8&B\F+3MI[M+?$92JNHD#P^F["5B;DT].=#-# MQO (>^F4:MB$V%:?$$>]LI=<41+AR4DK4*>#MJK6RV=_Q\_^CA#Z.[X0+T"E M*?8)^0ASC]J5%WJ1CQ@[>_1^C_)2]=H% M ZTM>D.H5,T6HC1==4=-?!.UC[X\O5LX[K,*T&<5("AL2UT@73@6!+M2W!2] M82 6/)"_ O"A6"YBY'9UE#OZ\G][8898L6JJ0T562&:P(L8C".0JP)NQH'N2%S,9R6>S_;CMCFMHQ4#%HS:F4$I5)OJ M(.,+QM&3JA204>=^::$%JU3,8^G2V&\AXPS&P>N+8Y#+"%BCLW'&=I/8BIA_HE8!#'LM>5F]X926X?5D^HV*"-7\H%P?Z"Y- (!L]E$!\+_2S MT)LO^+[J-GL=TW=%_.A$=!8.6$&*P@OUO$- M"1=T;]D?;$]/7LBS>-)KCY S%7&=)5@%S+(R/(X *>>C>0U>NFL/B$I+3PR& M]?9K@OB,IO$#-'QF?(:*BXSH=<\V&5$=M,%D'8); M3[OEX'.S8I@C@&IY;C]TZ M*NUP(.I3&K)9D*%#TJ<_^7!K/] W#PS/C/"Z&',B-G ;MM /@C2 C'\%O1*$I,P KS%OU#2(06_\R#*Z%4O):P'23[/*'EA>GZ9+=&F,OWUQZ"KK) MYOV!%E-+!:X?X:I%(ZTMVU1AEGN Q=,@ *1?.XAEJL^DVDF][*(-_4=".,SF M6D^G[JK;8CXI'FPO]D'M"A+"H)YCC\1ZGAXQ-76'65VPU%LC7;ML!A 2$GID M#,A(-,_ZD19[7I0'6SC%)B ROXH,"LEXFX4W%.X3B9BDF&(-$)%S1+A\P4 P ML7'Z4RV?8 V(MJ%?N.S6$'LD(C+;BVE$,-(B?DWL\A*\&TRUQSYEUGWG&70R"19/-*BK_'--+GEF MUGMR7F_OLI3^^(18-E2IYY492NO7$._R!->B[/\?("0?/""*;R113NKZ728 ,KI M=3BTTG=!LUD-LU0!9,7JG*_J:;+>MH0N)FZ!R@&KI<"\;1 S=&9T XJ=H#!= MH6U,"FF1*\.WWZED3_D)CNC=PS-DV:7)Y/TXI%_844T3$2K5*/E3_5UG^'+5 M$+E9IK4=-34(+H2YE#[0:=4!AS MPV@QPQE0?R:LI3B)MU@28I?0S67Z,O'0A3U*PKGK3 M78%P829?/LM?5Z#KBT,);X:@1 '_5P%8\&N6FSIZ(9O0Z<&(WS\C?C HT(\>^88:PYV!4\/L MG^@U%F6HY"%=\V[E3F"6%/J_P,DM5A_\%H8< 6UA[B\V;SXA+\2_H>!G#T=L M*>OH!B?'.&ED6$!/ES'B C_3FX!X(>4"J^" (\Q*KK!6I%U6 !W8Q46&YND_9B_W2F%I$") ,<$BXQYA3)"P\^%O A8JI-*. MA3 /?HV]6TVG$(MO.LTL("K).$750/,8]6*[W%RA8\JYLGR2TRY_+]G?A?$; M+%<_2Y-AE:M9?7Z*BZOS5PK"?50)\RMZ[9VD=8K<]-1*8*X*QJMAKD+HMCQ# MY#Y),E;*EPFT#GG_)#C(V8HQ#E[BE4^9$D'2G!]W,,+0T4ERK5N\%4FP[1\: M(S>(8,:4?98\A&Y0_B?]=RYE4'%CSTJEL^X-M]LM\H56N2%GT>VC9LA>Q&7G MG?&Q7,AG2.PC%/";GW.:-8\_47=#J/-SJI\+JPDRII!F3 [W,X#@,\2Y>S3Z%55&"]6M"/YWX MB&+-F0)]EY')A*$W?X$NE5^&J=&1;7]]WWBATX+,3W_Q6).X]-P-+?K;NSP^ MG(<4(+-:1#'EG*Q&"#M$CUZ4;3V?Y>22"@U_?]]$4)KS??H*<8C93^#M@I?J MEWG)2&URP/M6L_OR7K]B5XT+\-TJID9&*6JT["Y__&A8*,K>E$=&6/ZF1L^? M/AIZ.!;JV1UT_/FCH:-3R[/&Q, 2T\XC(C\=;6PP4V:OF&"-HK]^,!25+*6( M"JH1\3[%4 VMU.5LA,3Q]X^(DVIV43:NU91HJ(RZ6"C\0#STX^1-7_ 9[S]Z M/Q1N&+/]$+W 7E%#9?2+$"SE%&B[I7 6F>V6Z 76=\LD3D>Y=P8OL%K@8LX/=FV<-)&5(AA 8 MU0P0Q":)J] 2FW@>") T(1+Z3LD<+G(A_'-\R5[6 MPB7^<2%Z+GGC6#0P/]2/9<8"A\_4N]T"P7#29]X-I+R;#Y=,)O,TRZX@T>") M#YJ1"[A_U$RF6<_G$OARQ7Q/.MZB9*EQQDJD2_4LF^S/P*DJ8W#ZJ8 :SE( M#2%JS@$$BIF7TQ!&HYB,@ M-/3\AX; =N)70 -4Z-X;Q78:+X"7C5[W A$V1'SV]RC(F-U% M^+CH! (A+;U>5]+O_5A%6M)1&.6CF)S\A'B7F8U'G,J1-6EWV:ZX*L2-(]": M[>P+\0(!#3N3E#AT3\OQ]":L#(CUW%48QF_,@G07D]I8Y$[>J^EIYIZ-WP&)ZZ(6S^V@R^+Y'2O;1F'AA3^=D5F-P6/MPOG+6#59 M2O5T.*BNMVI":1[<6A0ZZ>%I72X.NG%X& M-.]OX$RUC#&T75KM\QKEW9PAZ-4OQD#\3+EW>KZ.0W:$2:-( ?0J%R-)632J M7ZX"CIPV ,Q>O(M^YL3*:/<6[.N=G1&S?K]_->G6TYL!9-N';/2E6SO5THO+ M0K7B?,C$-"!AX?VM%P^<>#5]]MI?2&^,W4 O$]ZB9B7@U!/>/CQY9K<*.:^W M_)_%<0&D=_!E,6H4WENM5NCY*$>4#"5'?O)$LCY_\@C+V^Q,X:5 MQ7!".8\[#527PLI=G!%G3#2+(06?W+'B+(&4U99J&CW,##3Y+"5P#4-'3QXS MG X>P/XE>1' O=>!1T!U$5X$=_D6-\#-[[C+ >;O<0+D_ *[&&+^&C< YBSX M$_CU$@@(E^LYI,$.'3-#2S[V63X$'2$&FPT#))]D,FIR( M^(1@3_9ZR'SZ/DJ]:(=9\"[W;5#JI&MG,61O. PK(UYW&"!.S>+>4GI;GEA$ M;P\8$=-2S'"+6T\*>H/&@CM[B5Q&HV!1!K[N>YRV*RBI&MP 1W^##?"364#5FJ69*' MP^V%UZ&7)'B+*08W55Q8--D1X(WVN!T$)9\QSM^TF+:H!K2O_DG&3QPP)[G[6HM2 M#+0;.F>,3MEH*)7TY#>QS"9B-'MB6I%?HGURD8X%$J;5OQ;%A*.>-'ERL>@B MZR-7.,YZK3^#:TF(8_/YE@-U!_)PS21C%;%XRO[S2HDP__G__)ZN[Q_>\8BC M;":93VB59;N8\*2TG_X7>0=*!)5 M(W(T,TSB?]!!5-\CYWMZP;_0WW_X79*])BE.>656JOYGQW)H(0/POQ]Y$?X7 M_B(<)52CIBB,W^)92-RKGON8%?O_Y@\^I)<>B M&,Y:?6V?XD)SCYJ;\L(^_4(5[:N0UPO/\7#)&W(\!2GYD?TM^4=:/KH 64%& M"H:KPY8"+<:Z_*IX9XF-$1.;Q,)*]D:[F:'G_U8#WZF,(2X;T2LX7:%@W/2) M3XTY(0P_-O>'H\>*C*^"7&PN8>__[A!03X@)3/3E]]$O,?FVC0DKP9T#)G[6 M/;]TI3Y]Y1*L3L73Z$=]@H]YICH7PJ_CB,]F,=I)Q;FTXYJ;5V+>-FMZ0KQ! M!OOQ)7[T<)32_S_B"!^RPP.FS^@NGQ_P :>WGK__KXS*/ZR\<[F-HR8[1,2K M\+CWGE.$PD=T>*TA[__>)=X@9@'PEGGO'2+1&]K?1CMOAX+\1J5,DRH'7G1^ M"/TV4*:C08+*V_$DK*<("NC%\(!V7OB,TC0?MSI4=ZK!0(<(5)@EEZAL2_XK\]#D['L/S:D<0 M'Y6TP3$:"A)(HY8'.9!&0QUB,%2&29!/UW)"5UF"(Y0DE"R36F^5/&Z"2 4# MM$/$MJPC-Z;EL,B?0V$C!@*+V+C<4B>[#]V![H55K<[(F=M)?FIS%_$SD.RD M2O"\IP>#"B/I%?*8IOX0>]%UEJ3T_B(W)R^J%:8A,Z!LI_;.>_$.'O$>L[P8 M8V&)58;G0^\\GQOC>9C1H_>=*7I7,2'Q M6UX\GCZNA^826'3=762UO[1>44ME]B]-5FK>" MRPLBYY!)'CHDZ*[.D=BQQ@H(72HC;;5+&0OHMF^J "8MSJ 'R)WOI M#=^ O@S:? 9RTS9Q2O^-O3 OS58T^>/!"76K\.*LF0R%PF*&>D?%WE X\!@8 M3/$^\[Z@MUNJ&>S.78NI\"%(BER=/,RGLA"NX@;;9"3)O%I?4(]Q9L_HDOV] MEZ"Z].$F5]J\77W#*A;T-?(R.H3GL=(O M'D36W4T<8O_C[5TU_%+BI\!W5.YG.>Z8,?3 M ";A!_OE(;\/>G: : 9;U/\=9NG_POJ%UA'I! M;I*'(/?GB=5:B*A45MDDDOO(#[. W=&-/HP-MXOA>"A'3V_ ".C1Q"RU5\!# MJJ.G'N307=#)^WS VZ9=JO^H"1J4&/\\WJN^MNK8O>[O8#9&KPI3G"=%WGSA MF:@#P02/P$!F$N0F:3U<@2=^[ P+88(C6_B).P(+;^<=A2=HJ0':8.;GRHF_MRU_R$.3E7V;CU;)7-T^O^00, MPS&P*G(->QT](B8K1P%.4&%_JFV+BB'3VZI"P5H=N;=615$FT['DH; M6)5%QRL!LV!['""F;E>V(/I;+FOU[*:#YH(A5R.1S$KOEH#&1 M)FD(:+J!8,#6GM([__LS*SC7S]KK/P#)/G-S45[:NFU"*G\#LQD&-!AZ/J6B MRG#/ZB#5="=^",]D^?_BUV3EIX4P21=T&R)?89 V'P]6&EGEU61>8J:1XBA# MJV3U<\P9 MUZ4G-1[3BX(*J4[SH72#,*S&'471^[5V?/8R*47/0+)])B9ZW)/)PHTCAMG\I2S\F//9)YS42H_A:)@^T4KB MDO!/^7.PS*3?W;6L=M']W1EM7&) NLL[/E9&[K'3P5PQ1GEPN?F>-3*A?X^S)#P7L>RE M-O6E:I<$96# M\8DIUZ_MDEV* 8LK (.B.:_#.&'!-CC8$.ROM^N,"!*)!DV!I_$\9]%M@),X M^IIRWO2O.&1"(?/*=;R2^H$PQ2U95Y);NI8#2[.L3F+#3&(^Q9E+K1WD^9,X M]O,GEUA/94\0]M*J_ 5;>J$T797C9$P5B]1J?$+V'#A7) MZ\'<\YG7LY6D51J-!7.*#2I\"?+87IJ<3#5BA,01I/_8G]G&9Z_< M[S.;_3L^X>"GOV^\*$ '[$MT!-THN(>RE0^S^HYK2Z/@R;A]"NBAC9(BHF:V M?6H)M175]7X6\ Z>XFS9!F7>-ZCJ3C0^]5?X#K DVM!-2BLPSS-_0@DB>91) MGO;$V"EC5RTQ>>QL*/*&7GZJS)-/#->K Y,#JVJNA]J!KA\'YKK1 UV5PF\6 M1:NO&N%#*%M:7:9Y)?J$2GL'[__^#U!+ P04 " !*2PA9:GF0S_8( 1 M/@ #P &9T8VDM97@S,5\Q+FAT;>U;;5/C.!+^OK]"Q];<054= MJ@QD;JG:@CT(57,?%4N.==0O MEH\3E\I//Y'CA%,&?\FQ$T[R3[VOP4&SWCS>+RY!8+^4.!YH-B'6323_92>E M9BA42&CN]#]$FFGCJ'*=C#(FU# D'[+;SH[OEHG1M)%00<+%,'%AH]X6"B2. M]^&YE\LJJ5@K%UCQ)P^;C;2(&PI'"RM@#&"%;UP3-#P\- M>[\5(E" FS=BAI/>9?_LR]E)MW]V<4Y^O[Z\NNZ>]TG_HK+)&]"1?/_Z/!JB M;VIQ+J]_ZUV1Y@$-FH>[=(]TST])L\W*J^OST]XEZ?_:(U>]D^O+L_X9"/>^ MGOS:/?]WCW1/^N3B"VE^/#BL;=?R]2?>O2+=TXO?^[W3>9;ATGGF'31:N%Q^ M-;N7G[OGO:O@XNMOO?]6"]EJ-%J/V*=:C]^G)(\?O5D_S59G-7*5T!MNR!5E MU(H136LDXL:)>$)<0EVX8 ET;I&DUOZR QJE@136!5SRE.-"@E89-SO5')BP MF:23,);\=LE6_\LMCE(IXX4"ZZAQ'6^5 /NWX8!:+H7B2_:;3>FPWCYX_^ZU M#%J.7LU5*-0V\%/^QA1W/C7KE6GG H:BRV:CL=CA*\&#)'3$B>$CP<>< 2*$ M)7_D, %NY 3N8QA$M")?M$E)LQ'\A^B8?.F?D"LMJ2%G*JIWI@C"P&<6_FR1 M]%Q(:FT DCZ#\1DB)9V0&Z7'DK,AKQ6 *F'$-/2DM"/8B@I%J)J07#F3<]"5 M.H\,Q!$> V5@ M2(F>",= @4B8*$]!3$%ST(3!-@GVB1)B<_PU:S_FAI>=X 12826D$) 7D+%P M"4S09CSR"F*_ &RA&4QS!,T8&4SFS;"ERTO3Y6"3Z<))+!0 $K$] V -N +B M\-C,/1(KV0=E+.^%-"URX,#9HR M@1W74"*7( "DT8!!/YSU^D34)B26>FPK1AD^!-@:2)P)Q9N%WJ!E;8X8ME)F M2=LM-UZ:&X<;P(W^'2#]RY:X+Z-6W'1U' NXW+5['E]GA!KND0S(% /)$7&$ MPYP'@)0$6Z!8"CX'_0Y>PSPCJ6T.[7!@HV4!Z *I[E(.Q# F"Y\#BJ5Z$=@+R+N!V?7^W;KJ'5T]+[5;!Y\:!P\@FF[=._M M4^V46[ MX,X'/ ^3HH:Q6$1SNWX3#(H&' !>CE2$63HWT %@;22L]S(@Q97O M![/2F7^:]W&&2^H94\99,]C72O^'#P7X*M#%:BD8=5[1@15,4"-P J*(!KW7 M5=A3;C%"\WN,]>&<]TG:B08\HY:K2@Z6D!M M;C!_0C)2PRIB %4%'0@IW 1CPU7#XC;A.>3I43#\CNA<_N7]^6TYH2PW&=#3 M^E@VBK1A7@&?B0VY@A!5 DOA"<^0_B@"66;!1-@F1 8N=L+A#-:0',98!CQ:_,;OR3!?Y\ MA\_"(%%'46X0P',1V9W^4FT=W,&W5]"+C:"+LKA-=I>$8V ?>) %N5+-"+#E M2Y-8M53Y5)>]0I.$VFG(BK['LY4S[Y3][$N'.2%2W'!9UBD7Y&M/,,BS!8X!@BPX3_F*Z6&T&_(]<@,J>_KF*?.5R M;UL9>6T7M@F5D:Z$! 2L*X K6%?# ETD.""[#.*F%8HQIS<8E14)B8_+?"KE M7UM5!?/OXDM93"B*FBL\!V70T/*IXUC!K3+U F&@"61(M2(HM! 1VCP%=(%Q M_#1*Q[SRI<(VX'L+;-F$HD47XKK8P 9> ^QR[W _?Y5:4F36A$H"372%SP0"ZJC> #0@R05NK_EK#.%91V 638 !$J:61[:HLXSI:L_PUKT[0_6 M@@*F&AVK3L4>%E;M2R&08G=9<-BN [W>^;.WCMTCU*XWVA\?D#E80^;PJ'[T M_NY@\(]9U+\\%.RQ,:#1S=#H7+&@9&/L?SIC,% P@"W^)O2_ [RQFJ/+DUY3-F+@OHO>5[PD9OLO?DDH"8DW7P(&R7Y M4".M1NMP#KLKE^OO9!_R=&/ DQ_!$I\GX;,!H]R_*JWKK78&*N)K)5+IMM)B M*V;W)L_FWF?#?;N_=&ATE5&W^]X&\'IKC#ECI((QR3?)&'ZT^?/SKP253=G3 MUK;7=H/[03B]-<9&&V.[P;V0O4X2*@QH4971/U>5\]-IY7S^4XZ:_Y;C6[L@ M_,6$_[6^EWJITM7*2LA<=3.C0QXHS7C59N=.(<[7ZHJ7$4(K+%;DJ;I;W:SP M-DTD\$/AI2^'5Q8!N6*0AMSB%+'F,LU(;E\'G_^W-5@LSR5FQG)8CL*ITAA4 M#*D#,Q7S(N:'1M[5MM4^,X$OZ^OT+'UMQ!51R20)@9AYVJ M#(1;JK9@#T+5W$?%DF,=LN25Y(3LK]]NVA[UBY7C MQ*7RTT_D..&4P3&A8>^W M0@0*5?_\[/RDVS^_O""_WUQ=WW0O^J1_65GG+6C[[2OU9+"^ MJ66ZNOFM=TV:!S1H'N[2/=*]."7--BNO;BY.>U>D_VN/7/=.;J[.^^<@W/MR M\FOWXM\]TCWID\LSTOQX<%C;KN7K3[Q[3;JGE[_W>Z?S+,.E\\P[:+1PN?QJ M=J\^=R]ZU\'EE]]Z_ZT6LM5H/&7':CU]QY(\?O*V_7VV.J^1$^J2"?G,$\55 MC43<.!%/B$NH"Y>L@"XNDM3:7W9 FS20PKJ 2YYR7$30*.-FI]*?"9M).@EC MR>]6[/2_W.(HE2)>*+".&M?Q%@FP?QL.J.52*+YBN]ET#NOM@_?O7LN8Y>C5 M7(5";0,_Y:],<>=3LUZ9=BYL*+IL-AK+';X2-$A"1YP8/A)\S!D@0ECR1PX3 MX$9.X#X&0T0K%>PR4@2$E>B$< M P4B8:(\!3$%S4$3Q@T!^T0)L3G^F;4?<\/+3G "J; 2$@G(#LA8N 0F:#,> M>06Q7P"VT RF.8)FC PF\V;8TN6EZ7*PR73A)!8* (G8G@&P!EP!<7ALYIX+ M%<.V3)V ?H2*9,Z@3P#Y'-IJ0!"!6SDH;Y%>2#LI9_PIH6N7A@9-F<".:RB1 M2Q TFC H!_.>GTB:A,22SVV%:,,'P)L#:3/A.+-0F_0LC9'#%LILZ+MEALO MS8W##>!&?P%(_[(E[LNH%3=='<<"+G?MGL?7.:&&>R0#,L5 Y<76OA4$J^*2X'9DBJHA/T3] 9S#"L0C[H\>J!X82"XPFDN MTPX$,*8+GX-*)?H1V,N(^\'9];[=.FH=';UO-9L''QH'3V#:+MU[^U0[Y19L M"[CS <_#I*AA+!;1W#Z^"09% PX +TZRKL*;<8 MH?D]QOIPSOLD;3DHY, '8J,,UE1$.:0\X$IA6EZ)6:0'+8JX<3[31!@=0CP9!WU&I%T=$":G.#^1.2 MD1I6$0.H*NA 2.$F&!NN&Q:W"<\A3X^"X0NB<_F7]^=WY82RW&1 3^MCV2C2 MAGD%?"8VY I"5 DLA2<\0_JC"&29!1-AFQ 9N-0M%U^;B]$&<+$WHC+W/@2! MRN,8,B4Q HC9-1D/!*J/\(;%Y?KTQY,.&H(GLT62-="YNW_LQ_AK.I7FF$'& M#QZ[!6:)-1.0U;T/9ZMG'FG[&=?.LP)D>*6R[).N21?^PZ#/!LW_R9$?%KU MI/UC5D_\.R!6<;8V0KEWO;RLAK MN[!-J(QT)20@8%T!7,&Z&A;H(L$!V640-ZU0C#F]Q:BL2$A\7.93*?_:JBJ8 M?Q-?RF)"4=1=*2SK ,RR 2!0TLSRT!9UGBE=_4G6HF]_O!84,-7H M6'4J]K"P:E\*@11;9,%ANP[T>N=/X#IVCU"[WFA_?$#FX!$RAT?UH_>+@\$_ M9EG_\FBPQ\: 1K=#HW/%@I*-L?]TQF"@8 !;_&WH_P9X8SU'5^=>@=)#KMYH M"M4988P'R4N)IP)C4_2:\K"R%P7U7_*LX!,WV7OS24!-2+KY$#9*\J%&6HW6 MX1QVUR[7W\D^Y/N- 4]^!$M\GH3/!HQR_ZJTKK?:&:B(KY5(I=M:BZV9W9L\ MEWN?#??M_L*!T74&W>YY&\#IK3'FC)$*QB3?)&/XT>;/S;\25#9E/WNTO;:; MVP_ YZTQ-MH8V\WMI3:W1/"8G$U+'Y=%M?]K^QQ\8RK_XK\@>TJ!XZD5J;4% MCKFB94:'/%":\:K-SD)]S9?@BG<,0BNL0>2I6BQ:5G":Y@?X*^"5GP6OK>UQ MQ2"[N,,I8BEEFFC#,R7S$N:'1M[5IM<]HX$/[>7Z&CDTXZ@XW-6Q)#,T,)F>;F)FD#G>E]%)8 M767)E>0 ]^MO)6Q(""0]>FV:'DPF8&LM/7KT[$J[T)Z8A)^^0.T)Q03>4=LP MP^EI[Y-7J_IAN[*X!(-*;M$>2C)'VLPY?5-*L!HS$2&<&?D;2U*I#!:FE6)" MF!A'Z#B=M4JN6\)NE@\QX4TH&T],%/@-)L"B78%V9Y<65B,IC*?9WS0*@]2T M%B-Y1J91T')M(YPP/H\&+*$:7=(INI8)%H7A4!HC$[ U=&8\S-E81,J.:4>S MSQ?CQ))+%;T,W*LUG3!#/9WBF$:IHMY4X70QW'2!>"@Y::UA>Q .8)DR8B;1 MB!DO!DLJ+(;>;,*&S* %R[8'("']6@K"X\>&W-W_V+D[/NKWNHZ4L-8(RJC31YVS MJ_>#WMF>I=)IPNWGW[OZ]$?O3]3I#FQ+-0BJVTAR MDV."0)=1W6_4:@?KT&Y[7'5WC^-TM'/8^3:>+@2""T%CPZ1 4V8FR$PH^I!A M!8O)Y^B:VIB-Y B=#[JH+SE6970A8A\=6L-7+VOU5EK-X@L68(A@R85I;T/!G+0DV%$VHH@!U!6T!?X$,<*.8*L-&\S)*,Z4S MV(J0D6CE4J]>ALVC5NY1@ 83F1K <]LZM['*@J$<2*R&6%#M73%CDGIO^ ],MG1Z&KPOJ;QTO%OV'0;#>X].XX 4 ME'O9*./@(3&X$[>*7WJ!HE\RIIP^M)66SOTUK!UB<#B%PL8A>;V4X\IGEOZ2 M:S(\ 4>PGK14I#U6K0Y7>V7^*&56GXDRF8 0GF G-]N" 0V!NTYIA6PQK%3]Y*#(-E9*?7 CW_D M$F#CRW-HX>&+4MC-Z&@M;:O M&#SD=)-WVNRK-92*4.6PV-0+H%MS#T0F,U GFU'26@K0!PGF#X#6.$XUC31- M,:S*TC%=MK3HVZ5P $ 5H]\P#=D+9V8>%<_G1F!%[NJ]WO#!D0YDWC^X.!A_4.OX\_73:&.+X\UC)3! O][N1>VWVNRFPY@T5 MQ9\C]]^S-S;,O1"EDYP?A)#FWMC#28QYKJ>%QI;J57E"[$P!_O<\R^\83K>I M]0Q4$Z%.-H:0B(X7I[U;VMVX7/\G?M"WDP$MOP(3;^?1?R:,/'X5J/UJ(P6( MDC.""FP;&=LPNY\R;][&84574'^"/U,%F0G!FMW@9!.I^[CW#/QZ3\8M,A)& M"*?/B8Q[M:TGDLISB6E?S=<^P/TB/KTGXUF3L0]PWXFO[@0S!2B* LA;B16Q M%V=,T=A(I3<4Y1^*@O!N$_[O_CW0+F6072M4&\L@MXJ8*1Y33TA"BV=*=^IM MKB1'')],"ENIR!)QMXA9B&V91=COH^]]0;VQUD<%@1QD9J=H"R[+=&3V-.+\ M86NP7IN;J)6+PW(L-D\\ H@1YE,\UVX3;5?L[P9.7[0K[A<'_P!02P,$% M @ 2DL(693#64M7!0 52 \ !F=&-I+65X,S)?,BYH=&WM6FUSVC@0 M_MY?H:.33CJ#CX7W\KV8:$0))+ M7]+T8#(!K+7TZ-&S*^V:7JP2=OH"]6*"0WA'/445(Z?#CU:K:3=[C>(K* MB]XT#9=(JB4C;VH)%C/*/81SE?Y&DRP5"G/E9S@,*9]YZ#A;^#73;4B_K&ZB MW(H)G<7*<^P.Y6#1:T"[LO?A:ORA?SE!D]%_ MY^31LOBI"'&/T0=[; ]L-!X.#"ENJ^/447^,^F>C=Y/AV9ZEVFG%S8G31:-S M-/E]B,;]J[?]R^'8&GW\<_@7Z@\FNJ7I.#O=RTR.\A"Z]-IVI]4ZV(1VW>.: MC_.E%C"QN2?#O7.H95FML MC"RI@'[?B,W20TIOBB5AE)-;LEPKI1SMB73:MH\ZS6ZSVSUJNF[KV&FMYTVY M1FZ9Z=\QW=KIH?NZHO[:\:+HWW6;<%*M4\. MJFQCK=0[-_)''X"V:?"^I;GWT+!C:?0FY/@;^XK"4T:V>:?.OOQI*D(B#!:= M>@%T;6Z!R-(# M#V(3?YE^&FU,@:J\5 _GT%(1,?%:>^: M=KDW&-C(2&(2//B8Q;=:TGDLISB6W[Q7<8DHB=+ZJD8RBB 9$W!7GX%VG\@]^-OB-GU1\K_+3 MUAK'M0IEAF?$XFE(JGMJ-XIIIMX64E'42G49(D_XS0IEI:A5BJ ?-M]Z^KRU MD$=X" G&0D]15U-6N<;B:13XP]9@L_ 6B[4?PW(4VR:. **'V1POI=DI>PW] MHX#3%[V&^3G!OU!+ P04 " !*2PA9D'K]YOTR !<-@ $@ &EM9S$T M-C(R,3 R,%\P+FIP9[6Z9UA371E%6FQT$0$A"$($!*2) M]!:(@H"$)B#PB$KH'0)2I21TI'>B]([TA!I(2(;G_\*V?ES]DY M9]_7WFO=]UK9E-^4!0"SOK:>-H"*B@K0*BO4)+ M>^D2+0,=W>4KUQBN7;O*O7F6^P8.=D M90>R__L0*IJ+WURBI:>EI6=GO,K(_O_:*"T EBN (FHV&BH! #4+%0T+%:4# M ( J&BI_F. _VE4U!=SO$QWA9[AZL6 &F8 -14-#?4EFG]G?7$WY.(^X!(+ M+>LMV?N7V8QMZ00\V>7>)V9=$7Q0V0HT&<$)R=MYA=$SW.#@Y.(6%A$5$Y=0 M4%125KFK^O"1EK:.KIZ^Z3,ST=G5W=OWIZ1\?&)R:Q MO_],+2XMKZRNK?_=V,3O'QP>'9\03L_^Q44%H*'Z7_9_BXOE A?UI4LTE^C^ MQ45%[?_O )9+M+=D+[/>-Z:S]603D'M_A?U!8E9E*[V@O D.:.S_Q#4%N$9#=;%X-"P ,.#<-!LA!OB/9S4T1G;1 MI0?>$/OL\"4>@.+"GW0+H(03HG#ZW\O\V@5QH,FF;4?-R,N\1]!?>VTO79>= M>K3!FE'%6W,2HR3%-Z.;',X &C7O5'!$8&0-\>&#C%=!#N&Z[;L#MTZ-%FUD M"UV4+L MJYGF/H&F!%I^KKVK!A2\J7. [&J853L.'I4:/_^QZ?HCB&4?J]KG[?:FQB;A M9]UQJG&X7VX*UN$L@TYH2-YA.G CV:2]\,5TBNSC7Y!\-<@(/8ZGK1>C(%]Y M=/"Q<)5 MY@_E%I54+!'WPD^\N#B,X4P':712_%:)[#^P*]_5* CKA+\2A? MNG!KOVC\EE7%*X/?=DWO?&W;+^;!L_=G4D1.([\83P'X*=V#7\,RE9%NXN_$ MEE( #AR)Q\2[,W")M*A!&?[]YJ8:<4A/Y5!*GO_\0RQ,&E_R"+MBX215,"/; MHI< ^AYTR50(7]*U^;?]UN<5;@)Z:<[ F5M\^76N#=>+EX@3IG^!Y!$1^>-7Q/"M/9O* F?S M],>2P+RFM]HYG%K492/0K,6WG##>0&>=]7$2$1B'BDU3=(;N,XAE-]-\$,M& M /[U5CS=^T,HF\X/<2E^& MK%YZ0XTPD$[487A5\V9 18"'OJ8QHZ]R'_=Z0;-GQC5"EF))7GYQE\7O1:== MS9H) @70DM,Q(M5_S?Q8N.T5*3<($F/S?,#>4[BYWU'\TT()Y #%O1Y(UOG6 MSL$H5M:H>7*@V2[1]A(?X/0$"EH*D;W6X\G=PW-9F^O2LY2E.6H\J>'VB(6- M;-+(]-5;8&\*H,QF@#=&P>6OO^2U<&C%6RRK;4#"E1)COR1"FB-L3HW6E,8T M*=C'_F\V@D@S>('ZW7_-XP.3ICA2M>FYKU7QM^6B1 A[RY?'%'Y5QSS7'_+M MCS!ZM,LT6>]97[CP5[^Z@>^?QPJ5OCG:?$:*A)SE*'Q\TQ8;:)OH70LJDFHJ'YYVR;9L[;J6TT7$_CJNL$SG^=K0$;XO0J/-3TP)T!?5 MV%LUGKQ#KXEALEP [ *-O^-,?[?02I*>(E&12 ?C]?@ IO*I::HA*E65VI%/ MOJTD[L.71^5]3 M %-HH8FR:G>UH,[CF(*IQH3[1Z728:"KVZ'72=+#ZI(O,5)Q/TI_L!SHW5K] MTOS$: /Z#8PSV8M'XK[#]&MQVE^\,;K#VEO)/+ ?,S*K%D'YDDEQ3.Z0)#6^ M^EBCB;]$/2FC8:7S8C1+<1(,GO/2"PZ#M]75--/I$N(6B2%0_72USQG22I/[ MH$:!C*B_KGC_8P\"V!O?OGPY8K&0)2+G<=5>5NFG;,M^_T[VL#3-:,/74\#'C]8,[$.XDBUWQH@OOKI!IOW M=A7.ZT@]*-*S5[/@/MR+T)1VKLJ=[4LU_N=Y@E!0*%"ZT^AR66>CRV11[>ON MO0<4 .O9N6N?E+1090-BC:W6XK<,!8N!CB!69^/6R=U6,;R1\W5[-U=G(UNB VZYJ6:$"/->CK(&N!*/V; M,(18>38U0BSSO^%7RM^P3L[IY:KHCE>!;*%"A#Z;M(X,$30ZL4[RKNZYTO64 M0Z=.:^=J\*7Y?N06'ZQ"LXG[U/89J5@U.6$0H[X4^_!S5F1"T0E)-DK/B$WZ MX7CH)8*AK[N+M?FB\GWGCL"--?A9R5_+53(/P5U=?M% S4WZ6Z]02A1>=N\4 M8@PU^[PPR725\RBH:O7@A56779YFS*.+" T6_73Q#1"4,1/Z1M6#ZO*8KEI. M) SA?QQ+2B8HWQNNO=UK2&+N^#C3]!YW9X&N:)?<9@YU!\,J^N4_WN89$CQG!XP]6O^ M-!?7/SN/S'B9WK2AWU 88$D!F@$^/+BY%ZF&;9)*Z8(>8GENCSKIR!F^H' M/1([<;D(M_[!39//V5]8VC=Q';I],Z$J/"[NKUYKJ6O/$I[AJGT.(_!]6T/2 M+!(YSX,6A\(<"#FH@!]'WZ[V11+5[TPW_?.^+?-X&1P7XD !7&HC "D >HX8 M1::/9WFU6U+2YR CU@(FV95?!><9.LM0-H)3NS_Z#O[REZR-0AOBTWJ#U_N?%K2G39PL5R+FQH"_?;&$0HK8D?I, M0TR'N6_!<-]Y+EIZ"L9">(@*2%VD $8%WN?4Q/+*][:[+&,OK>-0[8;V%HW8 M&M<=R-//,]"Y?BQ;;U!598_BL32)O7VY@"0*8I5JHB]XX3':I.D_2ZOQ)L%X MESH1JA$Z"+]R)U2%]'(8)LWN=NRE+XIQV$S=]%K?&LU@2,_2FD@S\69 L5D; M1_8]/!0DTW_'29.9X9%8_KOC9<S@ MG-C(]'WL'7>E1$Z[D?6&,^S(Q!J8R^>3^XYT3L*:]K0@T>]BYR!9]RW6N PZ M.X,/:XZL$XI_X9]$"IL&Z_83'I8KEN?=^2H8NFG<[!7$\AM2@1VPO)/ITVPW MN%7M1>TYA_Y4^\G0@R<^-A,+BOA97?GE584OWZH>FA@00=RY^CBG"NC>.@N"JW=#K'VU'#"Q UY9T1G-*<=ASY MYD8KMG!:E )@LRPVXQ]QO-XLW)0V%]P)7$#B9C'4F+]9SO,G_4B2H9$3T8/$ MC'9D)MT;LRCL6>P^L-1(,5JU/4) ^]$'LV(H^4FX,S@2#<*1$\LV^6__J!FM M\9&SF$'O5!6J" >42A/<,.'@0TUGS(6\(9@\6SN.X2DS]! *-@0NS>/^P"_# M_\+&X!<:&Y=#YI%>&#IG2O<@@\GLYQL;D-=QL*O\D*"\Y? M)M.1@9LV['C'Y.4XZC&KX3W[<9_&FGG:_N=36YORIF+Z8-9*SR+Z1JT9;/:G MBJ=Z*C1%*%D\=D<>U[U8UE.'9XKUF:;OMB -R21X?.8VCLW+->L6[V+8]]/0 M1)RBN\D,C#C]76<3HQLZ+H5$SIC7]]=*0 MX3;=0;$L(5D_U3_"]ZJWP!%4YNGE[T!>9987U':)0J!M&45A +OQTY[ 2VYF MZW&.G*[<9-:&REWV<\ _T.O9B=MVGRJ1_7;A< MCW []O_)54ON+@>V2:^.0_Z9Z)_SS;@UM#^G'=M7M)YC/HWR@! M7 AB,T-BM,S:7T=HDS,8 B<^F/DU=[/R7=UNJE1KR!;;0EZQ=< ^\U9C7_2W M8)8YS.UN"J!ZG8$O'?RD!?YC9;# Y\]AD_%'^V?0ADPJHVS$N9ZDI. !,$A20!KY68-/L#T6,<866>*U39QNIY/_0!CJB84KR>(.,IF/#4 MT!M920&TW@V]"W,;]?DIX#A2?6RU\T!+Y3?"*P?_DM:V;KL1'W$B3P)CA1+C MGZ?+Z(G^7,,\Q=A"_^R@+Y,$PZS-^Z<#"BPH -WQ&UH\BQHY0_DR<.XSU8FL MJ*P>NJ)]'YDC68LTU1C#H6#\Y;I\ D=;74/>HI6U].-:Y]PI%=T1[W>:89BK MFBHPXR9"']X(BG=8WN5(3@1 &RI0].^G5SM#TR\F^+"\"5Y&4OV!NV 0Y<(M MT-3H&W1#!6C3_LD#D"-JT KT1V=IYVBU!D62/+=C3]>*_64'$$BB>M,_824D"D "@Y->=$AK146< M<42X37@[44>OF@'ZQ$'R2"]X"LR* J#E'$6+P2SP\5\7H=<(:N;C,,6\S RK MF( #8/_ +\&,DM&?O.B:CTT94;"7N #K>#YHM.-4E<.U=VBD.)--G6LOU?U M?L^M/H=H=:3;,@XU[D$0@;<@"0]">6<(R\]J]H]" C%O?Q0, !MP#$B=+0*D M<_X*!6 /C;:Y")W,#SG7QW%0^DPCZ]/<1.Q_5Z6LNFGY$U9OHDV>ZH7L9!:DF1B+JX4\"U"!:1/ M?HUKR*TX;89)^U -+OU8>J$U\^V_13B3@RE!$/&H!,ZZ_TDOO/LSZ $#',P MP 9GG1>;#@3Z2['F',@/\C;&L;+7F%;7.CUX=JVQ8&^U<4+KPP1+=>:0( M.>7XA,2JET 2# 7S[A#=1*?5)+>*S7S$O'-ABJI76:)]5K9AMRZ4I=J2]/G% MXC)3 L_*8"VQ MJUYJ:QWN0M,9J,RB 12CZ,R3MO B\JE-UGF!T^N=4$'^P MV!WS!N,(?S_)3(":IYX-=FG]K#$PEWO@G\'KIWB01I( \\&'4\HO'LF&W1L3 M>Y,)*LP_U3OO))6H!GXHZIK)3Y$K'$]3EB7M;UI:SR4$2V5D.2O&K>BP6LV( MZQ@5:DBLA2]*>71*R?U-5SRN&'[G8"5F:%+'M& =_"1'?A72)4)IBJS^#=.W+8Y7_#W"T(Y](.-JFP=R=AR M[R$%<,<(6@FJ7)$C&!U;X=Y.9B7K!:M1G] 'H*T>40FETA4 =VU,X)YP"<(% M&3CC,[9:D%>WU45S!U9F"6':\:LY[BA>!OGN2G5(G/JCRG*%,ON_SHNV:5UF M/U%9!\@==V)00')WAGCSL#I-R4!.@,U$K,C^1&V?G\XU?[@/MGNDW;_4A5IE M-.3!L9^0P)J.GT; 4=$A(\->1_HD,L?YK6+G^7:?AP>UKZ-H)NH/^$_RL08N MJ@7.:*5_+.LR)UP?;;/WM"GZ>4H%_3.ZW05\=UZ0F:@!S:7L&O6@9UN.BKRY MAV A%)KN@JX/1PI?!(A:QO=?+(+"GUKJ,Z3^.DE^Z;M3:U!_4$9XL?7?J>^- MMDXUGW)N\55"A]T^Z2A(L2>6)LI,&7\&"HX!#W2Z]WYS7*BU+N*6M?ZLT8HYH@"G<>\7%?V?#TOXKO=^>9RU9YQ:H$P$D,?G1 @[V2Z6 MTHC25^DGNF8L6\99+"^D#4OA:+4S++:_]5ER"V_ZFB8O3!%WTH9D^!,0W&[I M8QGZW>4]=5>.=R+I<7#RIJN33?SS:JOQ* 'SZ+!E+'#9[+.#TD)I0F865UMZ M[.R?11 K6M:%.S5/*C7Z[;'Y4UFHIF#4YWA,Q-L;03:52S'YP0%O4*OVD2E> MVB$#CD^NGT9IS[3C>U#Y9" A^?Y/W&Q*WN<*J]G2EX9,5'W7<\_6,F=.B<]P M-LTY+VIGP XW[:#FYW+:J?V]:##7+=QXLG.Z9?21 MEMHK1Y 0=,FU"M_]D2Y271I>^/95O/QJD4H?/RTL62AYD\-MV](U>EY]O[]C MF';6OD.UX./NH[239&M=HU]Y\705[!.XW=*1:.VO0?;@+I;*4^PPAC$4^#O MPRAR?Y_VYWC>/8M?/UG6OU%MV7P0U#)\SRYJ6+_T3E-SI,FHA/!FT;+MV-4N M+C7!<^KW=ALZC."$MYSO0KCMIKC[ZF*%O?=[-2 DB:A.HPCSH$&D9]%&A10Z MCW7/(?:E;J:7[!84O#'UX4PSBW;E]HC1F\7Z39E ]A.:'893UZ75CCX\D]G5 MVPBY)DEF5,SIQK8"#Z8K"]2<@1=U:/: E?-)(B& MK=_I7]_QZ.,]@Q1@TT*'P/M"0Q0 U NN?\3-2F$.'>':[>SK0\:C@]!<2;4>VU0#KW%/0ZKT@/9FH;S_J_3 MM[Q'2C9P_@ =?<)))[/W15RK;^I^>$W4Q7Z<#BCLV$OV$!]!&Z/%9RA )P0IYR[F&V4H)) MB4)]M8\@4&TN]I93T$/\9//BAB"1/T>NFVOHT\YGL#'T/DF.D,@4[V9Y-ZR] MJ TBL]NP4U@! S+?9G[P_J=@"=34YN'TC9X\Q@[JB%VUI-;T>OQ[QI!P8??ZAY MA1?^/JCRVL\)/^! 8FRX059]^N2&+I?G'C1U:':()^T E*\S]ZL,M*J9DHV0 M/!(\D/FW/YR+NG9>@7DM=(X,9;79K$T6($3B8MSEE)X2/A_ZV6S*#H1Z7M1Q M!LNE7\T4&[E$WMQ0K'Q1Q?\.XLXKI3^R%M^-_-AMTMZ79(7\P5ZS#J[:Z8[Q M(+/^59Y3;HP_Z%#^%/,E78544;P@ES__E#& ;N>4:.D*IG8_U*!IK7O;NN0Z M^D;$.9M5PBH>K#[)G">1?.PY\[?(4J&(^-PM)%HK5/,UO [;OYDZ2TNH;UOV@J^W=F5XWG[P>-^ M^&J&FCWB /D.4TMWH6MCYV\H@*X^=S775OO2;JW?$%01R7+R+4%_4D4U'ED= M)"ANOR&![G$9FF"P?"6QQ4K/ WM_SY&&2V-0_*@ER%:+_2F5\0 Y#YTB;#XN M0M2(W8=[7@U]\+-22OO#]#8%()!3FJ3Y=H(P@>H^5_)8M_F)"XD)\'KZY-[G M]S8:@=)3=W8=R*38^2\H-\)SCQ6"Y>46?J>!3OCM@(#F.K:),J;(49+1L#S* MF^J*QJ$:MS8Q/S41O8':HCGH"F4*'7E!@A'>4P"VT9@\'5SW ^,$/X_!H:P$*G)?9JTY]E-X*6^/:[GUK-* M7_UY;^RX>]D"Y%CO=UN>G0ZR_Q4WM ;1/_FN7Y_&_:9_?XCP!AR'/%2;"S4@ M Z=A3.>5:.F G&7EL,,0HRX.?U7?XSQ>96893I^[O]0A?^"X;Z%#3#\%W8J@ M ."AI>>JX@ MSH5C @;7N=H2@L[1J/7I5GZI)AQ3;#64=6.!9U9BXTX6XW *>!%:#Z(*50T( M7NY^=W@>K-T476XC3+1.75R;[ADND7[C6B=7<,=!,^I[\D2"9/Z)A@1"LI\L M$3J20450]'1P7PKQXS'H^WE#9=.>; M,',R!UXNV6A(*:^TI=V)Z_ W3\Y,$L]V[]T,8G89T+.)"H<](HC"TC]/17Z( M\?20O^'Z8B%K+\%EO[%9].GH*WBUY8NI%!7IFL^AOL=\Y45.P9X*S"\Z%8:_ M_Q"0$3;**IBSF-YD/H4\U?$$G;QZVO:]Y=2U'0-4UUJW5X"L@X"(YSOPQA)#Z05 YW[ZT%-)B$=#$&)(0M1QK=@S<[GJ_JWN+GC'[& M*TPUK\OM6_@5:O'Y$;2]NMD;$+?A]35S/OR>M88N8^)#P4"Z710XS M#/V)^JDL!1#"?6:U5)!P$Y<1KFZL6U;TI%'P(^C+?;)T&]H>P>51GB1,N_;] M&*>:%#1Q4_,;068,1/4GL*]N[67&UM1%0.V1/AM"-C&]Z&1^.X'_6R8^^4 !;NT8;-CDVUD1U"N!7,O@\ MI.=<6?'?W#\Q.D!]ZQ%-[9/=##%T MGB:46-9$W HW0T>RP%U,H'W@@IVZ!>]>2?35V1M>4[D?\3KD5GA#-T$ MIB74-I*E)_\QH:X)FNS9 @$MOZ!=CU9TUV=CG,L)]&6"WC&_+9&7-YZJ_'2F MO:.B/C$T<^V=YC@J _,:>5UWDH%GL>O5PR+I_5Z4';UA)Y%M=?M2OEEB9^ ]")H M/QSF@R^(TUK//3_7X[:]=V#<>\0$-I0](*8]R"T-ZS?R->#4FVU70L/Y?1G> M=.E#J(J%VW9V@%N65^>W@W_+)Q0.VCY4'C ZMU!RY38<-A2O[&>YN&,N?L?V M^;=.&A6FFUP2S8.26T:7 CP,<'/AERSUU^B?Z3JH5W^(SW^GRB"6G9Y= M2@&,^)2D0$]?]P[L( Z8 /-P1T*?7LI7N\!6ZX1[C,%[7>Y2-6#JN4#/T^1' M#\OI!.F0HVC[:Q!7\17>,(V2_>U]:<9_NNH,N<[>:$F7KH[E8)^%%)9RW:>[ MN2_N2M,2U()M$BVPN8YBOA1DG[!A=73FP(TH4QFW-AL:*+X_]C5\EO9_-LE% M4M&^YS_1:O"V9((D;-*T-.CX!W=OI]JW6#6:W\7?L%HJJDG&UD^"4H!B=_M> MA0:3Y^9Y$[K <6GF?J:GZ4Q1)\^M7N)&X7TF(:&VG2_)G?-T1EW0!&ZI[QU& M(HGY*I@F'Y"W;2_-MH5=TQT]H<0,/>O\+SU.?G>=[,>17JY'563Z;MPCF#)! M-4,84_=LLDD[=*0Y[7KJZ2DS^:[B87WT[3N@)#4D*"*V\I_R0/>?1Z(?:[:8 MZ A^% !D7-C*4,WH?7[JP[9LL8%0(,F/4!"(_[I4BUEJK#V]4^!0%RLKR:O_ MMM%[F)D*-0PFB ]U^^$*PMS0H V(B(:!I:;#LM;-?K\MTC4-GC/(VI.X[%G7 ML[+X%%L>/?] ":NV0CFO#C&5XP';M)&G,25W"IXX0Z<,GR8\W,801)Q:, 1# MS9NSA!/3VOF\U^%]5:QW3)[_#EG<14ZB*8#S7++L%(R1H%,>D.H8.Z=#']]+ M?UU]XVN$\=XX&0C>WL'%8Q<2VJR9VH:UB]19Z._\4=5H!UAC5$D73!66!O/V MX(4]KL7=0=Y5??*.9J:XUL0JZ@.DG#+3R.6N*2Q1QC3S?JDXA-Q:1/]?W5-$B;/* I,!W^= M#\)A-&]2 +_M/#:@_A1 J] %X4>A-1/36'J*VXR;/5E05G@G$AMV$1S;9%SL M>A97FXL]^[SC?3=^SR5-XZUL9U!4*],[3> Y\M!J1[HM<:;;-5 FP]A;^A]_ MJOCKDK]1,1'Z_ -O CC=&/55$ERE:C1$$&(HWI.V?[NE':AI6 +!)8'O@ *0 M^D_;8F./(%1YOIZ@1JJ RT.U2=KGX61.F F^MF#I^YMY8W?3IR\/JI6MGGV2 M;>D&_B8QGG^!<1$U:O-AHL 9)^,I4>+C.4>_PVY>2*45QY-\/A.K#,9KC)8! M!<]WBK848Y;!],YD-5QM0:9+XNU)99P"JR3 ,S$V]H1/9[2V$'5+32UGUEG1 M,50H='3^!S+ZHA8! XVNU8YMAG*FQ%AL#G<]UZ< ?/$C4:$3J^CK^%W, I^N MBR;WY!N?DDQO]-0#=J3G-U 7)O2HC,D(?^.K)K+H3SO<094]E7Y83C4C,QRJ M$( ET[?B@KNX/V"C;4.RFZ+>QAC6[R]!LY?S@C]77:G?G]09F.Q=RQNXC_Q^ M019Y>-3S,7*G[W))_KM8OD0)6?X5;QN-HLTTLL!X[,F)LFIYEOABOF.J]I # MG2@.>!9<<+&$$J'\.KYOL0US91J-H)E+(WO\;=*:>'O-9X%=:]L2^X5F M@&M4+=2I3=S)QTE>E8?5SL4R3Y\<:ZJCR5,X5Y[ZV1-QC[I:DXMP>:MS:H5)2)K_ZU6/5'-. MQGB$9LV>.?QJDZQC)J,(O2Y9_/*RM6)9J=+37)E'%1TY#!]E:#FH1CHJ.BH+ MVR0B:'Y#(DDO"$9OZT:W5*4P7]F_!.XL\Q;MMD :1G0OU.6Y"?%^PT&94VHO MO!,N:TT#L\1;M:]^=T <$G/ WT-$"P.4'T[DR5EO^(W]"JJZ.>!@B$.V'>BC MSM.XWN#@0[M5( $?(;:9)EKC(2 W5*QSL3 M3"<)BS99>02([O#OFLCO'BX=+ZM?4Y59WJ&"2L)LP'A/16@Q!2!QEO]#&B:: MXZ)LY.F;/SVD=K[!1R7R3M-L1-V^E/"&(\80$VSQ>]?!.!%I.0F-R;BCU3+) MPX\O0N5@%FEQ%TF76@J\]SN'S QENH@Y@3'R.0)PNF= J%J:CC/IY9CXDZ0W MPAGH^NLV%3 +/]9)8XE_6H&X=UPK")(^&9H#[E821._':_F,NIN-[UX3Y+KD M7V"XT,RPY)1J+3&I)Z3V)5U&3[.::F4>0.).T]ZR:HIXE7#^C%Y@!60.ZFW. M(0ITDV%E%,#>Z 5\/7M[C_RIO.92\4OT;=V<+4 -P#/RKTH* "D))QYB%J&J M)#=< DD0+:)
!!W4ZG)9:2PMXWW#NU;K5S%S@/S# MFB\B,0:U\<_N0IX!PK5:IK(1XE2T.]E02T./F_U>6=IG+(A3MHXI-0('VD+B2$&XM^F3&GY3X+G.?:-J7YN.<\D50LPEO K.C(_+ASV0J"B"0RG[\Q-AF%UBSYPQD4I,9KX6*J;;P*/N'K_WZ]XG&<(NW:R]+C,^:YIM!O^8_5ER/\"B] M'_R#-)#_LEA/A2;)%=]^3"+TS@/1ZBXWE*KD7\_QBW2QSWYVUIE+#&T&,YR+ MG:,T941;/=XWD*MX>VX4J6M/MD()JV]D3QTQ+"+U@2M)SGQYJ=IW.KY5R=XE M!6$W_KCSU)D=@F\/E/R1D-T,ZMZNP3EZQ".Y%8R8_OE3_2O7JED+6WRO(/ET M">-6(WFNUH)FKV_\ZE[[)6^J.I:# M&XOJ M6DN NFL\J9&\, 13%J<0A(\"H%4E;*.!.,6"]EFY58LOL3:&U=I(GP=&LF)IT3\UE+->A<*<7:"V,UU0JS9\V7:QM5N M>G(O8X&'!20VY04H262>Y0XIN,AJ;_00-#MU@XO)*^!F^#CM753<88C 7@=W MC#ACG#A[MEW2WT& MDFJ@ /JTP#MP?6+QCR;IQ480'<'_R8C/KQM3;5VT89R?WA9?EC1OXI[@LXQW M.X-I !\DA5WH_DK5?_](O6P@T,ZCQBL1FVQ#M1P")[."F TE>*>[B?6GFW1! MAU!$J!BW8]HQ)V](]G)X?''S0,#*V^I1(>.X4=WI9T')T %^4:<]-G.N.\!Y M:- L$>3YZ>6X'=Y7$[KF/W_%!U[CDCQ?W_M ":#C/=>,J%#GR)2..E21PA-G MWGCONH9B7BYL(XD<8GD/]$>#,.:P.8?HLTD1LQO3-[,1DCM#M__7N7;Y%AF$M>S$O%=1HOLS]FYZ<&,2M]']N$=3)<'%II#K>R4+77]6T6+ MU_,L":[+13".,G$ORS:O&Z^&C(XC0NB6$RY;!HSI!#_'NO7*7\OTBH/>WK+4 M&(PH,K+U^^H8C3AJ:#)<6YQ#I;J,AG H:Y"EPS.G# P M2P+/PM 4C]:8.\F4L9.,?+.T=&7Q6U=C93NOKSKVVP8<9X0,.WM2Y 2_'NXU M9ME;)=#C\]Q _->O;L&I;((3_L%RF[*!<]".YC_K=*(B8,\=J/;&5 2ZQ DX M45JBP%J^ZOM7*S0\96V+S^#$J\HJYX T)!K /=\"N J2,2_\Z MWD^]YX$B,+<\@08GO:V&2UN<1Y2J:^7\]18IL%NR"A2IOU/8GO,ROF;OL_&C M O'&GIFG!0PNP^::(?BH;4G)AIDY+98HI2_=QQ $Z=;L-VQX MEHS8K GIN(&WO^/T]I?XV"&K30Y=%K H)@EVX0$; ZWI@8SCYZE&7(KBDO>! MBM8F(8YG5GT%LX+?EBOX4Z9)TCA86IU>\:S(3:,C_?8]D&4;SBC<":^UWRAN MP#E]9YW0'!'<_#W73PG?SOHA[C( >)I A2N#88'G-5_R)W91$R>'&C/+,A$, M\&?M)%)TD,F(%OPIZ,J_Q\/^FP[\%4!4 M/<@0N/Y=RV>@<++H@4N>LF-"2MIB:#U:.$HG8V*L'\83P66(_HG*5P=G6Q'\ M]>HJ:JTK']2?B$Y6*\6N\X[[RU]U#13V:$!88)/?][UVZ'7VK M@%?&-P@_>,HL![M>(9;65%[!&\I;'$MS8V[V?D.FD] "DVL_8=FWIEDS M6OR+%.#<+F<\3 (;N0D->@>0%52GNA1OR&.-(*,_!0["C:?\R#.,N8^]B@%D M^(P;L;\CO7S;/H:H;12 =OE;BA9[[?\N%;E- 1R-VV$>M.)3=>(,DMG8YW5^ M+IOU>?J$2KAM_2T5QI?']E[!? @?6RNT6KK\X2<%$!T+_AYL,OCC;TD#GCAH M5#(9?/^\6T?+DX,"N%'MJB06:1#^)^<%8J7&(V8J8O"PZKU[9.ASGN132/\: MKW^B ]X=:^J:Z^N4I2/>.1GTH*__J+%9>ZI+XX0M5W)S!W&PQPY[C@ 6D!77+./+ DMT1ZUGFCI_WD2F[>>.^90T6WHR?F_LIP"VXVE#E;\& M)/^S-K HAWBB/O5OE0@X<]/4TKG>G"\!J9N1?SI^Q]<@,F/?,?TAZ7$0Y.$B M$_5<0-+272'MR/:[Y;^T>@6?.:HCV+*[YT"P")F=C34+Y;]K'#V8]T>R^C(:O/,S?J'!6\IRVTJ[L"@=( M668CR$EY^NPOB\;,$7] +.)WU2HNWN=BKWY*IX@*H-/' MUBE47,D'[T_*AK^X7H8+.YL/?O[B]E_-;3=-C\'F> 3!;3I<#K;X^??I( 70UE";UMD9&T/>&R"5R!D$LNVU;)'W$Z&Z\Y O >WG M/I@]R &*[6TDDY#[XKKH9D@HG7()(BEV*4&E2\TNK!C\(=1,$4N":6B1#(Y0 M/<)W#[P.Y#>3S)NCNEWE*8"2ND3,[ -7#T/9#/]@@ !$^ / M " ;MF P!F=&-I+65X,S%?,2YH=&U02P$"% ,4 " !*2PA9SM;_+^L( M #N/0 #P @ '>;P, 9G1C:2UE>#,Q7S(N:'1M4$L! A0# M% @ 2DL(641O.XYC!0 >" \ ( !]G@# &9T8VDM M97@S,E\Q+FAT;5!+ 0(4 Q0 ( $I+"%F4PUE+5P4 %4@ / M " 89^ P!F=&-I+65X,S)?,BYH=&U02P$"% ,4 " !*2PA9D'K] MYOTR !<-@ $@ @ $*A , :6UG,30V,C(Q,#(P7S N:G!G 64$L%!@ ' < L@$ #>W P $! end XML 80 ftci-20240630_htm.xml IDEA: XBRL DOCUMENT 0001828161 srt:MinimumMember 2024-06-30 0001828161 us-gaap:PreferredStockMember 2023-12-31 0001828161 us-gaap:ToolsDiesAndMoldsMember 2023-12-31 0001828161 srt:MinimumMember 2022-08-16 2022-08-16 0001828161 2024-06-30 0001828161 us-gaap:GeneralAndAdministrativeExpenseMember 2023-01-01 2023-06-30 0001828161 us-gaap:GeneralAndAdministrativeExpenseMember 2024-01-01 2024-06-30 0001828161 us-gaap:EquipmentMember 2023-12-31 0001828161 ftci:AlphaSteelMember 2023-01-01 2023-06-30 0001828161 us-gaap:ProductMember 2023-01-01 2023-06-30 0001828161 ftci:DayvLlcMember 2023-02-09 0001828161 ftci:AlphaSteelMember 2024-06-30 0001828161 us-gaap:CommonStockMember 2023-03-31 0001828161 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-01-01 2023-03-31 0001828161 us-gaap:CostOfSalesMember 2024-01-01 2024-06-30 0001828161 us-gaap:TechnologyEquipmentMember 2023-12-31 0001828161 ftci:TreasuryStock1Member 2024-06-30 0001828161 us-gaap:PreferredStockMember 2022-12-31 0001828161 us-gaap:RetainedEarningsMember 2023-12-31 0001828161 us-gaap:RetainedEarningsMember 2024-04-01 2024-06-30 0001828161 us-gaap:ResearchAndDevelopmentExpenseMember 2024-04-01 2024-06-30 0001828161 2024-03-31 0001828161 2023-04-01 2023-06-30 0001828161 ftci:AlphaSteelMember 2023-07-28 2023-07-28 0001828161 us-gaap:AdditionalPaidInCapitalMember 2022-12-31 0001828161 ftci:CbpAssessmentsMember 2024-01-01 2024-06-30 0001828161 2023-01-01 2023-03-31 0001828161 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-12-31 0001828161 ftci:FernwehEngagedOperatorCompanyLlcMember us-gaap:RelatedPartyMember 2023-01-01 2023-06-30 0001828161 2024-01-01 2024-06-30 0001828161 us-gaap:SellingAndMarketingExpenseMember 2024-01-01 2024-06-30 0001828161 ftci:TamaraMullingsMember 2024-06-30 0001828161 ftci:MajorCustomersMember 2024-04-03 2024-04-03 0001828161 us-gaap:AdditionalPaidInCapitalMember 2024-01-01 2024-03-31 0001828161 us-gaap:PreferredStockMember 2023-06-30 0001828161 ftci:TamaraMullingsMember 2024-04-01 2024-06-30 0001828161 us-gaap:LeaseholdImprovementsMember 2024-06-30 0001828161 us-gaap:RestrictedStockMember 2023-01-01 2023-06-30 0001828161 us-gaap:AdditionalPaidInCapitalMember 2023-12-31 0001828161 us-gaap:AdditionalPaidInCapitalMember 2024-04-01 2024-06-30 0001828161 us-gaap:CommonStockMember 2024-06-30 0001828161 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-04-01 2024-06-30 0001828161 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-03-31 0001828161 us-gaap:ToolsDiesAndMoldsMember 2024-06-30 0001828161 us-gaap:RetainedEarningsMember 2023-06-30 0001828161 us-gaap:CostOfSalesMember 2023-04-01 2023-06-30 0001828161 us-gaap:DevelopedTechnologyRightsMember 2023-12-31 0001828161 us-gaap:ServiceMember 2024-01-01 2024-06-30 0001828161 us-gaap:AdditionalPaidInCapitalMember 2023-01-01 2023-03-31 0001828161 us-gaap:SellingAndMarketingExpenseMember 2023-04-01 2023-06-30 0001828161 2023-12-22 2023-12-22 0001828161 us-gaap:PreferredStockMember 2024-06-30 0001828161 ftci:AtmProgramMember 2023-01-01 2023-06-30 0001828161 ftci:TreasuryStock1Member 2022-12-31 0001828161 srt:MaximumMember 2024-06-30 0001828161 us-gaap:SellingAndMarketingExpenseMember 2024-04-01 2024-06-30 0001828161 ftci:MajorCustomersMember 2024-04-03 0001828161 us-gaap:CommonStockMember 2022-12-31 0001828161 ftci:TreasuryStock1Member 2023-03-31 0001828161 us-gaap:ResearchAndDevelopmentExpenseMember 2023-04-01 2023-06-30 0001828161 srt:MaximumMember us-gaap:DevelopedTechnologyRightsMember 2024-06-30 0001828161 ftci:AtmProgramMember 2022-09-14 0001828161 us-gaap:ServiceMember 2023-04-01 2023-06-30 0001828161 2023-01-01 2023-06-30 0001828161 2023-06-30 0001828161 us-gaap:SellingAndMarketingExpenseMember 2023-01-01 2023-06-30 0001828161 2023-12-31 0001828161 ftci:AssessmentMember 2024-01-01 2024-06-30 0001828161 ftci:AlphaSteelMember 2023-04-01 2023-06-30 0001828161 us-gaap:CommonStockMember 2023-04-01 2023-06-30 0001828161 srt:MinimumMember us-gaap:DevelopedTechnologyRightsMember 2024-06-30 0001828161 us-gaap:ServiceMember 2024-04-01 2024-06-30 0001828161 us-gaap:ProductMember 2023-04-01 2023-06-30 0001828161 us-gaap:AdditionalPaidInCapitalMember 2023-06-30 0001828161 us-gaap:RetainedEarningsMember 2023-01-01 2023-03-31 0001828161 us-gaap:EquipmentMember 2024-06-30 0001828161 us-gaap:EmployeeStockOptionMember 2024-01-01 2024-06-30 0001828161 srt:MinimumMember 2024-01-01 2024-06-30 0001828161 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-04-01 2023-06-30 0001828161 ftci:AlphaSteelMember 2023-12-31 0001828161 us-gaap:RetainedEarningsMember 2023-04-01 2023-06-30 0001828161 ftci:AlphaSteelMember 2023-02-09 0001828161 ftci:FernwehEngagedOperatorCompanyLlcMember us-gaap:RelatedPartyMember 2023-04-01 2023-06-30 0001828161 us-gaap:AdditionalPaidInCapitalMember 2024-03-31 0001828161 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-03-31 0001828161 us-gaap:AdditionalPaidInCapitalMember 2023-03-31 0001828161 2022-12-31 0001828161 us-gaap:ServiceMember 2023-01-01 2023-06-30 0001828161 2023-03-31 0001828161 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-01-01 2024-03-31 0001828161 us-gaap:GeneralAndAdministrativeExpenseMember 2023-04-01 2023-06-30 0001828161 ftci:AtmProgramMember 2023-04-01 2023-06-30 0001828161 ftci:AtmProgramMember 2024-06-30 0001828161 us-gaap:GeneralAndAdministrativeExpenseMember 2024-04-01 2024-06-30 0001828161 us-gaap:RetainedEarningsMember 2024-01-01 2024-03-31 0001828161 us-gaap:RetainedEarningsMember 2023-03-31 0001828161 us-gaap:RetainedEarningsMember 2022-12-31 0001828161 us-gaap:CommonStockMember 2024-03-31 0001828161 2024-04-01 2024-06-30 0001828161 us-gaap:EmployeeStockOptionMember 2023-01-01 2023-06-30 0001828161 us-gaap:RetainedEarningsMember 2024-03-31 0001828161 srt:MaximumMember 2022-08-16 2022-08-16 0001828161 us-gaap:AdditionalPaidInCapitalMember 2024-06-30 0001828161 2024-07-31 0001828161 us-gaap:SoftwareDevelopmentMember 2024-06-30 0001828161 ftci:AlphaSteelMember 2024-04-01 2024-06-30 0001828161 2024-01-01 2024-03-31 0001828161 us-gaap:CommonStockMember 2024-04-01 2024-06-30 0001828161 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-12-31 0001828161 us-gaap:SoftwareDevelopmentMember 2023-12-31 0001828161 us-gaap:CommonStockMember 2023-01-01 2023-03-31 0001828161 srt:MinimumMember 2023-12-22 0001828161 ftci:TreasuryStock1Member 2023-12-31 0001828161 us-gaap:LeaseholdImprovementsMember 2023-12-31 0001828161 ftci:AlphaSteelMember 2024-01-01 2024-06-30 0001828161 us-gaap:ProductMember 2024-01-01 2024-06-30 0001828161 us-gaap:RestrictedStockMember 2024-01-01 2024-06-30 0001828161 us-gaap:CostOfSalesMember 2024-04-01 2024-06-30 0001828161 us-gaap:ResearchAndDevelopmentExpenseMember 2024-01-01 2024-06-30 0001828161 us-gaap:TechnologyEquipmentMember 2024-06-30 0001828161 ftci:SouthLakeOneLlcMember 2022-02-01 2022-02-28 0001828161 us-gaap:PreferredStockMember 2023-03-31 0001828161 us-gaap:AdditionalPaidInCapitalMember 2023-04-01 2023-06-30 0001828161 srt:MaximumMember ftci:AlphaSteelMember 2024-01-01 2024-06-30 0001828161 ftci:TaihuaNewEnergyMember 2023-02-09 0001828161 us-gaap:RetainedEarningsMember 2024-06-30 0001828161 ftci:TreasuryStock1Member 2024-03-31 0001828161 us-gaap:CostOfSalesMember 2023-01-01 2023-06-30 0001828161 us-gaap:CommonStockMember 2023-06-30 0001828161 us-gaap:CommonStockMember 2023-12-31 0001828161 us-gaap:PreferredStockMember 2024-03-31 0001828161 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-06-30 0001828161 us-gaap:DevelopedTechnologyRightsMember 2024-06-30 0001828161 srt:MaximumMember 2024-01-01 2024-06-30 0001828161 us-gaap:CommonStockMember 2024-01-01 2024-03-31 0001828161 us-gaap:ResearchAndDevelopmentExpenseMember 2023-01-01 2023-06-30 0001828161 us-gaap:ProductMember 2024-04-01 2024-06-30 0001828161 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-06-30 0001828161 ftci:TreasuryStock1Member 2023-06-30 ftci:Days pure shares iso4217:USD iso4217:USD shares false 0001828161 P301D Q2 --12-31 P5Y P1Y http://fasb.org/us-gaap/2024#OtherLiabilitiesCurrent -122000 9000.000 10-Q true 2024-06-30 2024 false 001-40350 FTC SOLAR, INC. DE 81-4816270 9020 N Capital of Texas Hwy Suite I-260 Austin TX 78759 737 787-7906 Common Stock, $0.0001 par value FTCI NASDAQ Yes Yes Accelerated Filer false true false false 127366590 10779000 25235000 41511000 65279000 17061000 3905000 14969000 14089000 84320000 108508000 1926000 1819000 2446000 1823000 264000 542000 7169000 7353000 1529000 240000 2696000 2785000 100350000 123070000 17580000 7979000 22835000 34848000 106000 88000 2595000 3612000 8202000 8138000 51318000 54665000 1107000 1124000 3684000 4810000 56109000 60599000 0.0001 0.0001 10000000 10000000 0 0 0 0 0.0001 0.0001 850000000 850000000 127002580 127002580 125445325 125445325 13000 13000 0 0 364813000 361886000 -438000 -293000 -320147000 -299135000 44241000 62471000 100350000 123070000 8776000 21074000 19681000 53653000 2654000 11285000 4336000 19600000 11430000 32359000 24017000 73253000 10467000 19152000 22834000 50919000 3306000 11006000 5634000 18098000 13773000 30158000 28468000 69017000 -2343000 2201000 -4451000 4236000 1535000 1873000 2974000 3795000 2036000 1852000 4424000 3563000 6010000 8843000 12577000 19642000 9581000 12568000 19975000 27000000 -11924000 -10367000 -24426000 -22764000 1000 -28000 -135000 -86000 4085000 898000 -7000 -141000 29000 -215000 -246000 0 -511000 0 -12176000 -10536000 -20958000 -22167000 65000 -122000 54000 9000 -12241000 -10414000 -21012000 -22176000 36000 -408000 -145000 -413000 -12205000 -10822000 -21157000 -22589000 -0.1 -0.1 -0.09 -0.09 -0.17 -0.17 -0.2 -0.2 126171278 126171278 112669296 112669296 125816080 125816080 109632336 109632336 0 0 125445325 13000 10762566 0 361886000 -293000 -299135000 62471000 506928 1639000 1639000 -8771000 -8771000 -181000 -181000 0 0 125952253 13000 10762566 0 363525000 -474000 -307906000 55158000 1009094 41233 3000 3000 1285000 1285000 -12241000 -12241000 36000 36000 0 0 127002580 13000 10762566 0 364813000 -438000 -320147000 44241000 0 0 105032588 11000 10762566 0 315345000 -61000 -248845000 66450000 1498987 2775000 2775000 265125 51000 51000 797396 2000000 2000000 2683000 6292000 6292000 32000 32000 2472000 2472000 -11762000 -11762000 -5000 -5000 0 0 110277096 11000 10762566 0 328903000 -66000 -260607000 68241000 1213037 2085000 2085000 39087 6589000 1000 17347000 17348000 127000 127000 2669000 2669000 -10414000 -10414000 -408000 -408000 0 0 118118220 12000 10762566 0 350877000 -474000 -271021000 79394000 -21012000 -22176000 2924000 7852000 812000 666000 236000 355000 177000 1261000 -511000 0 4085000 898000 1639000 2852000 -238000 -30000 587000 203000 223000 184000 -609000 -497000 -23181000 17879000 13333000 -7643000 864000 -70000 562000 1422000 9483000 11247000 -13463000 -7895000 -1017000 -8804000 -1331000 -4264000 588000 331000 -15635000 -30809000 1131000 195000 1800000 900000 4085000 898000 1154000 -197000 0 20640000 0 114000 3000 51000 3000 20577000 22000 -139000 -14456000 -10568000 25235000 44385000 10779000 33817000 202000 12000 0 2000000 500000 1417000 189000 255000 78000 126000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">1. Description of business</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">FTC Solar, Inc. (the “Company”, “we”, “our”, or “us”) was founded in 2017 and is incorporated in the state of Delaware. In April 2021, we completed an initial public offering ("IPO"), and our common stock currently trades on the Nasdaq Capital Market under the symbol “FTCI”.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We are a global provider of solar tracker systems, supported by proprietary software and value-added engineering services. Solar tracker systems move solar panels throughout the day to maintain an optimal orientation relative to the sun, thereby increasing the amount of solar energy produced at a solar installation. Our original two-panel in-portrait solar tracker system is currently marketed under the Voyager brand name (“Voyager”) and our one module-in-portrait ("1P") solar tracker system, which became certified in 2023, is marketed under the Pioneer brand name ("Pioneer"). We also have a mounting solution to support the installation and use of U.S.-manufactured thin-film modules by project owners. Our primary software offerings include SUNPATH which is intended to help customers optimize solar tracking for increased energy production, our SUNOPS real-time operations management platform and our web-based ATLAS portfolio management software. In addition, we have a team of renewable energy professionals available to assist our U.S. and worldwide clients in site layout, structural design, pile testing and other needs across the solar project development and construction cycle. The Company is headquartered in Austin, Texas, and has international subsidiaries in Australia, China, India, South Africa and Spain.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We are an emerging growth company, as defined in the Jumpstart Our Business Startups (JOBS) Act. Under the JOBS Act, we elected to use the allowed extended transition period to delay adopting new or revised accounting standards until such time as those standards apply to private companies.</span></p> <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">2. Summary of significant accounting policies</span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Basis of presentation and principles of consolidation</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The accompanying unaudited condensed consolidated financial statements include the results of the Company and its wholly owned subsidiaries and have been prepared in accordance with accounting principles generally accepted in the United States of America (“U.S. GAAP”) for interim financial statements and pursuant to Form 10-Q and Article 10 of Regulation S-X. In the opinion of management, all adjustments of a normal recurring nature have been made that are considered necessary for a fair statement of our financial position as of June 30, 2024, and December 31, 2023, our results of operations for the three and six months ended June 30, 2024 and 2023, and our cash flows for the six months ended June 30, 2024 and 2023. The condensed consolidated balance sheet as of December 31, 2023 has been derived from the Company’s audited consolidated financial statements but does not include all disclosures required by accounting principles generally accepted in the United States of America. Operating results for the three and six months ended June 30, 2024 are not necessarily indicative of the results that may be expected for the year ending December 31, 2024. Intercompany balances and transactions have been eliminated in consolidation.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Certain information and disclosures normally included in the notes to annual financial statements prepared in accordance with U.S. GAAP have been omitted from these interim financial statements pursuant to the rules and regulations of the Securities and Exchange Commission (the “SEC”). Therefore, these unaudited condensed consolidated financial statements should be read in conjunction with the consolidated financial statements and related notes included in the Company’s Annual Report on Form 10-K for the year ended December 31, 2023 (our "2023 Annual Report").</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We currently operate in one business segment, the manufacturing and servicing of solar tracker systems.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Liquidity</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We have incurred cumulative losses since inception and have a history of cash outflows from operations. As of June 30, 2024, we had </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">10.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of cash on hand, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">33.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of working capital and approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">64.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of remaining capacity available for future sales of our common stock under our ATM program as defined and described further in Note 4, "ATM program" below. There can be no assurance that we will be able to sell any additional shares of our common stock under the ATM program and no assurance regarding</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">the price at which we will be able to sell such shares, and any sales of our common stock under the ATM program may be at prices that result in additional dilution to our existing stockholders.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On December 22, 2023, we received notification from The Nasdaq Stock Market LLC (“Nasdaq”) that we were not in compliance with the requirement to maintain a minimum closing bid price of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.00</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> per share, as set forth in Nasdaq Listing Rule 5450(a)(1), because the closing bid price of the Company’s common stock was below $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.00</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> per share for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">30</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> consecutive business days. In accordance with Nasdaq Listing Rule 5810(c)(3)(A), we were initially given a period of 180 calendar days from the date of notification, or until June 19, 2024, to regain compliance with the minimum bid price requirement, which was not achieved. Effective May 31, 2024, trading in our common stock transferred from the Nasdaq Global Market to the Nasdaq Capital Market. On June 21, 2024, we received notification from Nasdaq that we were approved for an additional 180-day period, or until December 17, 2024, to cure the bid price deficiency in accordance with Nasdaq Listing Rule 5810(c)(3)(A). We are currently evaluating all of our options to achieve compliance with Nasdaq requirements for continued listing, which may include effecting a reverse stock split, if necessary, at least 10 days prior to December 17, 2024. At this time, </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">our common stock continues to trade on the Nasdaq Capital Market under the symbol "FTCI". If at any time before December 17, 2024 the bid price of our common stock closes at or above $1.00 per share for a minimum of ten consecutive business days, Nasdaq</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> will provide written notification that we have achieved compliance with this minimum bid price requirement. If we fail to regain compliance with the minimum bid price requirement during this second 180-day period, then Nasdaq will notify us that our common stock is subject to delisting.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Effective April 30, 2024, our Senior Secured Revolving Credit Facility ("Credit Facility) expired unused and has not been replaced as of June 30, 2024. We continue to evaluate additional opportunities to obtain financing.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">At June 30, 2024, we had a contractual obligation that could require us to make additional capital contributions of up to </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> to Alpha Steel, as well as make a minimum level of purchases from Alpha Steel, as described further in Note 3, "Equity method investment" below. In the event we were to fail to meet our minimum required purchase commitments during a specified period, including the current period from January 1, 2024 to June 30, 2025, we may be required to make a cash payment for the net profit attributable to any unfilled requirements, calculated as specified in the agreement, in an amount not to exceed $4.0 million in the aggregate.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The most notable incentive program impacting our U.S. business has historically been the investment tax credit ("ITC") </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">for solar energy projects, which allows taxpayers to offset their U.S. federal income tax liability by a certain percentage of their cost basis in solar energy systems placed in service for commercial use. The Inflation Reduction Act of 2022, passed by the U.S. Congress and signed into law by President Biden on August 16, 2022, expanded and extended the tax credits and other tax benefits available to solar energy projects and the solar energy supply chain. ITCs have been extended for such projects through at least 2032 and, depending on the location of a particular project and its ability to satisfy certain labor and domestic content requirements, the ITC percentage can range between </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">30</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">50</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%. U.S. manufacturers of specific solar components are now eligible to claim production tax credits as an alternative to the ITC. Implementing regulations for this law are, in certain cases, still being finalized and the impact of these regulations continue to be evaluated by developers of new solar projects and manufacturers of solar components. Our investment in and commitments made to Alpha Steel will allow us to obtain certain benefits as a result of this new production tax credit program.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We have taken steps to expand and diversify our manufacturing partnerships and have adjusted our modes of transportation to mitigate the impact of headwinds that might arise in the global supply chain and logistics markets. As an example, we modified our ocean freight from previously using charter shipments to now using containerized shipments as costs in the container market began to decrease starting in 2022, but more recently have begun to increase. However, we have been able to mitigate some of this increase as a result of increasing our domestic production capabilities. We continue to monitor the logistics markets and will continue to evaluate our use of various modes of transportation when warranted to optimize our transportation costs. Additionally, from February 2022 to September 2023, we utilized a related-party consulting firm to support us in making improvements to our processes and performance in various areas, including design, sourcing, logistics, pricing, software and our distributed generation business. For further information regarding this consulting firm, see Note 16, "Related party transactions" below. These steps, and others, have allowed us to improve our business processes and lower our product cost structure, thus improving our direct product margins in recent periods. As an example, we generated positive gross profit during each quarter in 2023. Additionally, we have made substantial progress in lowering our operating costs, showing significant improvement since becoming a public company, as well as in comparison to the prior year periods included in this Quarterly Report. These combined factors have allowed us to significantly lower the estimated quarterly revenue level that we believe is required to break even. However, our low revenue levels for the three and six months ended June 30, 2024, have prevented us from continuing to show positive quarterly gross profit in 2024, similar to 2023, as revenues have not been sufficient to fully cover our indirect costs.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Similar to previous periods, we continue to evaluate additional opportunities in 2024 to address existing market challenges, our cost structure and our historical use of cash. In 2023, (i) we introduced a new mounting solution to support the installation and use of</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">U.S.-manufactured thin-film modules, (ii) Pioneer, our 1P solar tracker solution, became certified, and (iii) we introduced SUNOPS, a cloud-based, tracker agnostic solar asset monitoring solution allowing asset owners and managers to evaluate the operation and performance of their solar deployments. We have continued to enhance our customer offerings in 2024, including the launch of our Automated Hail Stow Solution which is aimed at minimizing solar panel damage caused by hail storms. As described elsewhere in this Quarterly Report, we also have recently added experienced and accomplished leadership talent to head our North America and International sales organizations and have named a new President and Chief Executive Officer with significant experience in the solar industry who will join us on August 19, 2024.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In accordance with Accounting Standards Codification ("ASC") 205-40, Going Concern, we have evaluated whether there are conditions and events, considered in the aggregate, which raise substantial doubt about our ability to continue as a going concern within one year after the date our condensed consolidated financial statements are issued.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Management believes that our existing cash on hand, as well as the continuing impact of certain of the actions described within this memo and our expectations of (i) the expected timing of future customer project activity, including activity related to certain large project awards previously received, and (ii) the positive results in recent periods from our efforts to increase our direct product margins and lower our cost structure, will allow us to grow profitably and generate positive cash flow from operations during the next twelve months in amounts that will be sufficient, along with our other available resources such as our existing working capital and, the remaining capacity available for future sales of our common stock under our ATM program, to fund our operations for at least one year from the date of issuance of our condensed consolidated financial statements.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">While there are already many underlying drivers of growth in the solar industry, the expected positive impact on demand for our products from these drivers of growth could take longer than expected to occur because the timing of construction activity by existing customers and solar project developers can be uncertain. As an example, we have experienced in recent periods customer delays caused by interconnection issues, equipment shortages and the timing and ability of obtaining financing at acceptable levels. In addition, domestic and international market conditions, including differences between margins on international and U.S. projects, could deteriorate significantly from what we currently expect, and regulatory and international trade policies could become more stringent as a result of (i) findings from an ongoing investigation by the U.S. Department of Commerce (the Solar Circumvention Investigation") in response to a petition by Auxin Solar, Inc. of claims related to alleged circumvention of U.S. antidumping and countervailing duties ("AD/CVD") by solar manufacturers in certain Southeast Asian countries, (ii) enforcement of the Uyghur Forced Labor Prevention Act ("UFLPA") passed by the U.S. Congress and signed into law by President Biden on December 23, 2021, by U.S. Customs and Border Protection ("CBP"), and (iii) other factors, which may result in a need for us to issue additional debt or obtain new equity financing to adequately fund our existing operations beyond the next twelve months. We continue to actively explore options to obtain additional sources of capital through the issuance of new debt, asset financing or other potential measures for our longer-term needs. However, we may be unable to obtain any desired additional financing on terms favorable to us, or at all, depending on market and other conditions, which could result in curtailment of our current operations and our ability to further invest in our products and new technology. The ability to raise additional financing depends on numerous factors, some of which are outside of our control, including macroeconomic factors such as the impact of inflation, the level of interest rates, supply chain or other effects from the ongoing conflicts in the Ukraine and the Middle East, general market conditions, the health of financial institutions (including recent bankruptcies and financial difficulties involving certain regional banks and related impacts that have occurred and continue to occur in the banking industry), investors' and lenders' assessments of our prospects and the prospects of the solar industry in general and the ability of our common stock to continue to trade in active markets.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Use of estimates</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Preparation of condensed consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements, and the reported revenue and expenses during the period. Estimates are used for calculating the measure of progress of our solar tracker projects and deriving the standalone selling prices of the individual performance obligations when determining amounts to recognize for revenue, estimating allowances for credit losses and slow-moving and obsolete inventory, determining useful lives of long-lived assets and the estimated fair value of those assets for impairment assessments, and estimating the fair value of investments, stock compensation awards, warranty liabilities and federal and state taxes, including tax valuation allowances, as well as other contingencies. We base our estimates on historical experience and anticipated results, trends, and various other assumptions that we believe are reasonable under the circumstances, including assumptions as to future events. Actual results could differ from those estimates due to risks and uncertainties.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:1pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Concentration of credit risk</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Financial instruments that potentially subject the Company to concentrations of credit risk are primarily cash and accounts receivable.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We regularly maintain cash balances with various financial institutions that exceed federally insured amounts, but we have experienced no losses associated with these amounts to date. We also took action in early 2023 to reallocate cash balances between different financial institutions based on our assessment as to the financial health of certain institutions.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We extend credit to customers in the normal course of business, often without requiring collateral. We also perform credit analyses and monitor the financial health of our customers to reduce credit risk.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company’s accounts receivables are derived from revenue earned from customers primarily located in the U.S. and Australia. No countries other than the U.S. and Australia accou</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">nted for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">10</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">or more of our revenue. Most of our customers are project developers, solar asset owners and engineering, procurement and construction (“EPC”) contractors that design and build solar energy projects. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We typically rely on a small number of customers that account for a large portion of our revenue each period and our outstanding receivables at each period end.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Cash and cash equivalents</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We consider all highly liquid investments purchased with an original maturity of three months or less to be cash equivalents. Certain of our cash equivalents include deposits in money market funds that invest primarily in short-term securities issued or guaranteed by the U.S. government or its agencies or instrumentalities and contain no restrictions on immediate redemption. These deposits totaled </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">5.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> at June 30, 2024 and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">13.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> at December 31, 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. Interest earned on cash equivalents is included in interest income, which is reported net of interest expense in our condensed consolidated statements of comprehensive loss.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p id="accounts_receivable_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accounts receivable, net</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Trade receivables are recorded at invoiced amounts, net of allowances for credit losses, and do not bear interest. We generally do not require collateral from our customers; however, in certain circumstances, we may require letters of credit, other collateral, additional guarantees or advance payments.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The allowance for credit losses is based on the lifetime expected credit loss of our customer accounts. To assess the lifetime expected credit loss, we utilize a loss rate method that takes into consideration historical experience and certain other factors, as appropriate, such as credit quality and current economic or other conditions that may affect a customer's ability to pay. Provisions for credit losses are included as a component of our selling and marketing expenses.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Receivables arising from revenue recognized in excess of billings represents our unconditional right to consideration before customers are invoiced due to the level of progress obtained as of period end on our contracts to procure and deliver tracker systems and related equipment. Further information may be found below in our </span><a href="#revenue_policy"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">revenue recognition policy</span></a><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Inventories</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Inventories are stated at the lower of cost or net realizable value, with costs computed on a first-in, first-out basis. The Company periodically reviews its inventories for excess and obsolete items and adjusts carrying costs to estimated net realizable values when they are determined to be less than cost.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p id="impairment_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Impairment</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">review our long-lived assets that are held for use for impairment whenever events or changes in circumstances indicate that the carrying amount of the asset may not be recoverable or that its useful life may be shorter than previously expected. If such impairment indicators are present or other factors exist that indicate the carrying amount of the asset may not be recoverable, we determine whether an impairment has occurred through the use of an undiscounted cash flow analysis of the asset at the lowest level for which identifiable cash flows exist. If an impairment has occurred, we recognize a loss for the difference between the carrying amount and the fair value of the asset, which in most cases is estimated based upon Level 3 unobservable inputs. If the asset is determined to have a remaining useful life shorter than previously expected, an adjustment for the shorter remaining life will be made for purposes of recognizing future depreciation</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">expense. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Assets are classified as held for sale when we have a plan, approved by the appropriate levels of management, for disposal of such assets, as well as other considerations, and those assets are stated at the lower of carrying value or estimated fair value less estimated costs to sell.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Intangible assets, net</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Intangible assets are recorded at fair value when acquired in connection with a business combination and consist of developed technology in the form of software tools, licenses, and intellectual property, which are amortized over the period of their estimated useful lives, generally </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">2.5 </span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">- </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">3.0 </span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">years, using the straight-line method. Costs incurred to renew or extend the term of a recognized intangible asset, if any, are expensed as incurred. We evaluate intangible assets for impairment using the method described above under "Impairment".</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p id="goodwill_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Goodwill</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We recognize goodwill as the excess of the purchase price over the estimated fair value of the identified assets and liabilities acquired in a business combination accounted for using the acquisition method. Goodwill is not amortized but is subject to a periodic assessment for impairment at least annually, or whenever events and circumstances indicate an impairment may exist. Our assessments may include qualitative factors such as current or expected industry and market conditions, our overall financial performance, share price trends, market capitalization and other company-specific events.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We operate in one segment, being the consolidated entity, which we have also determined is the reporting unit for goodwill impairment.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">No</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> impairment</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of goodwill was recognized as of June 30, 2024 or 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Equity method investment</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We use the equity method of accounting for investments in which we have the ability to exercise significant influence, but not control, over operating and financial policies of the investee. Our proportionate share of the net income or loss of these investees is included in our condensed consolidated statements of comprehensive loss. Judgment regarding the level of influence over each equity method investment includes considering key factors such as our ownership interest, legal form of the investee, representation on the board of directors or managers, participation in policy-making decisions and material intra-entity transactions.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We account for distributions received from equity method investees under the “nature of the distribution” approach based on the nature of the activity or activities of the investee that generated the distribution as either a return on investment (classified as cash inflows from operating activities) or a return of investment (classified as cash inflows from investing activities).</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We evaluate equity method investments for impairment whenever events or changes in circumstances indicate that the carrying amount of the investment might not be recoverable. Factors considered by the Company when reviewing an equity method investment for impairment include the length of time and the extent to which the fair value of the equity method investment has been less than its cost, the investee’s financial condition and near-term prospects and the intent and ability to hold the investment for a period of time sufficient to allow for anticipated recovery. An impairment that is other-than temporary is recognized in the period identified.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We made an accounting policy election that, upon the sale of our equity method investments, we will recognize contractual contingent gains arising from earnout provisions and project escrow releases when such amounts are realizable in periods subsequent to the disposal date.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p id="warranty_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Warranty</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Typically, the sale of solar tracker projects includes parts warranties to customers as part of the overall price of the product. </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We provide standard assurance type warranties for our products for periods generally ranging from </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="-sec-ix-hidden:F_7b4e3ec1-a580-424f-b498-8af4ac4377fd;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">five</span></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> to </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ten years</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. </span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">also accrue for costs relating to remediation efforts involving product issues we believe require correction. We record a provision for estimated warranty and remediation expenses in cost of sales, net of amounts recoverable from manufacturers under their warranty obligations to us. When historical claims information relating to our equipment is not sufficient, we will base our estimates on industry studies involving the nature and frequency of product failure rates for similar parts used by our competitors, as well as other related businesses. We do not maintain general</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">or </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">unspecified reserves; all warranty reserves are related to specific projects. All actual or estimated material costs incurred for warranty or remediation services in subsequent periods are charged to those established reserves.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">While we periodically monitor our warranty activities and claims, if actual costs incurred were to be different from our estimates, we would recognize adjustments to our warranty reserves in the period in which those differences arise or are identified.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p id="stock_based_compensation_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Stock-based compensation</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We recognize compensation expense for all share-based payment awards made, including stock options and restricted stock units ("RSUs"), based on the estimated fair value of the award on the grant date. We calculate the fair value of stock options using the Black-Scholes option pricing model for awards with service-based vesting or through use of a lattice model or a Monte Carlo simulation for stock option and RSU awards with market conditions. The fair value of RSUs with service or performance-based vesting is based on the estimated fair value of the Company's common stock on the date of grant. We consider the closing price of our stock, as reported on the Nasdaq Capital Market, to be the fair value of our stock on the grant date.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Forfeitures are accounted for as they occur. For service-based awards, stock-based compensation is recognized using the straight-line attribution approach over the requisite service period. For performance-based awards, stock-based compensation is recognized based on graded vesting over the requisite service period when the performance condition is probable of being achieved. Stock compensation expense for market-based awards is recognized over the derived service period determined in the valuation model, inclusive of any vesting conditions.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p id="revenue_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Revenue recognition</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Product revenue is derived from the sale of solar tracker systems and customized components for those systems, individual part sales for certain specific transactions and the sale of term-based software licenses. Term-based licensed software is deployed on the customers’ own servers and has significant standalone functionality.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Service revenue includes revenue from shipping and handling services, engineering consulting and pile testing services, our subscription-based enterprise licensing model and maintenance and support services in connection with the term-based software licenses.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> Our subscription-based enterprise licensing model typically has contract terms ranging from </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="-sec-ix-hidden:F_1464fdb3-a496-4ebd-a570-8aa94f32acfc;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">one </span></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">to </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">two years</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and consists of subscription fees from the licensing of subscription services. Our hosted on-demand service arrangements do not provide customers with the right to take possession of the software supporting the hosted services. Support services include ongoing security updates, upgrades, bug fixes, and maintenance.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We recognize revenue when promised goods or services are transferred to customers in an amount that reflects the consideration to which we expect to be entitled to in exchange for those goods or services by following a five-step process: (1) identify the contract with a customer, (2) identify the performance obligations in the contract, (3) determine the transaction price, (4) allocate the transaction price to the performance obligations in the contract, and (5) recognize revenue when or as the Company satisfies a performance obligation, as further described below.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Identify the contract with a customer:</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> A contract with a customer exists when (i) the Company enters into an enforceable contract with a customer that defines each party’s rights regarding the products and services to be transferred and identifies the payment terms related to these products and services, (ii) the contract has commercial substance, and (iii) the Company determines that collection of substantially all consideration for products and services that are transferred is probable based on the customer’s intent and ability to pay the promised consideration. In assessing the recognition of revenue, we also evaluate whether two or more contracts should be combined and accounted for as one contract and if the combined or single contract should be accounted for as multiple performance obligations which could change the amount of revenue and profit (loss) recorded in a period. Change orders may include changes in specifications or design, manner of performance, equipment, materials, scope of work, and/or the period of completion of the project. We analyze change orders to determine if they should be accounted for as a modification to an existing contract or a new stand-alone contract.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Contracts we enter into with our customers for sale of solar tracker systems are generally under two different types of arrangements: (1) purchase agreements and equipment supply contracts (“Purchase Agreements”), and (2) sale of individual parts for those systems.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Change orders from our customers are generally modifications to existing contracts and are included in the total estimated contract revenue when it is probable that the change order will result in additional value that can be reliably estimated and realized.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Identify the performance obligations in the contract: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We enter into contracts that can include various combinations of products and services, which are either capable of being distinct and accounted for as separate performance obligations or as one performance obligation since the majority of tasks and services are part of a single project or capability. However, determining whether products or services are considered distinct performance obligations that should be accounted for separately versus together may sometimes require significant judgment.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Our Purchase Agreements typically include two performance obligations: 1) our solar tracker systems or customized components of those systems, and 2) shipping and handling services. The deliverables included as part of our solar tracker systems are predominantly accounted for as one performance obligation, as these deliverables are part of a combined promise to deliver a project.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The revenue for shipping and handling services will be recognized over time based on progress in meeting shipping terms of the arrangements, as this faithfully depicts the Company’s performance in transferring control. Revenue for stand-alone engineering consulting and pile testing services is recognized at a point in time upon completion of the services performed.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Sales of individual parts of our solar tracker systems for certain specific transactions include multiple performance obligations consisting of individual parts of those systems. Revenue is recognized for parts sales at a point in time when the obligations under the terms of the contract with our customer are satisfied. Generally, this occurs with the transfer of control of the asset, which is in line with shipping terms.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Determine the transaction price: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The transaction price is determined based on the consideration to which we will be entitled in exchange for transferring services to the customer. Such amounts are typically stated in the customer contract, and to the extent that we identify variable consideration, we will estimate the variable consideration at the onset of the arrangement as long as it is probable that a significant reversal in the amount of cumulative revenue recognized will not occur when the uncertainty associated with the variable consideration is subsequently resolved. The majority of our contracts do not contain variable consideration provisions as a continuation of the original contract. None of our contracts contain a significant financing component. Taxes collected from customers and remitted to governmental authorities are not included in revenue</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Allocate the transaction price to performance obligations in the contract: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Once we have determined the transaction price, we allocate the total transaction price to each performance obligation in a manner depicting the amount of consideration to which we expect to be entitled in exchange for transferring the good(s) or service(s) to the customer. We allocate the transaction price to each performance obligation identified in the contract on a relative standalone selling price basis.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We use the expected cost-plus margin approach based on hardware, labor, and related overhead cost to estimate the standalone selling price of our solar tracker systems, customized components of those systems, and individual parts for certain specific transactions. We also use the expected cost-plus margin approach based on expected third-party shipping and transportation costs to estimate the standalone selling price of our shipping, handling and logistics performance obligations. We use the adjusted market assessment approach for all other performance obligations.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Recognize revenue when or as the Company satisfies a performance obligation: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">For each performance obligation identified, we determine at contract inception whether we satisfy the performance obligation over time or at a point in time. The performance obligations in the contracts for our solar tracker systems and customized components of those systems are satisfied over time as work progresses, utilizing an input measure of progress determined by cost-to-cost measures on these projects as this faithfully depicts our performance in transferring control. Additionally, our performance does not create an asset with an alternative use, due to the highly customized nature of the product, and we have an enforceable right to payment for performance completed to date. Our performance obligations for individual part sales for certain specific transactions are recognized at a point in time as and when control transfers based on the terms for the contract. Our performance obligations for engineering consulting and pile testing services are recognized at a point in time upon completion of the services. Our performance obligations for term-based software licenses are recognized at a point in time as and when control transfers, either upon delivery to the customer or the software license start date, whichever is later. Our performance obligations for shipping and handling services are satisfied over time as the services are delivered over the term of the contract. We recognize revenue for subscription and other services on a straight-line basis over the contract period. With regard to support revenue, a time-elapsed method is used to measure progress because we transfer control evenly over the contractual period. Accordingly, the fixed consideration related to support revenue is generally recognized on a straight-line basis over the contract term.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Contract assets and liabilities: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The timing of revenue recognition, billing, and cash collection results in the recognition of accounts receivable, unbilled receivables for revenue recognized in excess of billings, and deferred revenue in the condensed consolidated balance sheets. We have elected to use the practical expedient of expensing incremental costs of obtaining a contract as incurred since the majority</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">of the performance obligations in our contracts are satisfied in less than one year. We may receive advances or deposits from our customers before revenue is recognized, resulting in contract liabilities, which are reflected as “deferred revenue” in our condensed consolidated balance sheets. Customer deposits are short term as the related performance obligations are typically fulfilled within 12 months. Changes in deferred revenue relate to fluctuations in the timing of customer deposits and completion of performance obligations. Revenue recognized during the three and six months ended June 30, 2024, from amounts included in deferred revenue at December 31, 2023, totaled </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively. Revenue recognized during the three and six months ended June 30, 2023, from amounts included in deferred revenue at December 31, 2022, totaled </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">9.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Cost of revenue consists primarily of costs related to raw materials, equipment manufacturing activities, freight and delivery, product warranty, remediation and personnel costs (salaries, bonuses, benefits, and stock-based compensation). Personnel costs in cost of revenue include both direct labor costs, as well as costs attributable to any individuals whose activities relate to the procurement, installment and delivery of the finished product and services.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> Cost of revenue owed but not yet paid is recorded as accrued cost of revenue in the accompanying condensed consolidated balance sheets. Deferred cost of revenue, a component of our prepaid and other current assets, results from the timing differences between the costs incurred in advance of the satisfaction of all revenue recognition criteria consistent with our revenue recognition policy.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Recent accounting and regulatory pronouncements not yet adopted</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In November 2023, the Financial Accounting Standards Board ("FASB") issued ASU No. 2023-07 - Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures ("ASU 2023-07"), which will become effective for us for our year end 2024 financial reporting and our interim reporting beginning January 1, 2025. ASU 2023-07 requires public companies to disclose significant segment expenses and other segment items on an annual and interim basis and will require interim disclosures about a reportable segment's profit or loss and assets that are currently required annually. As noted above, we operate in one segment. We are currently evaluating the impact of ASU 2023-07 on our existing disclosures. ASU 2023-07 will be applied retrospectively to all periods when presented in our consolidated financial statements for the year ending December 31, 2024.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In December 2023, the FASB issued ASU No. 2023-09 - Income Taxes (Topic 740): Improvements to Income Tax Disclosures ("ASU 2023-09"). ASU 2023-09 requires companies to disclose (i) additional categories of information about federal, state and foreign income taxes above a quantitative threshold in their rate reconciliation table and (ii) income taxes paid, net of refunds, disaggregated by federal, state and foreign taxes for annual periods, as well as other disclosure changes. As an emerging growth company, we are not required to adopt ASU 2023-09 prior to 2026, although earlier adoption is permitted. We are currently evaluating the impact of ASU 2023-09 on our existing income tax disclosures.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In March 2024, the U.S. Securities and Exchange Commission ("SEC") adopted the final rule under SEC Release No. 33-11275, The Enhancement and Standardization of Climate-Related Disclosures for Investors. This rule would require registrants to disclose certain climate-related information in registration statements and annual reports. In April 2024, the SEC issued a stay of the final rules pending a judicial review of the validity of the rules by the Eighth Circuit Court of Appeals. We are currently evaluating the final rule to determine its impact on our disclosures.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Other standards or regulatory requirements that have been issued but not yet adopted as of June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, are either not applicable to us or are not expected to have any material impact upon adoption.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Reclassifications</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Certain prior year amounts have been reclassified to conform to the current year presentation. There was no impact on our financial condition or results of operations as a result of the reclassification.</span></p></div> <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Basis of presentation and principles of consolidation</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The accompanying unaudited condensed consolidated financial statements include the results of the Company and its wholly owned subsidiaries and have been prepared in accordance with accounting principles generally accepted in the United States of America (“U.S. GAAP”) for interim financial statements and pursuant to Form 10-Q and Article 10 of Regulation S-X. In the opinion of management, all adjustments of a normal recurring nature have been made that are considered necessary for a fair statement of our financial position as of June 30, 2024, and December 31, 2023, our results of operations for the three and six months ended June 30, 2024 and 2023, and our cash flows for the six months ended June 30, 2024 and 2023. The condensed consolidated balance sheet as of December 31, 2023 has been derived from the Company’s audited consolidated financial statements but does not include all disclosures required by accounting principles generally accepted in the United States of America. Operating results for the three and six months ended June 30, 2024 are not necessarily indicative of the results that may be expected for the year ending December 31, 2024. Intercompany balances and transactions have been eliminated in consolidation.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Certain information and disclosures normally included in the notes to annual financial statements prepared in accordance with U.S. GAAP have been omitted from these interim financial statements pursuant to the rules and regulations of the Securities and Exchange Commission (the “SEC”). Therefore, these unaudited condensed consolidated financial statements should be read in conjunction with the consolidated financial statements and related notes included in the Company’s Annual Report on Form 10-K for the year ended December 31, 2023 (our "2023 Annual Report").</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We currently operate in one business segment, the manufacturing and servicing of solar tracker systems.</span></p> <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Liquidity</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We have incurred cumulative losses since inception and have a history of cash outflows from operations. As of June 30, 2024, we had </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">10.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of cash on hand, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">33.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of working capital and approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">64.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of remaining capacity available for future sales of our common stock under our ATM program as defined and described further in Note 4, "ATM program" below. There can be no assurance that we will be able to sell any additional shares of our common stock under the ATM program and no assurance regarding</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">the price at which we will be able to sell such shares, and any sales of our common stock under the ATM program may be at prices that result in additional dilution to our existing stockholders.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On December 22, 2023, we received notification from The Nasdaq Stock Market LLC (“Nasdaq”) that we were not in compliance with the requirement to maintain a minimum closing bid price of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.00</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> per share, as set forth in Nasdaq Listing Rule 5450(a)(1), because the closing bid price of the Company’s common stock was below $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.00</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> per share for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">30</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> consecutive business days. In accordance with Nasdaq Listing Rule 5810(c)(3)(A), we were initially given a period of 180 calendar days from the date of notification, or until June 19, 2024, to regain compliance with the minimum bid price requirement, which was not achieved. Effective May 31, 2024, trading in our common stock transferred from the Nasdaq Global Market to the Nasdaq Capital Market. On June 21, 2024, we received notification from Nasdaq that we were approved for an additional 180-day period, or until December 17, 2024, to cure the bid price deficiency in accordance with Nasdaq Listing Rule 5810(c)(3)(A). We are currently evaluating all of our options to achieve compliance with Nasdaq requirements for continued listing, which may include effecting a reverse stock split, if necessary, at least 10 days prior to December 17, 2024. At this time, </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">our common stock continues to trade on the Nasdaq Capital Market under the symbol "FTCI". If at any time before December 17, 2024 the bid price of our common stock closes at or above $1.00 per share for a minimum of ten consecutive business days, Nasdaq</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> will provide written notification that we have achieved compliance with this minimum bid price requirement. If we fail to regain compliance with the minimum bid price requirement during this second 180-day period, then Nasdaq will notify us that our common stock is subject to delisting.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Effective April 30, 2024, our Senior Secured Revolving Credit Facility ("Credit Facility) expired unused and has not been replaced as of June 30, 2024. We continue to evaluate additional opportunities to obtain financing.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">At June 30, 2024, we had a contractual obligation that could require us to make additional capital contributions of up to </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> to Alpha Steel, as well as make a minimum level of purchases from Alpha Steel, as described further in Note 3, "Equity method investment" below. In the event we were to fail to meet our minimum required purchase commitments during a specified period, including the current period from January 1, 2024 to June 30, 2025, we may be required to make a cash payment for the net profit attributable to any unfilled requirements, calculated as specified in the agreement, in an amount not to exceed $4.0 million in the aggregate.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The most notable incentive program impacting our U.S. business has historically been the investment tax credit ("ITC") </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">for solar energy projects, which allows taxpayers to offset their U.S. federal income tax liability by a certain percentage of their cost basis in solar energy systems placed in service for commercial use. The Inflation Reduction Act of 2022, passed by the U.S. Congress and signed into law by President Biden on August 16, 2022, expanded and extended the tax credits and other tax benefits available to solar energy projects and the solar energy supply chain. ITCs have been extended for such projects through at least 2032 and, depending on the location of a particular project and its ability to satisfy certain labor and domestic content requirements, the ITC percentage can range between </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">30</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">50</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%. U.S. manufacturers of specific solar components are now eligible to claim production tax credits as an alternative to the ITC. Implementing regulations for this law are, in certain cases, still being finalized and the impact of these regulations continue to be evaluated by developers of new solar projects and manufacturers of solar components. Our investment in and commitments made to Alpha Steel will allow us to obtain certain benefits as a result of this new production tax credit program.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We have taken steps to expand and diversify our manufacturing partnerships and have adjusted our modes of transportation to mitigate the impact of headwinds that might arise in the global supply chain and logistics markets. As an example, we modified our ocean freight from previously using charter shipments to now using containerized shipments as costs in the container market began to decrease starting in 2022, but more recently have begun to increase. However, we have been able to mitigate some of this increase as a result of increasing our domestic production capabilities. We continue to monitor the logistics markets and will continue to evaluate our use of various modes of transportation when warranted to optimize our transportation costs. Additionally, from February 2022 to September 2023, we utilized a related-party consulting firm to support us in making improvements to our processes and performance in various areas, including design, sourcing, logistics, pricing, software and our distributed generation business. For further information regarding this consulting firm, see Note 16, "Related party transactions" below. These steps, and others, have allowed us to improve our business processes and lower our product cost structure, thus improving our direct product margins in recent periods. As an example, we generated positive gross profit during each quarter in 2023. Additionally, we have made substantial progress in lowering our operating costs, showing significant improvement since becoming a public company, as well as in comparison to the prior year periods included in this Quarterly Report. These combined factors have allowed us to significantly lower the estimated quarterly revenue level that we believe is required to break even. However, our low revenue levels for the three and six months ended June 30, 2024, have prevented us from continuing to show positive quarterly gross profit in 2024, similar to 2023, as revenues have not been sufficient to fully cover our indirect costs.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Similar to previous periods, we continue to evaluate additional opportunities in 2024 to address existing market challenges, our cost structure and our historical use of cash. In 2023, (i) we introduced a new mounting solution to support the installation and use of</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">U.S.-manufactured thin-film modules, (ii) Pioneer, our 1P solar tracker solution, became certified, and (iii) we introduced SUNOPS, a cloud-based, tracker agnostic solar asset monitoring solution allowing asset owners and managers to evaluate the operation and performance of their solar deployments. We have continued to enhance our customer offerings in 2024, including the launch of our Automated Hail Stow Solution which is aimed at minimizing solar panel damage caused by hail storms. As described elsewhere in this Quarterly Report, we also have recently added experienced and accomplished leadership talent to head our North America and International sales organizations and have named a new President and Chief Executive Officer with significant experience in the solar industry who will join us on August 19, 2024.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In accordance with Accounting Standards Codification ("ASC") 205-40, Going Concern, we have evaluated whether there are conditions and events, considered in the aggregate, which raise substantial doubt about our ability to continue as a going concern within one year after the date our condensed consolidated financial statements are issued.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Management believes that our existing cash on hand, as well as the continuing impact of certain of the actions described within this memo and our expectations of (i) the expected timing of future customer project activity, including activity related to certain large project awards previously received, and (ii) the positive results in recent periods from our efforts to increase our direct product margins and lower our cost structure, will allow us to grow profitably and generate positive cash flow from operations during the next twelve months in amounts that will be sufficient, along with our other available resources such as our existing working capital and, the remaining capacity available for future sales of our common stock under our ATM program, to fund our operations for at least one year from the date of issuance of our condensed consolidated financial statements.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">While there are already many underlying drivers of growth in the solar industry, the expected positive impact on demand for our products from these drivers of growth could take longer than expected to occur because the timing of construction activity by existing customers and solar project developers can be uncertain. As an example, we have experienced in recent periods customer delays caused by interconnection issues, equipment shortages and the timing and ability of obtaining financing at acceptable levels. In addition, domestic and international market conditions, including differences between margins on international and U.S. projects, could deteriorate significantly from what we currently expect, and regulatory and international trade policies could become more stringent as a result of (i) findings from an ongoing investigation by the U.S. Department of Commerce (the Solar Circumvention Investigation") in response to a petition by Auxin Solar, Inc. of claims related to alleged circumvention of U.S. antidumping and countervailing duties ("AD/CVD") by solar manufacturers in certain Southeast Asian countries, (ii) enforcement of the Uyghur Forced Labor Prevention Act ("UFLPA") passed by the U.S. Congress and signed into law by President Biden on December 23, 2021, by U.S. Customs and Border Protection ("CBP"), and (iii) other factors, which may result in a need for us to issue additional debt or obtain new equity financing to adequately fund our existing operations beyond the next twelve months. We continue to actively explore options to obtain additional sources of capital through the issuance of new debt, asset financing or other potential measures for our longer-term needs. However, we may be unable to obtain any desired additional financing on terms favorable to us, or at all, depending on market and other conditions, which could result in curtailment of our current operations and our ability to further invest in our products and new technology. The ability to raise additional financing depends on numerous factors, some of which are outside of our control, including macroeconomic factors such as the impact of inflation, the level of interest rates, supply chain or other effects from the ongoing conflicts in the Ukraine and the Middle East, general market conditions, the health of financial institutions (including recent bankruptcies and financial difficulties involving certain regional banks and related impacts that have occurred and continue to occur in the banking industry), investors' and lenders' assessments of our prospects and the prospects of the solar industry in general and the ability of our common stock to continue to trade in active markets.</span></p> 10800000 33000000 64900000 1 1 30 our common stock continues to trade on the Nasdaq Capital Market under the symbol "FTCI". If at any time before December 17, 2024 the bid price of our common stock closes at or above $1.00 per share for a minimum of ten consecutive business days, Nasdaq 800000 0.30 0.50 <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Use of estimates</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Preparation of condensed consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements, and the reported revenue and expenses during the period. Estimates are used for calculating the measure of progress of our solar tracker projects and deriving the standalone selling prices of the individual performance obligations when determining amounts to recognize for revenue, estimating allowances for credit losses and slow-moving and obsolete inventory, determining useful lives of long-lived assets and the estimated fair value of those assets for impairment assessments, and estimating the fair value of investments, stock compensation awards, warranty liabilities and federal and state taxes, including tax valuation allowances, as well as other contingencies. We base our estimates on historical experience and anticipated results, trends, and various other assumptions that we believe are reasonable under the circumstances, including assumptions as to future events. Actual results could differ from those estimates due to risks and uncertainties.</span></p> <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:1pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Concentration of credit risk</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Financial instruments that potentially subject the Company to concentrations of credit risk are primarily cash and accounts receivable.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We regularly maintain cash balances with various financial institutions that exceed federally insured amounts, but we have experienced no losses associated with these amounts to date. We also took action in early 2023 to reallocate cash balances between different financial institutions based on our assessment as to the financial health of certain institutions.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We extend credit to customers in the normal course of business, often without requiring collateral. We also perform credit analyses and monitor the financial health of our customers to reduce credit risk.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company’s accounts receivables are derived from revenue earned from customers primarily located in the U.S. and Australia. No countries other than the U.S. and Australia accou</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">nted for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">10</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">or more of our revenue. Most of our customers are project developers, solar asset owners and engineering, procurement and construction (“EPC”) contractors that design and build solar energy projects. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We typically rely on a small number of customers that account for a large portion of our revenue each period and our outstanding receivables at each period end.</span></p> 0.10 <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Cash and cash equivalents</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We consider all highly liquid investments purchased with an original maturity of three months or less to be cash equivalents. Certain of our cash equivalents include deposits in money market funds that invest primarily in short-term securities issued or guaranteed by the U.S. government or its agencies or instrumentalities and contain no restrictions on immediate redemption. These deposits totaled </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">5.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> at June 30, 2024 and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">13.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> at December 31, 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. Interest earned on cash equivalents is included in interest income, which is reported net of interest expense in our condensed consolidated statements of comprehensive loss.</span></p> 5900000 13900000 <p id="accounts_receivable_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accounts receivable, net</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Trade receivables are recorded at invoiced amounts, net of allowances for credit losses, and do not bear interest. We generally do not require collateral from our customers; however, in certain circumstances, we may require letters of credit, other collateral, additional guarantees or advance payments.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The allowance for credit losses is based on the lifetime expected credit loss of our customer accounts. To assess the lifetime expected credit loss, we utilize a loss rate method that takes into consideration historical experience and certain other factors, as appropriate, such as credit quality and current economic or other conditions that may affect a customer's ability to pay. Provisions for credit losses are included as a component of our selling and marketing expenses.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Receivables arising from revenue recognized in excess of billings represents our unconditional right to consideration before customers are invoiced due to the level of progress obtained as of period end on our contracts to procure and deliver tracker systems and related equipment. Further information may be found below in our </span><a href="#revenue_policy"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">revenue recognition policy</span></a><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">.</span></p> <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Inventories</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Inventories are stated at the lower of cost or net realizable value, with costs computed on a first-in, first-out basis. The Company periodically reviews its inventories for excess and obsolete items and adjusts carrying costs to estimated net realizable values when they are determined to be less than cost.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p> <p id="impairment_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Impairment</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">review our long-lived assets that are held for use for impairment whenever events or changes in circumstances indicate that the carrying amount of the asset may not be recoverable or that its useful life may be shorter than previously expected. If such impairment indicators are present or other factors exist that indicate the carrying amount of the asset may not be recoverable, we determine whether an impairment has occurred through the use of an undiscounted cash flow analysis of the asset at the lowest level for which identifiable cash flows exist. If an impairment has occurred, we recognize a loss for the difference between the carrying amount and the fair value of the asset, which in most cases is estimated based upon Level 3 unobservable inputs. If the asset is determined to have a remaining useful life shorter than previously expected, an adjustment for the shorter remaining life will be made for purposes of recognizing future depreciation</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">expense. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Assets are classified as held for sale when we have a plan, approved by the appropriate levels of management, for disposal of such assets, as well as other considerations, and those assets are stated at the lower of carrying value or estimated fair value less estimated costs to sell.</span></p> <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Intangible assets, net</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Intangible assets are recorded at fair value when acquired in connection with a business combination and consist of developed technology in the form of software tools, licenses, and intellectual property, which are amortized over the period of their estimated useful lives, generally </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">2.5 </span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">- </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">3.0 </span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">years, using the straight-line method. Costs incurred to renew or extend the term of a recognized intangible asset, if any, are expensed as incurred. We evaluate intangible assets for impairment using the method described above under "Impairment".</span></p> P2Y6M P3Y <p id="goodwill_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Goodwill</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We recognize goodwill as the excess of the purchase price over the estimated fair value of the identified assets and liabilities acquired in a business combination accounted for using the acquisition method. Goodwill is not amortized but is subject to a periodic assessment for impairment at least annually, or whenever events and circumstances indicate an impairment may exist. Our assessments may include qualitative factors such as current or expected industry and market conditions, our overall financial performance, share price trends, market capitalization and other company-specific events.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We operate in one segment, being the consolidated entity, which we have also determined is the reporting unit for goodwill impairment.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">No</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> impairment</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of goodwill was recognized as of June 30, 2024 or 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">.</span></p> 0 0 <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Equity method investment</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We use the equity method of accounting for investments in which we have the ability to exercise significant influence, but not control, over operating and financial policies of the investee. Our proportionate share of the net income or loss of these investees is included in our condensed consolidated statements of comprehensive loss. Judgment regarding the level of influence over each equity method investment includes considering key factors such as our ownership interest, legal form of the investee, representation on the board of directors or managers, participation in policy-making decisions and material intra-entity transactions.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We account for distributions received from equity method investees under the “nature of the distribution” approach based on the nature of the activity or activities of the investee that generated the distribution as either a return on investment (classified as cash inflows from operating activities) or a return of investment (classified as cash inflows from investing activities).</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We evaluate equity method investments for impairment whenever events or changes in circumstances indicate that the carrying amount of the investment might not be recoverable. Factors considered by the Company when reviewing an equity method investment for impairment include the length of time and the extent to which the fair value of the equity method investment has been less than its cost, the investee’s financial condition and near-term prospects and the intent and ability to hold the investment for a period of time sufficient to allow for anticipated recovery. An impairment that is other-than temporary is recognized in the period identified.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We made an accounting policy election that, upon the sale of our equity method investments, we will recognize contractual contingent gains arising from earnout provisions and project escrow releases when such amounts are realizable in periods subsequent to the disposal date.</span></p> <p id="warranty_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Warranty</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Typically, the sale of solar tracker projects includes parts warranties to customers as part of the overall price of the product. </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We provide standard assurance type warranties for our products for periods generally ranging from </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="-sec-ix-hidden:F_7b4e3ec1-a580-424f-b498-8af4ac4377fd;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">five</span></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> to </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ten years</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. </span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">also accrue for costs relating to remediation efforts involving product issues we believe require correction. We record a provision for estimated warranty and remediation expenses in cost of sales, net of amounts recoverable from manufacturers under their warranty obligations to us. When historical claims information relating to our equipment is not sufficient, we will base our estimates on industry studies involving the nature and frequency of product failure rates for similar parts used by our competitors, as well as other related businesses. We do not maintain general</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">or </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">unspecified reserves; all warranty reserves are related to specific projects. All actual or estimated material costs incurred for warranty or remediation services in subsequent periods are charged to those established reserves.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">While we periodically monitor our warranty activities and claims, if actual costs incurred were to be different from our estimates, we would recognize adjustments to our warranty reserves in the period in which those differences arise or are identified.</span></p> We provide standard assurance type warranties for our products for periods generally ranging from five to ten years. P10Y <p id="stock_based_compensation_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Stock-based compensation</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We recognize compensation expense for all share-based payment awards made, including stock options and restricted stock units ("RSUs"), based on the estimated fair value of the award on the grant date. We calculate the fair value of stock options using the Black-Scholes option pricing model for awards with service-based vesting or through use of a lattice model or a Monte Carlo simulation for stock option and RSU awards with market conditions. The fair value of RSUs with service or performance-based vesting is based on the estimated fair value of the Company's common stock on the date of grant. We consider the closing price of our stock, as reported on the Nasdaq Capital Market, to be the fair value of our stock on the grant date.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Forfeitures are accounted for as they occur. For service-based awards, stock-based compensation is recognized using the straight-line attribution approach over the requisite service period. For performance-based awards, stock-based compensation is recognized based on graded vesting over the requisite service period when the performance condition is probable of being achieved. Stock compensation expense for market-based awards is recognized over the derived service period determined in the valuation model, inclusive of any vesting conditions.</span></p> <p id="revenue_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Revenue recognition</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Product revenue is derived from the sale of solar tracker systems and customized components for those systems, individual part sales for certain specific transactions and the sale of term-based software licenses. Term-based licensed software is deployed on the customers’ own servers and has significant standalone functionality.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Service revenue includes revenue from shipping and handling services, engineering consulting and pile testing services, our subscription-based enterprise licensing model and maintenance and support services in connection with the term-based software licenses.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> Our subscription-based enterprise licensing model typically has contract terms ranging from </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="-sec-ix-hidden:F_1464fdb3-a496-4ebd-a570-8aa94f32acfc;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">one </span></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">to </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">two years</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and consists of subscription fees from the licensing of subscription services. Our hosted on-demand service arrangements do not provide customers with the right to take possession of the software supporting the hosted services. Support services include ongoing security updates, upgrades, bug fixes, and maintenance.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We recognize revenue when promised goods or services are transferred to customers in an amount that reflects the consideration to which we expect to be entitled to in exchange for those goods or services by following a five-step process: (1) identify the contract with a customer, (2) identify the performance obligations in the contract, (3) determine the transaction price, (4) allocate the transaction price to the performance obligations in the contract, and (5) recognize revenue when or as the Company satisfies a performance obligation, as further described below.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Identify the contract with a customer:</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> A contract with a customer exists when (i) the Company enters into an enforceable contract with a customer that defines each party’s rights regarding the products and services to be transferred and identifies the payment terms related to these products and services, (ii) the contract has commercial substance, and (iii) the Company determines that collection of substantially all consideration for products and services that are transferred is probable based on the customer’s intent and ability to pay the promised consideration. In assessing the recognition of revenue, we also evaluate whether two or more contracts should be combined and accounted for as one contract and if the combined or single contract should be accounted for as multiple performance obligations which could change the amount of revenue and profit (loss) recorded in a period. Change orders may include changes in specifications or design, manner of performance, equipment, materials, scope of work, and/or the period of completion of the project. We analyze change orders to determine if they should be accounted for as a modification to an existing contract or a new stand-alone contract.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Contracts we enter into with our customers for sale of solar tracker systems are generally under two different types of arrangements: (1) purchase agreements and equipment supply contracts (“Purchase Agreements”), and (2) sale of individual parts for those systems.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Change orders from our customers are generally modifications to existing contracts and are included in the total estimated contract revenue when it is probable that the change order will result in additional value that can be reliably estimated and realized.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Identify the performance obligations in the contract: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We enter into contracts that can include various combinations of products and services, which are either capable of being distinct and accounted for as separate performance obligations or as one performance obligation since the majority of tasks and services are part of a single project or capability. However, determining whether products or services are considered distinct performance obligations that should be accounted for separately versus together may sometimes require significant judgment.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Our Purchase Agreements typically include two performance obligations: 1) our solar tracker systems or customized components of those systems, and 2) shipping and handling services. The deliverables included as part of our solar tracker systems are predominantly accounted for as one performance obligation, as these deliverables are part of a combined promise to deliver a project.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The revenue for shipping and handling services will be recognized over time based on progress in meeting shipping terms of the arrangements, as this faithfully depicts the Company’s performance in transferring control. Revenue for stand-alone engineering consulting and pile testing services is recognized at a point in time upon completion of the services performed.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Sales of individual parts of our solar tracker systems for certain specific transactions include multiple performance obligations consisting of individual parts of those systems. Revenue is recognized for parts sales at a point in time when the obligations under the terms of the contract with our customer are satisfied. Generally, this occurs with the transfer of control of the asset, which is in line with shipping terms.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Determine the transaction price: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The transaction price is determined based on the consideration to which we will be entitled in exchange for transferring services to the customer. Such amounts are typically stated in the customer contract, and to the extent that we identify variable consideration, we will estimate the variable consideration at the onset of the arrangement as long as it is probable that a significant reversal in the amount of cumulative revenue recognized will not occur when the uncertainty associated with the variable consideration is subsequently resolved. The majority of our contracts do not contain variable consideration provisions as a continuation of the original contract. None of our contracts contain a significant financing component. Taxes collected from customers and remitted to governmental authorities are not included in revenue</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Allocate the transaction price to performance obligations in the contract: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Once we have determined the transaction price, we allocate the total transaction price to each performance obligation in a manner depicting the amount of consideration to which we expect to be entitled in exchange for transferring the good(s) or service(s) to the customer. We allocate the transaction price to each performance obligation identified in the contract on a relative standalone selling price basis.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We use the expected cost-plus margin approach based on hardware, labor, and related overhead cost to estimate the standalone selling price of our solar tracker systems, customized components of those systems, and individual parts for certain specific transactions. We also use the expected cost-plus margin approach based on expected third-party shipping and transportation costs to estimate the standalone selling price of our shipping, handling and logistics performance obligations. We use the adjusted market assessment approach for all other performance obligations.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Recognize revenue when or as the Company satisfies a performance obligation: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">For each performance obligation identified, we determine at contract inception whether we satisfy the performance obligation over time or at a point in time. The performance obligations in the contracts for our solar tracker systems and customized components of those systems are satisfied over time as work progresses, utilizing an input measure of progress determined by cost-to-cost measures on these projects as this faithfully depicts our performance in transferring control. Additionally, our performance does not create an asset with an alternative use, due to the highly customized nature of the product, and we have an enforceable right to payment for performance completed to date. Our performance obligations for individual part sales for certain specific transactions are recognized at a point in time as and when control transfers based on the terms for the contract. Our performance obligations for engineering consulting and pile testing services are recognized at a point in time upon completion of the services. Our performance obligations for term-based software licenses are recognized at a point in time as and when control transfers, either upon delivery to the customer or the software license start date, whichever is later. Our performance obligations for shipping and handling services are satisfied over time as the services are delivered over the term of the contract. We recognize revenue for subscription and other services on a straight-line basis over the contract period. With regard to support revenue, a time-elapsed method is used to measure progress because we transfer control evenly over the contractual period. Accordingly, the fixed consideration related to support revenue is generally recognized on a straight-line basis over the contract term.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Contract assets and liabilities: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The timing of revenue recognition, billing, and cash collection results in the recognition of accounts receivable, unbilled receivables for revenue recognized in excess of billings, and deferred revenue in the condensed consolidated balance sheets. We have elected to use the practical expedient of expensing incremental costs of obtaining a contract as incurred since the majority</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">of the performance obligations in our contracts are satisfied in less than one year. We may receive advances or deposits from our customers before revenue is recognized, resulting in contract liabilities, which are reflected as “deferred revenue” in our condensed consolidated balance sheets. Customer deposits are short term as the related performance obligations are typically fulfilled within 12 months. Changes in deferred revenue relate to fluctuations in the timing of customer deposits and completion of performance obligations. Revenue recognized during the three and six months ended June 30, 2024, from amounts included in deferred revenue at December 31, 2023, totaled </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively. Revenue recognized during the three and six months ended June 30, 2023, from amounts included in deferred revenue at December 31, 2022, totaled </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">9.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Cost of revenue consists primarily of costs related to raw materials, equipment manufacturing activities, freight and delivery, product warranty, remediation and personnel costs (salaries, bonuses, benefits, and stock-based compensation). Personnel costs in cost of revenue include both direct labor costs, as well as costs attributable to any individuals whose activities relate to the procurement, installment and delivery of the finished product and services.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> Cost of revenue owed but not yet paid is recorded as accrued cost of revenue in the accompanying condensed consolidated balance sheets. Deferred cost of revenue, a component of our prepaid and other current assets, results from the timing differences between the costs incurred in advance of the satisfaction of all revenue recognition criteria consistent with our revenue recognition policy.</span></p> P2Y 200000 2500000 1700000 9300000 <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Recent accounting and regulatory pronouncements not yet adopted</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In November 2023, the Financial Accounting Standards Board ("FASB") issued ASU No. 2023-07 - Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures ("ASU 2023-07"), which will become effective for us for our year end 2024 financial reporting and our interim reporting beginning January 1, 2025. ASU 2023-07 requires public companies to disclose significant segment expenses and other segment items on an annual and interim basis and will require interim disclosures about a reportable segment's profit or loss and assets that are currently required annually. As noted above, we operate in one segment. We are currently evaluating the impact of ASU 2023-07 on our existing disclosures. ASU 2023-07 will be applied retrospectively to all periods when presented in our consolidated financial statements for the year ending December 31, 2024.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In December 2023, the FASB issued ASU No. 2023-09 - Income Taxes (Topic 740): Improvements to Income Tax Disclosures ("ASU 2023-09"). ASU 2023-09 requires companies to disclose (i) additional categories of information about federal, state and foreign income taxes above a quantitative threshold in their rate reconciliation table and (ii) income taxes paid, net of refunds, disaggregated by federal, state and foreign taxes for annual periods, as well as other disclosure changes. As an emerging growth company, we are not required to adopt ASU 2023-09 prior to 2026, although earlier adoption is permitted. We are currently evaluating the impact of ASU 2023-09 on our existing income tax disclosures.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In March 2024, the U.S. Securities and Exchange Commission ("SEC") adopted the final rule under SEC Release No. 33-11275, The Enhancement and Standardization of Climate-Related Disclosures for Investors. This rule would require registrants to disclose certain climate-related information in registration statements and annual reports. In April 2024, the SEC issued a stay of the final rules pending a judicial review of the validity of the rules by the Eighth Circuit Court of Appeals. We are currently evaluating the final rule to determine its impact on our disclosures.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Other standards or regulatory requirements that have been issued but not yet adopted as of June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, are either not applicable to us or are not expected to have any material impact upon adoption.</span></p> <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Reclassifications</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Certain prior year amounts have been reclassified to conform to the current year presentation. There was no impact on our financial condition or results of operations as a result of the reclassification.</span></p> <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">3. Equity method investment</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On February 9, 2023, we entered into a limited liability company agreement (the "LLC Agreement") with Taihua New Energy (Thailand) Co., LTD ("Taihua"), a leading steel fabricator and an existing vendor, and DAYV LLC, for the creation of Alpha Steel LLC ("Alpha Steel"), a Delaware limited liability company dedicated to producing steel components, including torque tubes, for utility-scale solar projects. The Alpha Steel facility, which is located outside of Houston in Sealy, Texas, began commercial production late in the fourth quarter of 2023.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We entered into amendment no. 1 to the Alpha Steel LLC Agreement with Taihua and DAYV LLC on July 28, 2023, to allow for members at their option, and with the approval of the Board of Managers, to make payments in respect of Alpha Steel’s contractual obligations in the event that Alpha Steel does not or is not able to make such payments from its own resources (“Credit Support Payments”). Any such Credit Support Payments will be treated as capital contributions by the members to Alpha Steel, with any member funding more than its ratable share of Credit Support Payments being deemed to have loaned such excess to each underfunding member at the U.S. prime rate plus </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Alpha Steel is intended to enhance our domestic supply chain, our ability to support our customers and the growth of the U.S. solar market, with domestic manufacturing utilizing U.S. steel. We have a </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">45</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% interest in Alpha Steel, which is accounted for under the equity method of accounting. Taihua has a </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">51</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% interest in Alpha Steel and DAYV LLC, an entity owned by members of the Board of Managers of Alpha Steel and a related party with the parent company of Taihua, has a </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% interest in Alpha Steel. The Chief Executive Officer of Taihua is the General Manager of Alpha Steel. We have equal voting representation with Taihua and DAYV LLC, combined, on Alpha Steel's Board of Managers which is responsible, through majority vote, for making certain "major decisions" involving Alpha Steel, as specified in the LLC Agreement, including, among other things, approval of an annual business plan.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">During 2023, we made a required initial capital contribution of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million to Alpha Steel. For the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">six months ended June 30, 2024, we also made required additional capital contributions totaling </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. Pursuant to the LLC Agreement, we could be required to make up to </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> in future additional capital contributions as Alpha Steel continues to expand production. For the three and six months ended June 30, 2024, we recognized losses of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively, which represents our share of the net operating losses incurred by Alpha Steel during the period.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">No</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> such losses were recognized during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">three and six months ended June 30, 2023 as Alpha Steel had not begun operating activities during those periods.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In connection with the creation of Alpha Steel, we also entered into a three-year equipment supply agreement (the "Supply Agreement") with Alpha Steel, the terms of which will apply to our equipment purchase orders. </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Pursuant to the Supply Agreement, we have committed to placing a minimum level of purchase orders for torque tubes with Alpha Steel during the period from January 1, 2024 to June 30, 2025, with such volume commitments increasing in each of the next two annual periods.</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> In the event we fail to meet our minimum required purchase commitments in any period, we may be required to make a cash payment for the net profit attributable to any unfilled requirements, calculated as specified in the agreement, in an amount not to exceed $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">4.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in the aggregate. As of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">June 30, 2024, we had met approximately </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of our required purchase commitments for the period ending June 30, 2025. The Supply Agreement may be terminated early in accordance with its provisions or may be extended beyond the initial term if mutually agreed to by the parties.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">At June 30, 2024, in addition to our requirement to meet the remaining minimum purchase obligations for the remainder of the year, as described above, we were contingently liable for unpaid vendor obligations, including issued but unsatisfied purchase orders, of Alpha Steel totaling approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. We expect Alpha Steel will be able to satisfy these obligations with financial resources available to them in the normal course of operations.</span></p> 0.02 0.45 0.51 0.04 900000 1800000 800000 200000 500000 0 0 Pursuant to the Supply Agreement, we have committed to placing a minimum level of purchase orders for torque tubes with Alpha Steel during the period from January 1, 2024 to June 30, 2025, with such volume commitments increasing in each of the next two annual periods. 4000000 0.07 900000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">4. ATM program</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On September 14, 2022, we filed a prospectus supplement and entered into an equity distribution agreement (as amended, the "EDA") under which we may from time to time, in one or more transactions, offer and sell newly issued shares of our common stock having an aggregate offering price of up to $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">100</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in "at the money" offerings (the "ATM program"). We have and may continue to use the net proceeds from this offering for general corporate purposes, including working capital and operating expenses. We may also use a portion of such proceeds to acquire or invest in businesses, products, services or technologies.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Barclays Capital Inc. ("Barclays") is our sales agent under the EDA. The offering of our common stock under the EDA will terminate upon the earlier of (1) the sale of all common stock subject to the EDA or (2) the termination of the EDA by us or by Barclays as permitted therein. The EDA contains customary representations, covenants and indemnification provisions.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We sold no shares of newly issued common stock under the ATM program during the three and six months ended June 30, 2024, however, during the three and six months ended June 30, 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, we sold </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">6,589,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">9,272,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> shares of newly issued common stock valued at </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">17.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">24.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively, for proceeds, net of commissions and fees, of approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">17.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">23.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively, including </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">3.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> in proceeds, net of commissions and fees, for shares sold but not yet settled as of June 30, 2023. As of June 30, 2024, approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">64.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of capacity remained for future sales of our common stock under the ATM program.</span></p> 100000000 6589000 9272000 17900000 24400000 17300000 23600000 3000000 64900000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">5. Accounts receivable, net</span></p><div style="font-size:11pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accounts receivable consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Trade receivables</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">22,006</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">46,152</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Related party receivables</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,564</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">868</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Revenue recognized in excess of billings</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">17,169</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">26,813</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other receivables</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">41,743</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">73,836</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Allowance for credit losses</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">232</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,557</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accounts receivable, net</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">41,511</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">65,279</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On April 3, 2024, we entered into a First Amendment ("the Amendment") to Master Project Supply Agreements dated October 11, 2021 with a customer and major solar project developer that owed us approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">30.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> for project equipment we had previously completed and made available to the customer pursuant to the Master Project Supply Agreements. The Amendment was executed in consideration of and concurrent with the sale of the uncompleted projects by our customer, including the amended Master Project Supply Agreements, to a new third-party developer (the "Purchaser") who assumed certain obligations to us under the amended Master Project Supply Agreements.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Pursuant to the Amendment, we received a cash payment of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">9.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> from the Purchaser to acquire completed foundation piles, which are being stored at the request of the Purchaser for final delivery to the project sites, currently expected during the fourth quarter of 2024. We expect to receive certain additional amounts from the Purchaser for the temporary storage and upon final delivery. The remaining completed project equipment, with an estimated fair value of approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">13.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, was retained by us and returned to our inventory in exchange for forgiveness of the associated outstanding receivable balance owed by our customer. The fully reserved unpaid receivable balance totaling approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">8.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> was written off against our allowance for credit losses.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Information about our related party receivables at June 30, 2024, may be found below in Note 16, "Related party transactions".</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Included in total receivables above are amounts billed under retainage provisions totaling </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> as of June 30, 2024 and December 31, 2023, respectively, which are due within the next twelve months.</span></p><div style="font-size:11pt;font-family:'Calibri',sans-serif;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Activity in the allowance for credit losses during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">three and six months ended June 30, 2024 and 2023 was as follows:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:48.539%;"></td> <td style="width:1.261%;"></td> <td style="width:1%;"></td> <td style="width:9.604000000000001%;"></td> <td style="width:1%;"></td> <td style="width:1.261%;"></td> <td style="width:1%;"></td> <td style="width:9.604000000000001%;"></td> <td style="width:1%;"></td> <td style="width:1.261%;"></td> <td style="width:1%;"></td> <td style="width:9.604000000000001%;"></td> <td style="width:1%;"></td> <td style="width:1.261%;"></td> <td style="width:1%;"></td> <td style="width:9.604000000000001%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at beginning of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,227</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,184</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,557</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,184</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Impact of adoption of ASU 2016-13, effective January 1, 2023</span></p></td> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">N/A</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">N/A</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">N/A</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">—</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Amounts charged (credited) to earnings during the period</span></p></td> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">83</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">203</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">587</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">203</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Write-offs of accounts</span></p></td> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,912</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">—</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,912</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">—</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at end of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">232</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,387</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">232</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,387</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="text-indent:10pt;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="text-indent:10pt;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="text-indent:10pt;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="text-indent:10pt;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="text-indent:10pt;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> </table></div> <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accounts receivable consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Trade receivables</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">22,006</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">46,152</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Related party receivables</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,564</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">868</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Revenue recognized in excess of billings</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">17,169</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">26,813</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other receivables</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">41,743</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">73,836</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Allowance for credit losses</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">232</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,557</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accounts receivable, net</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">41,511</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">65,279</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table> 22006000 46152000 2564000 868000 17169000 26813000 4000 3000 41743000 73836000 232000 8557000 41511000 65279000 30800000 9000000 13200000 8900000 600000 900000 <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Activity in the allowance for credit losses during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">three and six months ended June 30, 2024 and 2023 was as follows:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:48.539%;"></td> <td style="width:1.261%;"></td> <td style="width:1%;"></td> <td style="width:9.604000000000001%;"></td> <td style="width:1%;"></td> <td style="width:1.261%;"></td> <td style="width:1%;"></td> <td style="width:9.604000000000001%;"></td> <td style="width:1%;"></td> <td style="width:1.261%;"></td> <td style="width:1%;"></td> <td style="width:9.604000000000001%;"></td> <td style="width:1%;"></td> <td style="width:1.261%;"></td> <td style="width:1%;"></td> <td style="width:9.604000000000001%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at beginning of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,227</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,184</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,557</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,184</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Impact of adoption of ASU 2016-13, effective January 1, 2023</span></p></td> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">N/A</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">N/A</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">N/A</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">—</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Amounts charged (credited) to earnings during the period</span></p></td> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">83</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">203</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">587</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">203</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Write-offs of accounts</span></p></td> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,912</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">—</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,912</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">—</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at end of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">232</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,387</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">232</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,387</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="text-indent:10pt;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="text-indent:10pt;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="text-indent:10pt;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="text-indent:10pt;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="text-indent:10pt;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> </table> 9227000 1184000 8557000 1184000 0 -83000 203000 587000 203000 8912000 0 8912000 0 232000 1387000 232000 1387000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">6. Inventories</span></p><div style="font-size:11pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Inventories consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Finished goods</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">17,576</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,246</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Allowance for slow-moving and obsolete inventory</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">515</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">341</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">17,061</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,905</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The increase in our finished goods inventory is primarily related to completed project equipment retained by us pursuant to the agreement reached with a major customer described further in Note 5, "Accounts receivable, net</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">" above.</span></p> <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Inventories consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Finished goods</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">17,576</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,246</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Allowance for slow-moving and obsolete inventory</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">515</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">341</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">17,061</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,905</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table> 17576000 4246000 515000 341000 17061000 3905000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">7. Prepaid and other current assets</span></p><div style="font-size:11pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Prepaid and other current assets consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Vendor deposits</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6,605</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,667</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Vendor deposits with related party</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,974</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">520</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Prepaid expenses</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,016</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,251</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Prepaid taxes</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">545</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">447</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Deferred cost of revenue</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">620</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">666</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Surety collateral</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">—</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other current assets</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,202</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,538</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:11pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:7pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,969</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,089</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">At June 30, 2024, other current assets included </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> for a non-interest-bearing customer advance related to pre-project construction financing activities. This advance is secured by certain customer assets.</span></p> <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Prepaid and other current assets consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Vendor deposits</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6,605</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,667</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Vendor deposits with related party</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,974</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">520</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Prepaid expenses</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,016</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,251</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Prepaid taxes</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">545</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">447</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Deferred cost of revenue</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">620</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">666</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Surety collateral</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">—</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other current assets</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,202</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,538</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:11pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:7pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,969</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,089</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table> 6605000 5667000 1974000 520000 1016000 1251000 545000 447000 620000 666000 7000 0 4202000 5538000 14969000 14089000 2000000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">8. Leases</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We lease office and warehouse space in various locations, including our corporate headquarters in Austin, Texas. Additionally, we lease space for an applications laboratory in Austin, Texas and a research and development facility in Seguin, Texas. All of our manufacturing is outsourced to contract manufacturing partners, and we currently do not own or lease any manufacturing facilities.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Our expense for our operating leases consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:53.671%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Operating lease cost</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">300</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">268</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">609</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">497</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Short-term lease cost</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">111</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">110</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">204</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">202</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total lease cost</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">411</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">378</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">813</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">699</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Reported in:</span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Cost of revenue</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">259</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">250</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">495</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">465</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Research and development</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">11</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">28</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">26</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Selling and marketing</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">39</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">23</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">87</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">38</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">General and administrative</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">99</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">94</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">203</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">170</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total lease cost</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">411</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">378</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">813</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">699</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Future remaining operating lease payment obligations were as follows:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:84.6%;"></td> <td style="width:1.52%;"></td> <td style="width:1%;"></td> <td style="width:11.88%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30,<br/>2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Remainder of 2024</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">465</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2025</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">884</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2026</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">313</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2027</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">291</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2028</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">157</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total lease payments</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,110</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Less: imputed interest</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">146</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Present value of operating lease liabilities</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,964</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"> <td style="text-indent:5pt;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current portion of operating lease liability</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">857</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Operating lease liability, net of current portion</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,107</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Present value of operating lease liabilities</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,964</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table></div> <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Our expense for our operating leases consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:53.671%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Operating lease cost</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">300</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">268</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">609</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">497</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Short-term lease cost</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">111</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">110</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">204</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">202</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total lease cost</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">411</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">378</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">813</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">699</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Reported in:</span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Cost of revenue</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">259</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">250</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">495</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">465</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Research and development</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">11</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">28</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">26</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Selling and marketing</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">39</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">23</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">87</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">38</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">General and administrative</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">99</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">94</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">203</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">170</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total lease cost</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">411</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">378</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">813</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">699</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table> 300000 268000 609000 497000 111000 110000 204000 202000 411000 378000 813000 699000 259000 250000 495000 465000 14000 11000 28000 26000 39000 23000 87000 38000 99000 94000 203000 170000 411000 378000 813000 699000 <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Future remaining operating lease payment obligations were as follows:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:84.6%;"></td> <td style="width:1.52%;"></td> <td style="width:1%;"></td> <td style="width:11.88%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30,<br/>2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Remainder of 2024</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">465</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2025</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">884</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2026</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">313</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2027</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">291</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2028</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">157</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total lease payments</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,110</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Less: imputed interest</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">146</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Present value of operating lease liabilities</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,964</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"> <td style="text-indent:5pt;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current portion of operating lease liability</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">857</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Operating lease liability, net of current portion</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,107</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Present value of operating lease liabilities</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,964</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table> 465000 884000 313000 291000 157000 2110000 146000 1964000 857000 1107000 1964000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">9. Property and equipment, net</span></p><div style="font-size:11pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Property and equipment consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Leasehold improvements</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">338</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">157</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Field equipment</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,108</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,062</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Information technology equipment</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">574</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">466</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Tooling</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,732</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,014</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Capitalized software</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">848</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">734</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,600</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,433</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accumulated depreciation</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,154</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,610</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Property and equipment, net</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,446</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,823</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Depreciation expense for the three months ended June 30, 2024 and 2023, totaled </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively, and for the six months ended June 30, 2024 and 2023, totaled </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively.</span></p> <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Property and equipment consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Leasehold improvements</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">338</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">157</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Field equipment</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,108</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,062</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Information technology equipment</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">574</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">466</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Tooling</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,732</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,014</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Capitalized software</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">848</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">734</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,600</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,433</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accumulated depreciation</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,154</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,610</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Property and equipment, net</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,446</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,823</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table> 338000 157000 1108000 1062000 574000 466000 1732000 1014000 848000 734000 4600000 3433000 2154000 1610000 2446000 1823000 300000 200000 500000 400000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">10. Intangible assets, net and goodwill</span></p><div style="font-size:11pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Intangible assets consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:48.499%;"></td> <td style="width:1.461%;"></td> <td style="width:20.268%;"></td> <td style="width:1.461%;"></td> <td style="width:1%;"></td> <td style="width:11.425%;"></td> <td style="width:1%;"></td> <td style="width:1.461%;"></td> <td style="width:1%;"></td> <td style="width:11.425%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Estimated Useful Lives (Years)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Developed technology</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2.5 </span></span><span style="color:#000000;white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">–</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span><span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3.0</span></span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,520</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,555</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total</span></p></td> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,520</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,555</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accumulated amortization</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,256</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,013</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Intangible assets, net</span></p></td> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">264</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">542</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Amortization expense for the three months ended June 30, 2024 and 2023, totaled </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively, and for the six months ended June 30, 2024 and 2023, totaled </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively.</span></p><div style="font-size:11pt;font-family:'Calibri',sans-serif;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">During the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">six months ended June 30, 2024 and 2023, activity in our goodwill balance was as follows:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:55.331%;"></td> <td style="width:1.46%;"></td> <td style="width:13.443%;"></td> <td style="width:1.46%;"></td> <td style="width:1%;"></td> <td style="width:11.422%;"></td> <td style="width:1%;"></td> <td style="width:1.46%;"></td> <td style="width:1%;"></td> <td style="width:11.422%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at beginning of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,353</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,538</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Translation</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">184</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">365</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at end of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,169</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,173</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table></div> <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Intangible assets consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:48.499%;"></td> <td style="width:1.461%;"></td> <td style="width:20.268%;"></td> <td style="width:1.461%;"></td> <td style="width:1%;"></td> <td style="width:11.425%;"></td> <td style="width:1%;"></td> <td style="width:1.461%;"></td> <td style="width:1%;"></td> <td style="width:11.425%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Estimated Useful Lives (Years)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Developed technology</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2.5 </span></span><span style="color:#000000;white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">–</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span><span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3.0</span></span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,520</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,555</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total</span></p></td> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,520</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,555</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accumulated amortization</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,256</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,013</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Intangible assets, net</span></p></td> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">264</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">542</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table> P2Y6M P3Y 2520000 2555000 2520000 2555000 2256000 2013000 264000 542000 100000 100000 300000 300000 <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">During the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">six months ended June 30, 2024 and 2023, activity in our goodwill balance was as follows:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:55.331%;"></td> <td style="width:1.46%;"></td> <td style="width:13.443%;"></td> <td style="width:1.46%;"></td> <td style="width:1%;"></td> <td style="width:11.422%;"></td> <td style="width:1%;"></td> <td style="width:1.46%;"></td> <td style="width:1%;"></td> <td style="width:11.422%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at beginning of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,353</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,538</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Translation</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">184</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">365</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at end of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,169</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,173</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table> 7353000 7538000 -184000 -365000 7169000 7173000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">11. Debt</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Our Credit Facility, entered into in 2021 with various lenders, including Barclays Bank PLC, as issuing lender, the swingline lender and as administrative agent, expired unused on April 30, 2024. The Credit Facility has not currently been replaced.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Interest expense for the three months ended June 30, 2024 and 2023, totaled </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively, and for the six months ended June 30, 2024 and 2023, totaled </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively. Our interest expense primarily consisted of commitment and letter of credit fees, as well as amortization of costs relating to the initial establishment of the Credit Facility.</span></p> 100000 300000 400000 600000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">12. Accrued expenses and other current liabilities</span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accrued expenses and other current liabilities consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accrued cost of revenue</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">16,260</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">26,773</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Related party accrued cost of revenue</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">657</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,451</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accrued compensation</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,435</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,858</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other accrued expenses</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,483</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,766</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total accrued expenses</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">22,835</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">34,848</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Warranty reserves</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,264</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,279</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current portion of operating lease </span><span><span style="-sec-ix-hidden:F_1a89ea18-9a1f-4d68-8a72-efcd3f212277;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">liability</span></span></span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">857</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">740</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Non-federal tax obligations</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">81</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">119</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total other current liabilities</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,202</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,138</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Information relating to our related party accrued cost of revenue at June 30, 2024 and December 31, 2023 may be found below in Note 16, "Related party transactions".</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Other accrued expenses primarily include amounts due for (i) legal costs associated with outstanding corporate or legal matters and (ii) other professional services.</span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Activity by period in the Company's warranty accruals was as follows:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:53.671%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at beginning of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,472</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,557</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">11,002</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,426</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Warranties issued and remediation added during the period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">801</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,309</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,639</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,852</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Settlements made during the period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">443</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,234</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,292</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,337</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Changes in liability for pre-existing warranties</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">415</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">551</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">934</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">860</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at end of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,415</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,081</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,415</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,081</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Warranty accruals are reported in:</span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other current liabilities</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,264</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,791</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,264</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,791</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other non-current liabilities</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,151</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,290</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,151</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,290</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at end of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,415</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,081</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,415</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,081</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> </table></div> <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accrued expenses and other current liabilities consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">June 30, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accrued cost of revenue</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">16,260</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">26,773</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Related party accrued cost of revenue</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">657</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,451</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accrued compensation</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,435</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,858</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other accrued expenses</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,483</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,766</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total accrued expenses</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">22,835</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">34,848</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Warranty reserves</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,264</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,279</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current portion of operating lease </span><span><span style="-sec-ix-hidden:F_1a89ea18-9a1f-4d68-8a72-efcd3f212277;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">liability</span></span></span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">857</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">740</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Non-federal tax obligations</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">81</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">119</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total other current liabilities</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,202</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,138</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table> 16260000 26773000 657000 1451000 3435000 3858000 2483000 2766000 22835000 34848000 7264000 7279000 857000 740000 81000 119000 8202000 8138000 <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Activity by period in the Company's warranty accruals was as follows:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:53.671%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at beginning of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,472</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,557</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">11,002</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,426</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Warranties issued and remediation added during the period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">801</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,309</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,639</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,852</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Settlements made during the period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">443</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,234</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,292</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,337</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Changes in liability for pre-existing warranties</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">415</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">551</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">934</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">860</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at end of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,415</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,081</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,415</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,081</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Warranty accruals are reported in:</span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other current liabilities</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,264</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,791</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,264</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,791</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other non-current liabilities</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,151</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,290</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,151</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,290</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at end of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,415</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,081</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,415</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,081</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> </table> 10472000 12557000 11002000 12426000 801000 1309000 1639000 2852000 443000 1234000 1292000 2337000 -415000 -551000 -934000 -860000 10415000 12081000 10415000 12081000 7264000 7791000 7264000 7791000 3151000 4290000 3151000 4290000 10415000 12081000 10415000 12081000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">13. </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Income taxes</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">For the three months ended June 30, 2024 and 2023, we recorded an income tax expense of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.07</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and an income tax benefit of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;"><span style="-sec-ix-hidden:F_89809fd8-c2d8-48f8-813f-b6fd9605e34a;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">0.12</span></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> respectively, and for the six months ended June 30, 2024 and 2023, we recorded an income tax expense of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.05</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and an income tax expense of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;"><span style="-sec-ix-hidden:F_b82c6a22-6959-4473-a56c-cfbf685eb211;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">0.01</span></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> respectively. These amounts for each period were lower than the statutory rate of </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">21</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%, primarily due to a valuation allowance established against the U.S. deferred tax assets.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We have had </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">no</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> material change in our unrecognized tax benefits since </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">December 31, 2023. We recognize accrued interest and penalties related to unrecognized tax benefits as a component of income tax expense. As of June 30, 2024 and December 31, 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, we had </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">no</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> accrued interest or penalties related to unrecognized tax benefits.</span></p> 70000.00 50000.00 0.21 0 0 0 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">14. </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Commitments and contingencies</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We may become involved in various claims, lawsuits, investigations, and other proceedings, arising in the normal course of business. We accrue a liability when information available prior to the issuance of our financial statements indicates it is probable a loss has been incurred as of the date of the financial statements and the amount of loss can be reasonably estimated. If the reasonable estimate of the</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">probable loss is a range, we record an accrual for the most likely estimate of the loss, or the low end of the range if there is no one best estimate. We adjust our accruals to reflect the impact of negotiation, settlements, rulings, advice of legal counsel and other information and events pertaining to a particular case. Legal costs are expensed as incurred.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In March of 2023, CBP issued notices of tariff assessment that indicated an action taken at the Import Specialist (i.e., the port) level with respect to merchandise imported from Thailand under entry number 004-1058562-5 (the “625 Assessment”) and entry number 004-1063793-9 (the “Original 939 Assessment”, and collectively with the 625 Assessment, the “Original CBP Assessments”). The Original CBP Assessments related to certain torque beams that are used in our Voyager+ product that were imported in 2022. In the Original CBP Assessments, CBP asserted that Section 301 China tariffs, Section 232 steel and aluminum tariffs, and antidumping and countervailing duties applied to the merchandise. Based on correspondence received to date from CBP and our calculations based on applicable duty and tariff rates, the 625 Assessment is currently for approximately $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.84</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million. In September of 2023, CBP informed us (the "Revised 939 Assessment", and together with the 625 Assessment, the "Revised CBP Assessments") that the amount owed under the Original 939 Assessment was being revised downward to approximately $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.01</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million. </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In particular, CBP accepted our position that the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, previously assessed under the Original 939 Assessment are not applicable as they are only applicable to articles that originate in China</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and that, in this case, the finished goods are products of Thailand.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Upon review of the facts involved, and in consultation with outside legal counsel, we believe that the remaining amounts claimed in the Revised CBP Assessments are incorrect. </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In particular, the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, are not applicable under the 625 Assessment for the same reason stated above with respect to the Revised 939 Assessment, which has been accepted by CBP</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. Moreover, with respect to both Revised CBP Assessments, we believe that the goods in question were properly classified as parts of structures at the time of importation and that when properly classified, the beams and other materials are not subject to Section 232 duties applicable to more basic steel products.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">CBP has legally finalized both Revised CBP Assessments. We filed a formal protest for the 625 Assessment in September of 2023 and for the Revised 939 Assessment in March of 2024. Based on the above, and under the relevant accounting guidance related to loss contingencies, we have made no accrual for the amounts claimed by CBP as of June 30, 2024, as we do not consider these amounts to be a probable obligation, as such term is defined and interpreted under the relevant accounting guidance, for us at this time. However, because matters of this nature are subject to inherent uncertainties, and unfavorable rulings or developments, including future assessments of additional duties or tariffs owed in respect of other shipments or other materials beyond what is presently included in the Revised CBP Assessments, could occur despite our belief that the tariffs and duties asserted are incorrect, there can be no certainty that the Company may not ultimately incur charges that are not currently recorded as liabilities. Since the outcome of these matters cannot be predicted with certainty, the costs associated with them could have a material adverse effect on our consolidated results of operations, financial position, or liquidity.</span></p> 2840000 2010000.00 In particular, CBP accepted our position that the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, previously assessed under the Original 939 Assessment are not applicable as they are only applicable to articles that originate in China In particular, the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, are not applicable under the 625 Assessment for the same reason stated above with respect to the Revised 939 Assessment, which has been accepted by CBP <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">15. Stock-based compensation</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Stock compensation expense for each period was as follows:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:53.671%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Cost of revenue</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">240</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">316</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">456</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,132</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Research and development</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">93</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">115</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">174</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">364</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Selling and marketing</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">114</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">271</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">158</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">655</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">General and administrative</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">838</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,260</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,136</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,701</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total stock compensation expense</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,285</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,962</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,924</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,852</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table></div> <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Stock compensation expense for each period was as follows:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:53.671%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> <td style="width:1.14%;"></td> <td style="width:1%;"></td> <td style="width:8.442%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Cost of revenue</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">240</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">316</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">456</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,132</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Research and development</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">93</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">115</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">174</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">364</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Selling and marketing</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">114</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">271</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">158</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">655</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">General and administrative</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">838</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,260</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,136</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,701</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total stock compensation expense</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,285</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,962</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,924</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,852</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table> 240000 316000 456000 1132000 93000 115000 174000 364000 114000 271000 158000 655000 838000 2260000 2136000 5701000 1285000 2962000 2924000 7852000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">16. Related party transactions</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Transaction with Ayna.AI LLC</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">February 2022, we engaged Ayna.AI LLC (as successor in interest to Fernweh Engaged Operator Company LLC) (“Ayna”) to support us with improvements to our processes and performance in various areas including design, sourcing, logistics, pricing, software and standard configuration. The foregoing engagement constituted a related party transaction as South Lake One LLC, an entity affiliated with</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Isidoro </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Quiroga Cortés, a member of our board of directors, and a holder of more than </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% of our outstanding capital stock, is an investor in Ayna. In addition, Discrimen LLC is an investor in Ayna, and Isidoro Quiroga Cortés is affiliated with that entity. Isidoro Quiroga Cortés is also on the board of directors of Ayna. On Septemb</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">er 13, 2023, we executed a termination of the master services agreement and statement of work (collectively, the "Service Agreement") with Ayna and Fernweh Group LLC, the parent company of Fernweh Engaged Operator Company LLC.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">For the three and six months ended June 30, 2023, we incurred </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively, of general and administrative expense, including expense relating to stock-based compensation awards, and made cash payments of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively, associated with our engagement of Ayna.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Related party receivables and payables</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We have related party receivables at June 30, 2024 and December 31, 2023, totaling </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively, for future material costs discounts contractually owed to us by Alpha Steel in connection with the expected receipt of manufacturing incentives available to Alpha Steel under the Inflation Reduction Act as costs are incurred by Alpha Steel to purchase raw materials and manufacture torque tubes and other products that will be used to fulfill purchase orders we issue to Alpha Steel.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We also have related party liabilities to Alpha Steel at June 30, 2024 and December 31, 2023, totaling </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively, for the accrued cost of revenue recognized on certain of our customer projects associated with the cost of products that are being manufactured for us by Alpha Steel.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">During the three and six months ended June 30, 2024, we made vendor deposits of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively, to Alpha Steel and received invoices from Alpha Steel totaling </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">3.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">5.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively. Our balance of vendor deposits with Alpha Steel as of June 30, 2024 and December 31, 2023 is shown in Note 7, "Prepaids and other current assets" above as "Vendor deposits with related party". After payments and application of vendor deposits to invoices received, we owe </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> to Alpha Steel, which is included in our accounts payable balance at June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> (</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">no</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ne at </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">December 31, 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">) in our condensed consolidated balance sheets.</span></p> 0.05 500000 1400000 800000 1700000 2600000 900000 700000 1500000 1100000 2700000 3800000 5500000 1000000 0 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">17. Net loss per share</span></p><div style="font-size:10pt;font-family:Times New Roman;"> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:48.96%;"></td> <td style="width:1.18%;"></td> <td style="width:1%;"></td> <td style="width:9.58%;"></td> <td style="width:1%;"></td> <td style="width:1.18%;"></td> <td style="width:1%;"></td> <td style="width:9.58%;"></td> <td style="width:1%;"></td> <td style="width:1.18%;"></td> <td style="width:1%;"></td> <td style="width:9.58%;"></td> <td style="width:1%;"></td> <td style="width:1.18%;"></td> <td style="width:1%;"></td> <td style="width:9.58%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net loss (in thousands)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,241</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,414</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">21,012</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">22,176</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Weighted average shares outstanding for calculating basic and diluted loss per share</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">126,171,278</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">112,669,296</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">125,816,080</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">109,632,336</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Basic and diluted loss per share</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.10</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.09</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.17</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.20</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> </table></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">For purposes of computing diluted loss per share, weighted average common shares outstanding do not include potentially dilutive securities that are anti-dilutive, as shown below.</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.02%;"></td> <td style="width:1%;"></td> <td style="width:12.06%;"></td> <td style="width:1%;"></td> <td style="width:1.02%;"></td> <td style="width:1%;"></td> <td style="width:12.06%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">For the three and six months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Anti-dilutive securities excluded from calculating dilutive loss per share:</span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Shares of common stock issuable under stock option plans outstanding</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,386,293</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6,505,638</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Shares of common stock issuable upon vesting of RSUs</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">11,521,675</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,124,189</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Potential common shares excluded from diluted net loss per share calculation</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">13,907,968</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">15,629,827</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table></div> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:48.96%;"></td> <td style="width:1.18%;"></td> <td style="width:1%;"></td> <td style="width:9.58%;"></td> <td style="width:1%;"></td> <td style="width:1.18%;"></td> <td style="width:1%;"></td> <td style="width:9.58%;"></td> <td style="width:1%;"></td> <td style="width:1.18%;"></td> <td style="width:1%;"></td> <td style="width:9.58%;"></td> <td style="width:1%;"></td> <td style="width:1.18%;"></td> <td style="width:1%;"></td> <td style="width:9.58%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Six months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net loss (in thousands)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,241</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,414</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">21,012</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">22,176</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Weighted average shares outstanding for calculating basic and diluted loss per share</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">126,171,278</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">112,669,296</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">125,816,080</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">109,632,336</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Basic and diluted loss per share</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.10</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.09</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.17</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.20</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> </table> -12241000 -10414000 -21012000 -22176000 126171278 126171278 112669296 112669296 125816080 125816080 109632336 109632336 -0.1 -0.1 -0.09 -0.09 -0.17 -0.17 -0.2 -0.2 <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">For purposes of computing diluted loss per share, weighted average common shares outstanding do not include potentially dilutive securities that are anti-dilutive, as shown below.</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.02%;"></td> <td style="width:1%;"></td> <td style="width:12.06%;"></td> <td style="width:1%;"></td> <td style="width:1.02%;"></td> <td style="width:1%;"></td> <td style="width:12.06%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">For the three and six months ended June 30,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;white-space:pre-wrap;word-break:break-word;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Anti-dilutive securities excluded from calculating dilutive loss per share:</span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Shares of common stock issuable under stock option plans outstanding</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,386,293</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6,505,638</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Shares of common stock issuable upon vesting of RSUs</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">11,521,675</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,124,189</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Potential common shares excluded from diluted net loss per share calculation</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">13,907,968</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">15,629,827</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table> 2386293 6505638 11521675 9124189 13907968 15629827 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">18. Subsequent events</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">July 17, 2024, we entered into an employment agreement with Yann Brandt to become our President and Chief Executive Officer and a member of our Board of Directors, all effective as of August 19, 2024. Mr. Brandt, age 41, was Chief Commercial Officer of FlexGen Power Systems Inc. ("FlexGen") from November 2022 and was Chief Financial Officer of FlexGen from February 2021 until November 2022. He previously served as Chief Executive Officer of QuickMount PV from June 2018 until June 2020 and prior to that, was with</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Conergy, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">a downstream solar company where he served as President of the Americas, as well as Global Head of Marketing and Public Relations. He is also a current board member of the Solar Energy Industries Association.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p> <div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.7521786492374725%;display:inline-flex;justify-content:flex-start;">(a)</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Information required to be disclosed in a report on Form 8-K during the period covered by this Form 10-Q, but not reported.</span></div></div><p style="margin-left:9.067%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">None</span></p><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:0;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.7521786492374725%;display:inline-flex;justify-content:flex-start;">(b)</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Furnish the information required by Item 407(c)(3) of Regulation S-K (§229.407 of this chapter) </span></div></div><p style="margin-left:9.067%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">None</span></p><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:0;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:4.7521786492374725%;display:inline-flex;justify-content:flex-start;">(c)</span><div style="width:100%;display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Furnish the information required by Item 408(a) of Regulation S-K (17 CFR 229.408(a)).</span></div></div><p style="margin-left:4.533%;text-indent:4.749%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Effective June 10, 2024, </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Tamara Mullings</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, a former member of our </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Board of Directors and our current Senior Vice President</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, North American Sales, </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">terminated </span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">her stock trading plan </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">adopted </span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">on </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">December 11, 2023</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, relating to the sale of up to </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">73,655</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> shares of common stock over the period March 5, 2024 to December 31, 2024. This stock trading plan was intended to satisfy the affirmative defense conditions of Rule 10b5-1(c) of the Securities Exchange Act of 1934.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;text-indent:4.749%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">None of our other directors or officers </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">adopted</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, amended or </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">terminated </span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">a "Rule 10b5-1 trading arrangement" or a "non-Rule 10b5-1 trading arrangement," as each term is defined in Item 408 of Regulation S-K during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">three months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">.</span></p> Tamara Mullings Board of Directors and our current Senior Vice President false true December 11, 2023 73655 false false false false